mirror of
https://github.com/Microsoft/vscode
synced 2024-10-06 03:17:00 +00:00
Fixes #213141
This commit is contained in:
parent
7496c883cc
commit
b0c91dda31
|
@ -8,7 +8,7 @@ import { Emitter } from 'vs/base/common/event';
|
||||||
import { Disposable, DisposableStore, IDisposable, IReference, MutableDisposable } from 'vs/base/common/lifecycle';
|
import { Disposable, DisposableStore, IDisposable, IReference, MutableDisposable } from 'vs/base/common/lifecycle';
|
||||||
import { IPosition, Position } from 'vs/editor/common/core/position';
|
import { IPosition, Position } from 'vs/editor/common/core/position';
|
||||||
import { Range } from 'vs/editor/common/core/range';
|
import { Range } from 'vs/editor/common/core/range';
|
||||||
import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry';
|
import { ILanguageConfigurationService, LanguageConfigurationServiceChangeEvent } from 'vs/editor/common/languages/languageConfigurationRegistry';
|
||||||
import { ignoreBracketsInToken } from 'vs/editor/common/languages/supports';
|
import { ignoreBracketsInToken } from 'vs/editor/common/languages/supports';
|
||||||
import { LanguageBracketsConfiguration } from 'vs/editor/common/languages/supports/languageBracketsConfiguration';
|
import { LanguageBracketsConfiguration } from 'vs/editor/common/languages/supports/languageBracketsConfiguration';
|
||||||
import { BracketsUtils, RichEditBracket, RichEditBrackets } from 'vs/editor/common/languages/supports/richEditBrackets';
|
import { BracketsUtils, RichEditBracket, RichEditBrackets } from 'vs/editor/common/languages/supports/richEditBrackets';
|
||||||
|
@ -36,19 +36,17 @@ export class BracketPairsTextModelPart extends Disposable implements IBracketPai
|
||||||
private readonly languageConfigurationService: ILanguageConfigurationService
|
private readonly languageConfigurationService: ILanguageConfigurationService
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
this._register(
|
//#region TextModel events
|
||||||
this.languageConfigurationService.onDidChange(e => {
|
|
||||||
|
public handleLanguageConfigurationServiceChange(e: LanguageConfigurationServiceChangeEvent): void {
|
||||||
if (!e.languageId || this.bracketPairsTree.value?.object.didLanguageChange(e.languageId)) {
|
if (!e.languageId || this.bracketPairsTree.value?.object.didLanguageChange(e.languageId)) {
|
||||||
this.bracketPairsTree.clear();
|
this.bracketPairsTree.clear();
|
||||||
this.updateBracketPairsTree();
|
this.updateBracketPairsTree();
|
||||||
}
|
}
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//#region TextModel events
|
|
||||||
|
|
||||||
public handleDidChangeOptions(e: IModelOptionsChangedEvent): void {
|
public handleDidChangeOptions(e: IModelOptionsChangedEvent): void {
|
||||||
this.bracketPairsTree.clear();
|
this.bracketPairsTree.clear();
|
||||||
this.updateBracketPairsTree();
|
this.updateBracketPairsTree();
|
||||||
|
|
|
@ -381,6 +381,11 @@ export class TextModel extends Disposable implements model.ITextModel, IDecorati
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this._languageService.requestRichLanguageFeatures(languageId);
|
this._languageService.requestRichLanguageFeatures(languageId);
|
||||||
|
|
||||||
|
this._register(this._languageConfigurationService.onDidChange(e => {
|
||||||
|
this._bracketPairs.handleLanguageConfigurationServiceChange(e);
|
||||||
|
this._tokenizationTextModelPart.handleLanguageConfigurationServiceChange(e);
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override dispose(): void {
|
public override dispose(): void {
|
||||||
|
|
|
@ -17,7 +17,7 @@ import { IWordAtPosition, getWordAtText } from 'vs/editor/common/core/wordHelper
|
||||||
import { StandardTokenType } from 'vs/editor/common/encodedTokenAttributes';
|
import { StandardTokenType } from 'vs/editor/common/encodedTokenAttributes';
|
||||||
import { IBackgroundTokenizationStore, IBackgroundTokenizer, ILanguageIdCodec, IState, ITokenizationSupport, TokenizationRegistry } from 'vs/editor/common/languages';
|
import { IBackgroundTokenizationStore, IBackgroundTokenizer, ILanguageIdCodec, IState, ITokenizationSupport, TokenizationRegistry } from 'vs/editor/common/languages';
|
||||||
import { ILanguageService } from 'vs/editor/common/languages/language';
|
import { ILanguageService } from 'vs/editor/common/languages/language';
|
||||||
import { ILanguageConfigurationService, ResolvedLanguageConfiguration } from 'vs/editor/common/languages/languageConfigurationRegistry';
|
import { ILanguageConfigurationService, LanguageConfigurationServiceChangeEvent, ResolvedLanguageConfiguration } from 'vs/editor/common/languages/languageConfigurationRegistry';
|
||||||
import { IAttachedView } from 'vs/editor/common/model';
|
import { IAttachedView } from 'vs/editor/common/model';
|
||||||
import { BracketPairsTextModelPart } from 'vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl';
|
import { BracketPairsTextModelPart } from 'vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl';
|
||||||
import { AttachedViews, IAttachedViewState, TextModel } from 'vs/editor/common/model/textModel';
|
import { AttachedViews, IAttachedViewState, TextModel } from 'vs/editor/common/model/textModel';
|
||||||
|
@ -56,12 +56,6 @@ export class TokenizationTextModelPart extends TextModelPart implements ITokeniz
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this._register(this._languageConfigurationService.onDidChange(e => {
|
|
||||||
if (e.affects(this._languageId)) {
|
|
||||||
this._onDidChangeLanguageConfiguration.fire({});
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
|
|
||||||
this._register(this.grammarTokens.onDidChangeTokens(e => {
|
this._register(this.grammarTokens.onDidChangeTokens(e => {
|
||||||
this._emitModelTokensChangedEvent(e);
|
this._emitModelTokensChangedEvent(e);
|
||||||
}));
|
}));
|
||||||
|
@ -77,6 +71,12 @@ export class TokenizationTextModelPart extends TextModelPart implements ITokeniz
|
||||||
|| this._onDidChangeTokens.hasListeners());
|
|| this._onDidChangeTokens.hasListeners());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public handleLanguageConfigurationServiceChange(e: LanguageConfigurationServiceChangeEvent): void {
|
||||||
|
if (e.affects(this._languageId)) {
|
||||||
|
this._onDidChangeLanguageConfiguration.fire({});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public handleDidChangeContent(e: IModelContentChangedEvent): void {
|
public handleDidChangeContent(e: IModelContentChangedEvent): void {
|
||||||
if (e.isFlush) {
|
if (e.isFlush) {
|
||||||
this._semanticTokens.flush();
|
this._semanticTokens.flush();
|
||||||
|
|
Loading…
Reference in a new issue