Skip to content

Commit

Permalink
Stop the tokenizer thread and start it again when setting a grammar
Browse files Browse the repository at this point in the history
  • Loading branch information
danipen committed Jan 28, 2022
1 parent a8369f3 commit 079c049
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions src/TextMateSharp/Model/TMModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -272,25 +272,21 @@ public void SetGrammar(IGrammar grammar)
{
if (!Object.Equals(grammar, this.grammar))
{
Stop();

this.grammar = grammar;
this.tokenizer = new Tokenizer(grammar);
lines.ForEach((line) => line.ResetTokenizationState());
lines.Get(0).SetState(tokenizer.GetInitialState());

Start();
InvalidateLine(0);
}
}

public void AddModelTokensChangedListener(IModelTokensChangedListener listener)
{
if (this.fThread == null || this.fThread.IsStopped)
{
this.fThread = new TokenizerThread("TMModelThread", this);
}

if (this.fThread.IsStopped)
{
this.fThread.Run();
}
Start();

if (!listeners.Contains(listener))
{
Expand Down Expand Up @@ -326,6 +322,19 @@ private void Stop()
this.fThread = null;
}

private void Start()
{
if (this.fThread == null || this.fThread.IsStopped)
{
this.fThread = new TokenizerThread("TMModelThread", this);
}

if (this.fThread.IsStopped)
{
this.fThread.Run();
}
}

private void BuildEventWithCallback(Action<ModelTokensChangedEventBuilder> callback)
{
if (this.fThread == null || this.fThread.IsStopped)
Expand Down

0 comments on commit 079c049

Please sign in to comment.