diff --git a/build/lib/propertyInitOrderChecker.js b/build/lib/propertyInitOrderChecker.js index b067c1058b6..87775a57335 100644 --- a/build/lib/propertyInitOrderChecker.js +++ b/build/lib/propertyInitOrderChecker.js @@ -108,7 +108,6 @@ const ignored = new Set([ 'vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.ts', 'vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.ts', 'vs/platform/terminal/common/capabilities/commandDetectionCapability.ts', - 'vs/platform/quickinput/browser/quickInputController.ts', 'vs/workbench/services/authentication/browser/authenticationExtensionsService.ts', 'vs/workbench/services/textMate/browser/backgroundTokenization/textMateWorkerTokenizerController.ts', 'vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts', @@ -118,19 +117,13 @@ const ignored = new Set([ 'vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.ts', 'vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor.ts', 'vs/workbench/contrib/search/common/cacheState.ts', - 'vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.ts', - 'vs/workbench/contrib/search/browser/anythingQuickAccess.ts', - 'vs/platform/quickinput/browser/commandsQuickAccess.ts', - 'vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.ts', 'vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.ts', 'vs/workbench/contrib/mergeEditor/browser/view/viewZones.ts', 'vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts', - 'vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.ts', 'vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts', 'vs/workbench/contrib/accessibilitySignals/browser/editorTextPropertySignalsContribution.ts', 'vs/workbench/contrib/inlineCompletions/browser/inlineCompletionLanguageStatusBarContribution.ts', 'vs/workbench/contrib/welcomeDialog/browser/welcomeWidget.ts', - 'vs/editor/standalone/browser/quickInput/standaloneQuickInputService.ts', 'vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordInsertView.ts', 'vs/platform/terminal/node/ptyService.ts', 'vs/workbench/api/common/extHostLanguageFeatures.ts', diff --git a/build/lib/propertyInitOrderChecker.ts b/build/lib/propertyInitOrderChecker.ts index 14207b8658f..262e28e6352 100644 --- a/build/lib/propertyInitOrderChecker.ts +++ b/build/lib/propertyInitOrderChecker.ts @@ -77,7 +77,6 @@ const ignored = new Set([ 'vs/editor/browser/widget/multiDiffEditor/multiDiffEditorViewModel.ts', 'vs/workbench/contrib/multiDiffEditor/browser/multiDiffEditorInput.ts', 'vs/platform/terminal/common/capabilities/commandDetectionCapability.ts', - 'vs/platform/quickinput/browser/quickInputController.ts', 'vs/workbench/services/authentication/browser/authenticationExtensionsService.ts', 'vs/workbench/services/textMate/browser/backgroundTokenization/textMateWorkerTokenizerController.ts', 'vs/workbench/services/textMate/browser/textMateTokenizationFeatureImpl.ts', @@ -87,19 +86,13 @@ const ignored = new Set([ 'vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.ts', 'vs/workbench/contrib/notebook/browser/diff/notebookMultiDiffEditor.ts', 'vs/workbench/contrib/search/common/cacheState.ts', - 'vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.ts', - 'vs/workbench/contrib/search/browser/anythingQuickAccess.ts', - 'vs/platform/quickinput/browser/commandsQuickAccess.ts', - 'vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.ts', 'vs/workbench/contrib/multiDiffEditor/browser/scmMultiDiffSourceResolver.ts', 'vs/workbench/contrib/mergeEditor/browser/view/viewZones.ts', 'vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts', - 'vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.ts', 'vs/workbench/contrib/editSessions/browser/editSessionsStorageService.ts', 'vs/workbench/contrib/accessibilitySignals/browser/editorTextPropertySignalsContribution.ts', 'vs/workbench/contrib/inlineCompletions/browser/inlineCompletionLanguageStatusBarContribution.ts', 'vs/workbench/contrib/welcomeDialog/browser/welcomeWidget.ts', - 'vs/editor/standalone/browser/quickInput/standaloneQuickInputService.ts', 'vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordInsertView.ts', 'vs/platform/terminal/node/ptyService.ts', 'vs/workbench/api/common/extHostLanguageFeatures.ts', diff --git a/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts b/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts index bcb65cdddfd..acbecc9773b 100644 --- a/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts +++ b/src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts @@ -71,6 +71,28 @@ function isEditorSymbolQuickPickItem(pick?: IAnythingQuickPickItem): pick is IEd return !!candidate?.range && !!candidate.resource; } +interface IAnythingPickState extends IDisposable { + picker: IQuickPick | undefined; + editorViewState: PickerEditorState; + + scorerCache: FuzzyScorerCache; + fileQueryCache: FileQueryCacheState | undefined; + + lastOriginalFilter: string | undefined; + lastFilter: string | undefined; + lastRange: IRange | undefined; + + lastGlobalPicks: PicksWithActive | undefined; + + isQuickNavigating: boolean | undefined; + + /** + * Sets the picker for this pick state. + */ + set(picker: IQuickPick): void; +} + + export class AnythingQuickAccessProvider extends PickerQuickAccessProvider { static PREFIX = ''; @@ -85,56 +107,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider | undefined = undefined; - - editorViewState = this._register(this.instantiationService.createInstance(PickerEditorState)); - - scorerCache: FuzzyScorerCache = Object.create(null); - fileQueryCache: FileQueryCacheState | undefined = undefined; - - lastOriginalFilter: string | undefined = undefined; - lastFilter: string | undefined = undefined; - lastRange: IRange | undefined = undefined; - - lastGlobalPicks: PicksWithActive | undefined = undefined; - - isQuickNavigating: boolean | undefined = undefined; - - constructor( - private readonly provider: AnythingQuickAccessProvider, - private readonly instantiationService: IInstantiationService - ) { - super(); - } - - set(picker: IQuickPick): void { - - // Picker for this run - this.picker = picker; - Event.once(picker.onDispose)(() => { - if (picker === this.picker) { - this.picker = undefined; // clear the picker when disposed to not keep it in memory for too long - } - }); - - // Caches - const isQuickNavigating = !!picker.quickNavigate; - if (!isQuickNavigating) { - this.fileQueryCache = this.provider.createFileQueryCache(); - this.scorerCache = Object.create(null); - } - - // Other - this.isQuickNavigating = isQuickNavigating; - this.lastOriginalFilter = undefined; - this.lastFilter = undefined; - this.lastRange = undefined; - this.lastGlobalPicks = undefined; - this.editorViewState.reset(); - } - }(this, this.instantiationService)); + private readonly pickState: IAnythingPickState; get defaultFilterValue(): DefaultQuickAccessFilterValue | undefined { if (this.configuration.preserveInput) { @@ -171,6 +144,62 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider | undefined = undefined; + + editorViewState: PickerEditorState; + + scorerCache: FuzzyScorerCache = Object.create(null); + fileQueryCache: FileQueryCacheState | undefined = undefined; + + lastOriginalFilter: string | undefined = undefined; + lastFilter: string | undefined = undefined; + lastRange: IRange | undefined = undefined; + + lastGlobalPicks: PicksWithActive | undefined = undefined; + + isQuickNavigating: boolean | undefined = undefined; + + constructor( + private readonly provider: AnythingQuickAccessProvider, + instantiationService: IInstantiationService + ) { + super(); + this.editorViewState = this._register(instantiationService.createInstance(PickerEditorState)); + } + + set(picker: IQuickPick): void { + + // Picker for this run + this.picker = picker; + Event.once(picker.onDispose)(() => { + if (picker === this.picker) { + this.picker = undefined; // clear the picker when disposed to not keep it in memory for too long + } + }); + + // Caches + const isQuickNavigating = !!picker.quickNavigate; + if (!isQuickNavigating) { + this.fileQueryCache = this.provider.createFileQueryCache(); + this.scorerCache = Object.create(null); + } + + // Other + this.isQuickNavigating = isQuickNavigating; + this.lastOriginalFilter = undefined; + this.lastFilter = undefined; + this.lastRange = undefined; + this.lastGlobalPicks = undefined; + this.editorViewState.reset(); + } + }(this, instantiationService)); + + this.fileQueryBuilder = this.instantiationService.createInstance(QueryBuilder); + this.workspaceSymbolsQuickAccess = this._register(instantiationService.createInstance(SymbolsQuickAccessProvider)); + this.editorSymbolsQuickAccess = this.instantiationService.createInstance(GotoSymbolQuickAccessProvider); } private get configuration() { @@ -519,7 +548,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider(AnythingQuickAccessProvider.TYPING_SEARCH_DELAY)); - private readonly fileQueryBuilder = this.instantiationService.createInstance(QueryBuilder); + private readonly fileQueryBuilder: QueryBuilder; private createFileQueryCache(): FileQueryCacheState { return new FileQueryCacheState( @@ -825,7 +854,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider> { if ( @@ -850,7 +879,7 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider> | null { const filterSegments = query.original.split(GotoSymbolQuickAccessProvider.PREFIX);