import { URI } from "../../../../base/common/uri.js"; import { ICodeEditorService } from "../../../../editor/browser/services/codeEditorService.service.js"; import { IEditor } from "../../../../editor/common/editorCommon.js"; import { IAccessibilityService } from "../../../../platform/accessibility/common/accessibility.service.js"; import { ICommandService } from "../../../../platform/commands/common/commands.service.js"; import { IConfigurationService } from "../../../../platform/configuration/common/configuration.service.js"; import { IContextKeyService } from "../../../../platform/contextkey/common/contextkey.service.js"; import { IContextMenuService } from "../../../../platform/contextview/browser/contextView.service.js"; import { IContextViewService } from "../../../../platform/contextview/browser/contextView.service.js"; import { IDialogService } from "../../../../platform/dialogs/common/dialogs.service.js"; import { IFileService } from "../../../../platform/files/common/files.service.js"; import { IInstantiationService } from "../../../../platform/instantiation/common/instantiation.js"; import { IKeybindingService } from "../../../../platform/keybinding/common/keybinding.service.js"; import { WorkbenchCompressibleAsyncDataTree } from "../../../../platform/list/browser/listService.js"; import { INotificationService } from "../../../../platform/notification/common/notification.service.js"; import { IOpenerService } from "../../../../platform/opener/common/opener.service.js"; import { IProgressService } from "../../../../platform/progress/common/progress.service.js"; import { IStorageService } from "../../../../platform/storage/common/storage.service.js"; import { IThemeService } from "../../../../platform/theme/common/themeService.service.js"; import { IWorkspaceContextService } from "../../../../platform/workspace/common/workspace.service.js"; import { IViewPaneOptions, ViewPane } from "../../../browser/parts/views/viewPane.js"; import { IViewDescriptorService } from "../../../common/views.service.js"; import { ExcludePatternInputWidget, IncludePatternInputWidget } from "./patternInputWidget.js"; import { IFindInFilesArgs } from "./searchActionsFind.js"; import { SearchWidget } from "./searchWidget.js"; import { IReplaceService } from "./replace.service.js"; import { ISearchHistoryService } from "../common/searchHistoryService.service.js"; import { IEditorService } from "../../../services/editor/common/editorService.service.js"; import { IPreferencesService } from "../../../services/preferences/common/preferences.service.js"; import { ISearchComplete } from "../../../services/search/common/search.js"; import { ITextFileService } from "../../../services/textfile/common/textfiles.service.js"; import { INotebookService } from "../../notebook/common/notebookService.service.js"; import { ILogService } from "../../../../platform/log/common/log.service.js"; import { IAccessibilitySignalService } from "../../../../platform/accessibilitySignal/browser/accessibilitySignalService.service.js"; import { IHoverService } from "../../../../platform/hover/browser/hover.service.js"; import { ISearchViewModelWorkbenchService } from "./searchTreeModel/searchViewModelWorkbenchService.service.js"; import { RenderableMatch, FileMatchOrMatch, ISearchModel, ISearchResult } from "./searchTreeModel/searchTreeCommon.js"; import { ITelemetryService } from "../../../../platform/telemetry/common/telemetry.service.js"; export declare enum SearchViewPosition { SideBar = 0, Panel = 1 } export declare class SearchView extends ViewPane { private readonly fileService; private readonly editorService; private readonly codeEditorService; private readonly progressService; private readonly notificationService; private readonly dialogService; private readonly commandService; private readonly contextViewService; private readonly contextService; private readonly searchViewModelWorkbenchService; private readonly replaceService; private readonly textFileService; private readonly preferencesService; private readonly searchHistoryService; private readonly accessibilityService; private readonly storageService; private readonly notebookService; private readonly logService; private readonly accessibilitySignalService; private readonly telemetryService; private static readonly ACTIONS_RIGHT_CLASS_NAME; private isDisposed; private container; private queryBuilder; private viewModel; private memento; private viewletVisible; private inputBoxFocused; private inputPatternIncludesFocused; private inputPatternExclusionsFocused; private firstMatchFocused; private fileMatchOrMatchFocused; private fileMatchOrFolderMatchFocus; private fileMatchOrFolderMatchWithResourceFocus; private fileMatchFocused; private folderMatchFocused; private folderMatchWithResourceFocused; private matchFocused; private searchResultHeaderFocused; private isEditableItem; private hasSearchResultsKey; private lastFocusState; private searchStateKey; private hasSearchPatternKey; private hasReplacePatternKey; private hasFilePatternKey; private hasSomeCollapsibleResultKey; private tree; private treeLabels; private viewletState; private messagesElement; private readonly messageDisposables; private searchWidgetsContainerElement; private searchWidget; private size; private queryDetails; private toggleQueryDetailsButton; private inputPatternExcludes; private inputPatternIncludes; private resultsElement; private currentSelectedFileMatch; private readonly currentEditorCursorListener; private delayedRefresh; private changedWhileHidden; private searchWithoutFolderMessageElement; private currentSearchQ; private addToSearchHistoryDelayer; private toggleCollapseStateDelayer; private triggerQueryDelayer; private pauseSearching; private treeAccessibilityProvider; private treeViewKey; private _visibleMatches; private _refreshResultsScheduler; private _onSearchResultChangedDisposable; private _onAIResultChangedDisposable; private searchDataSource; private refreshTreeController; private _cachedResults; private _cachedKeywords; _pendingSemanticSearchPromise: Promise | undefined; constructor(options: IViewPaneOptions, fileService: IFileService, editorService: IEditorService, codeEditorService: ICodeEditorService, progressService: IProgressService, notificationService: INotificationService, dialogService: IDialogService, commandService: ICommandService, contextViewService: IContextViewService, instantiationService: IInstantiationService, viewDescriptorService: IViewDescriptorService, configurationService: IConfigurationService, contextService: IWorkspaceContextService, searchViewModelWorkbenchService: ISearchViewModelWorkbenchService, contextKeyService: IContextKeyService, replaceService: IReplaceService, textFileService: ITextFileService, preferencesService: IPreferencesService, themeService: IThemeService, searchHistoryService: ISearchHistoryService, contextMenuService: IContextMenuService, accessibilityService: IAccessibilityService, keybindingService: IKeybindingService, storageService: IStorageService, openerService: IOpenerService, hoverService: IHoverService, notebookService: INotebookService, logService: ILogService, accessibilitySignalService: IAccessibilitySignalService, telemetryService: ITelemetryService); get cachedResults(): ISearchComplete | undefined; queueRefreshTree(): Promise; get isTreeLayoutViewVisible(): boolean; private set isTreeLayoutViewVisible(value); setTreeView(visible: boolean): Promise; private get state(); private set state(value); getContainer(): HTMLElement; get searchResult(): ISearchResult; get model(): ISearchModel; private refreshHasAISetting; private onDidChangeWorkbenchState; private refreshInputs; replaceSearchModel(searchModel: ISearchModel, asyncResults: Promise): Promise; protected renderBody(parent: HTMLElement): void; private updateIndentStyles; private onVisibilityChanged; get searchAndReplaceWidget(): SearchWidget; get searchIncludePattern(): IncludePatternInputWidget; get searchExcludePattern(): ExcludePatternInputWidget; private createSearchWidget; shouldShowAIResults(): boolean; private onConfigurationUpdated; private trackInputBox; private onSearchResultsChanged; private refreshAndUpdateCount; private originalShouldCollapse; private shouldCollapseAccordingToConfig; private replaceAll; private buildAfterReplaceAllMessage; private buildReplaceAllConfirmationMessage; private clearMessage; private createSearchResultsView; private onContextMenu; private hasSomeCollapsible; selectNextMatch(): Promise; selectPreviousMatch(): Promise; moveFocusToResults(): void; focus(): void; updateTextFromFindWidgetOrSelection({ allowUnselectedWord, allowSearchOnType }: { allowUnselectedWord?: boolean | undefined; allowSearchOnType?: boolean | undefined; }): boolean; private updateTextFromFindWidget; private updateTextFromSelection; private updateText; focusNextInputBox(): void; private moveFocusFromSearchOrReplace; focusPreviousInputBox(): void; private moveFocusFromResults; private reLayout; protected layoutBody(height: number, width: number): void; getControl(): WorkbenchCompressibleAsyncDataTree; allSearchFieldsClear(): boolean; allFilePatternFieldsClear(): boolean; hasSearchResults(): boolean; clearSearchResults(clearInput?: boolean): void; clearFilePatternFields(): void; cancelSearch(focus?: boolean): boolean; private selectTreeIfNotSelected; private getSearchTextFromEditor; private showsFileTypes; toggleCaseSensitive(): void; toggleWholeWords(): void; toggleRegex(): void; togglePreserveCase(): void; setSearchParameters(args?: IFindInFilesArgs): void; toggleQueryDetails(moveFocus?: boolean, show?: boolean, skipLayout?: boolean, reverse?: boolean): void; searchInFolders(folderPaths?: string[]): void; searchOutsideOfFolders(folderPaths?: string[]): void; private _searchWithIncludeOrExclude; triggerQueryChange(_options?: { preserveFocus?: boolean; triggeredOnType?: boolean; delay?: number; shouldKeepAIResults?: boolean; shouldUpdateAISearch?: boolean; }): void; private _getExcludePattern; private _getIncludePattern; private _onQueryChanged; private validateQuery; private onQueryTriggered; private _updateResults; private expandIfSingularResult; private appendSearchWithAIButton; private onSearchComplete; private onSearchError; clearAIResults(): void; requestAIResults(): Promise; addAIResults(): Promise; private doSearch; private onOpenSettings; private openSettings; private onSearchAgain; private onEnableExcludes; private onDisableSearchInOpenEditors; private updateSearchResultCount; private handleKeywordClick; private updateKeywordSuggestionUI; private getKeywordSuggestions; private addMessage; private buildResultCountMessage; private showSearchWithoutFolderMessage; private showEmptyStage; private shouldOpenInNotebookEditor; private onFocus; open(element: FileMatchOrMatch, preserveFocus?: boolean, sideBySide?: boolean, pinned?: boolean, resourceInput?: URI): Promise; openEditorWithMultiCursor(element: FileMatchOrMatch): Promise; private onUntitledDidDispose; private onFilesChanged; private get searchConfig(); private clearHistory; saveState(): void; private _saveSearchHistoryService; private updateFileStats; private removeFileStats; dispose(): void; } export declare function getEditorSelectionFromMatch(element: FileMatchOrMatch, viewModel: ISearchModel): import("../../../../editor/common/core/range.js").Range | { startLineNumber: number; startColumn: number; endLineNumber: number; endColumn: number; } | undefined; export declare function getSelectionTextFromEditor(allowUnselectedWord: boolean, activeEditor: IEditor): string | null;