mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 11:38:51 +01:00
More adoption of language configuration service.
This commit is contained in:
@@ -12,7 +12,7 @@ import { CancellationToken } from 'vs/base/common/cancellation';
|
||||
import { Position as EditorPosition } from 'vs/editor/common/core/position';
|
||||
import { Range as EditorRange, IRange } from 'vs/editor/common/core/range';
|
||||
import { ExtHostContext, MainThreadLanguageFeaturesShape, ExtHostLanguageFeaturesShape, MainContext, IExtHostContext, ILanguageConfigurationDto, IRegExpDto, IIndentationRuleDto, IOnEnterRuleDto, ILocationDto, IWorkspaceSymbolDto, reviveWorkspaceEditDto, IDocumentFilterDto, IDefinitionLinkDto, ISignatureHelpProviderMetadataDto, ILinkDto, ICallHierarchyItemDto, ISuggestDataDto, ICodeActionDto, ISuggestDataDtoField, ISuggestResultDtoField, ICodeActionProviderMetadataDto, ILanguageWordDefinitionDto, IdentifiableInlineCompletions, IdentifiableInlineCompletion, ITypeHierarchyItemDto } from '../common/extHost.protocol';
|
||||
import { LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageConfigurationRegistry';
|
||||
import { ILanguageConfigurationService, LanguageConfigurationRegistry } from 'vs/editor/common/modes/languageConfigurationRegistry';
|
||||
import { LanguageConfiguration, IndentationRule, OnEnterRule } from 'vs/editor/common/modes/languageConfiguration';
|
||||
import { ILanguageService } from 'vs/editor/common/services/languageService';
|
||||
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
|
||||
@@ -34,15 +34,16 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
|
||||
constructor(
|
||||
extHostContext: IExtHostContext,
|
||||
@ILanguageService languageService: ILanguageService,
|
||||
@ILanguageConfigurationService languageConfigurationService: ILanguageConfigurationService
|
||||
) {
|
||||
this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostLanguageFeatures);
|
||||
this._languageService = languageService;
|
||||
|
||||
if (this._languageService) {
|
||||
const updateAllWordDefinitions = () => {
|
||||
const langWordPairs = LanguageConfigurationRegistry.getWordDefinitions();
|
||||
let wordDefinitionDtos: ILanguageWordDefinitionDto[] = [];
|
||||
for (const [languageId, wordDefinition] of langWordPairs) {
|
||||
for (const languageId of languageService.getRegisteredLanguageIds()) {
|
||||
const wordDefinition = languageConfigurationService.getLanguageConfiguration(languageId).getWordDefinition();
|
||||
wordDefinitionDtos.push({
|
||||
languageId: languageId,
|
||||
regexSource: wordDefinition.source,
|
||||
@@ -51,13 +52,17 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
|
||||
}
|
||||
this._proxy.$setWordDefinitions(wordDefinitionDtos);
|
||||
};
|
||||
LanguageConfigurationRegistry.onDidChange((e) => {
|
||||
const wordDefinition = LanguageConfigurationRegistry.getWordDefinition(e.languageId);
|
||||
this._proxy.$setWordDefinitions([{
|
||||
languageId: e.languageId,
|
||||
regexSource: wordDefinition.source,
|
||||
regexFlags: wordDefinition.flags
|
||||
}]);
|
||||
languageConfigurationService.onDidChange((e) => {
|
||||
if (!e.languageId) {
|
||||
updateAllWordDefinitions();
|
||||
} else {
|
||||
const wordDefinition = languageConfigurationService.getLanguageConfiguration(e.languageId).getWordDefinition();
|
||||
this._proxy.$setWordDefinitions([{
|
||||
languageId: e.languageId,
|
||||
regexSource: wordDefinition.source,
|
||||
regexFlags: wordDefinition.flags
|
||||
}]);
|
||||
}
|
||||
});
|
||||
updateAllWordDefinitions();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user