mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-19 14:22:19 +01:00
replace InlineValuesProviderRegistry with service property
This commit is contained in:
@@ -1892,11 +1892,6 @@ export interface DocumentRangeSemanticTokensProvider {
|
||||
*/
|
||||
export const EvaluatableExpressionProviderRegistry = new LanguageFeatureRegistry<EvaluatableExpressionProvider>();
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export const InlineValuesProviderRegistry = new LanguageFeatureRegistry<InlineValuesProvider>();
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { LanguageFeatureRegistry } from 'vs/editor/common/languageFeatureRegistry';
|
||||
import { CodeLensProvider, CompletionItemProvider, DeclarationProvider, DefinitionProvider, DocumentColorProvider, DocumentFormattingEditProvider, DocumentHighlightProvider, DocumentRangeFormattingEditProvider, DocumentSymbolProvider, FoldingRangeProvider, HoverProvider, ImplementationProvider, InlayHintsProvider, InlineCompletionsProvider, LinkedEditingRangeProvider, LinkProvider, OnTypeFormattingEditProvider, ReferenceProvider, RenameProvider, SelectionRangeProvider, SignatureHelpProvider, TypeDefinitionProvider } from 'vs/editor/common/languages';
|
||||
import { CodeLensProvider, CompletionItemProvider, DeclarationProvider, DefinitionProvider, DocumentColorProvider, DocumentFormattingEditProvider, DocumentHighlightProvider, DocumentRangeFormattingEditProvider, DocumentSymbolProvider, FoldingRangeProvider, HoverProvider, ImplementationProvider, InlayHintsProvider, InlineCompletionsProvider, InlineValuesProvider, LinkedEditingRangeProvider, LinkProvider, OnTypeFormattingEditProvider, ReferenceProvider, RenameProvider, SelectionRangeProvider, SignatureHelpProvider, TypeDefinitionProvider } from 'vs/editor/common/languages';
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
|
||||
export const ILanguageFeaturesService = createDecorator<ILanguageFeaturesService>('ILanguageFeaturesService');
|
||||
@@ -66,4 +66,8 @@ export interface ILanguageFeaturesService {
|
||||
readonly completionProvider: LanguageFeatureRegistry<CompletionItemProvider>;
|
||||
|
||||
readonly linkedEditingRangeProvider: LanguageFeatureRegistry<LinkedEditingRangeProvider>;
|
||||
|
||||
// --- debug
|
||||
|
||||
readonly inlineValuesProvider: LanguageFeatureRegistry<InlineValuesProvider>;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { LanguageFeatureRegistry } from 'vs/editor/common/languageFeatureRegistry';
|
||||
import { CodeLensProvider, CompletionItemProvider, DeclarationProvider, DefinitionProvider, DocumentColorProvider, DocumentFormattingEditProvider, DocumentHighlightProvider, DocumentRangeFormattingEditProvider, DocumentSymbolProvider, FoldingRangeProvider, HoverProvider, ImplementationProvider, InlayHintsProvider, InlineCompletionsProvider, LinkedEditingRangeProvider, LinkProvider, OnTypeFormattingEditProvider, ReferenceProvider, RenameProvider, SelectionRangeProvider, SignatureHelpProvider, TypeDefinitionProvider } from 'vs/editor/common/languages';
|
||||
import { CodeLensProvider, CompletionItemProvider, DeclarationProvider, DefinitionProvider, DocumentColorProvider, DocumentFormattingEditProvider, DocumentHighlightProvider, DocumentRangeFormattingEditProvider, DocumentSymbolProvider, FoldingRangeProvider, HoverProvider, ImplementationProvider, InlayHintsProvider, InlineCompletionsProvider, InlineValuesProvider, LinkedEditingRangeProvider, LinkProvider, OnTypeFormattingEditProvider, ReferenceProvider, RenameProvider, SelectionRangeProvider, SignatureHelpProvider, TypeDefinitionProvider } from 'vs/editor/common/languages';
|
||||
import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures';
|
||||
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
|
||||
|
||||
@@ -56,6 +56,10 @@ export class LanguageFeaturesService implements ILanguageFeaturesService {
|
||||
|
||||
readonly linkedEditingRangeProvider = new LanguageFeatureRegistry<LinkedEditingRangeProvider>();
|
||||
|
||||
// --- debug
|
||||
|
||||
readonly inlineValuesProvider = new LanguageFeatureRegistry<InlineValuesProvider>();
|
||||
|
||||
}
|
||||
|
||||
registerSingleton(ILanguageFeaturesService, LanguageFeaturesService, true);
|
||||
|
||||
@@ -279,7 +279,7 @@ export class MainThreadLanguageFeatures implements MainThreadLanguageFeaturesSha
|
||||
provider.onDidChangeInlineValues = emitter.event;
|
||||
}
|
||||
|
||||
this._registrations.set(handle, modes.InlineValuesProviderRegistry.register(selector, provider));
|
||||
this._registrations.set(handle, this._languageFeaturesService.inlineValuesProvider.register(selector, provider));
|
||||
}
|
||||
|
||||
$emitInlineValuesEvent(eventHandle: number, event?: any): void {
|
||||
|
||||
@@ -12,7 +12,7 @@ import { setProperty } from 'vs/base/common/jsonEdit';
|
||||
import { Constants } from 'vs/base/common/uint';
|
||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||
import { IKeyboardEvent, StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||
import { InlineValueContext, InlineValuesProviderRegistry, StandardTokenType } from 'vs/editor/common/languages';
|
||||
import { InlineValueContext, StandardTokenType } from 'vs/editor/common/languages';
|
||||
import { CancellationTokenSource } from 'vs/base/common/cancellation';
|
||||
import { distinct, flatten } from 'vs/base/common/arrays';
|
||||
import { onUnexpectedExternalError } from 'vs/base/common/errors';
|
||||
@@ -45,6 +45,7 @@ import { Expression } from 'vs/workbench/contrib/debug/common/debugModel';
|
||||
import { registerColor } from 'vs/platform/theme/common/colorRegistry';
|
||||
import { addDisposableListener } from 'vs/base/browser/dom';
|
||||
import { DomEmitter } from 'vs/base/browser/event';
|
||||
import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures';
|
||||
|
||||
const LAUNCH_JSON_REGEX = /\.vscode\/launch\.json$/;
|
||||
const MAX_NUM_INLINE_VALUES = 100; // JS Global scope can have 700+ entries. We want to limit ourselves for perf reasons
|
||||
@@ -227,7 +228,8 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
||||
@IConfigurationService private readonly configurationService: IConfigurationService,
|
||||
@IHostService private readonly hostService: IHostService,
|
||||
@IUriIdentityService private readonly uriIdentityService: IUriIdentityService,
|
||||
@IContextKeyService contextKeyService: IContextKeyService
|
||||
@IContextKeyService contextKeyService: IContextKeyService,
|
||||
@ILanguageFeaturesService private readonly languageFeaturesService: ILanguageFeaturesService,
|
||||
) {
|
||||
this.hoverWidget = this.instantiationService.createInstance(DebugHoverWidget, this.editor);
|
||||
this.toDispose = [];
|
||||
@@ -279,7 +281,7 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
||||
|
||||
// Inline value provider should get called on view port change
|
||||
const model = this.editor.getModel();
|
||||
if (model && InlineValuesProviderRegistry.has(model)) {
|
||||
if (model && this.languageFeaturesService.inlineValuesProvider.has(model)) {
|
||||
this.updateInlineValuesScheduler.schedule();
|
||||
}
|
||||
}));
|
||||
@@ -616,7 +618,7 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
||||
|
||||
const model = this.editor.getModel();
|
||||
const inlineValuesSetting = this.configurationService.getValue<IDebugConfiguration>('debug').inlineValues;
|
||||
const inlineValuesTurnedOn = inlineValuesSetting === true || (inlineValuesSetting === 'auto' && model && InlineValuesProviderRegistry.has(model));
|
||||
const inlineValuesTurnedOn = inlineValuesSetting === true || (inlineValuesSetting === 'auto' && model && this.languageFeaturesService.inlineValuesProvider.has(model));
|
||||
if (!inlineValuesTurnedOn || !model || !stackFrame || model.uri.toString() !== stackFrame.source.uri.toString()) {
|
||||
if (!this.removeInlineValuesScheduler.isScheduled()) {
|
||||
this.removeInlineValuesScheduler.schedule();
|
||||
@@ -628,7 +630,7 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
||||
|
||||
let allDecorations: IModelDeltaDecoration[];
|
||||
|
||||
if (InlineValuesProviderRegistry.has(model)) {
|
||||
if (this.languageFeaturesService.inlineValuesProvider.has(model)) {
|
||||
|
||||
const findVariable = async (_key: string, caseSensitiveLookup: boolean): Promise<string | undefined> => {
|
||||
const scopes = await stackFrame.getMostSpecificScopes(stackFrame.range);
|
||||
@@ -650,7 +652,7 @@ export class DebugEditorContribution implements IDebugEditorContribution {
|
||||
const token = new CancellationTokenSource().token;
|
||||
|
||||
const ranges = this.editor.getVisibleRangesPlusViewportAboveBelow();
|
||||
const providers = InlineValuesProviderRegistry.ordered(model).reverse();
|
||||
const providers = this.languageFeaturesService.inlineValuesProvider.ordered(model).reverse();
|
||||
|
||||
allDecorations = [];
|
||||
const lineDecorations = new Map<number, InlineSegment[]>();
|
||||
|
||||
Reference in New Issue
Block a user