add new versions of search APIs (#222231)

* add new versions of search APIs in separate proposed files
This commit is contained in:
Andrea Mah
2024-07-19 14:28:10 -07:00
committed by GitHub
parent be9e90cad7
commit 61b242c67f
9 changed files with 836 additions and 3 deletions

View File

@@ -3,10 +3,11 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { AsyncIterableObject } from 'vs/base/common/async';
import { CancellationTokenSource } from 'vs/base/common/cancellation';
import * as errors from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
import { combinedDisposable } from 'vs/base/common/lifecycle';
import { combinedDisposable, IDisposable } from 'vs/base/common/lifecycle';
import { Schemas, matchesScheme } from 'vs/base/common/network';
import Severity from 'vs/base/common/severity';
import { URI } from 'vs/base/common/uri';
@@ -106,7 +107,7 @@ import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/c
import { UIKind } from 'vs/workbench/services/extensions/common/extensionHostProtocol';
import { checkProposedApiEnabled, isProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions';
import { ProxyIdentifier } from 'vs/workbench/services/extensions/common/proxyIdentifier';
import { TextSearchCompleteMessageType } from 'vs/workbench/services/search/common/searchExtTypes';
import { ExcludeSettingOptions, TextSearchCompleteMessageType, TextSearchCompleteMessageTypeNew, TextSearchContextNew, TextSearchMatchNew } from 'vs/workbench/services/search/common/searchExtTypes';
import type * as vscode from 'vscode';
export interface IExtensionRegistries {
@@ -966,10 +967,14 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
// Note, undefined/null have different meanings on "exclude"
return extHostWorkspace.findFiles(include, exclude, maxResults, extension.identifier, token);
},
findFiles2: (filePattern, options?, token?) => {
findFiles2: (filePattern: vscode.GlobPattern, options?: vscode.FindFiles2Options, token?: vscode.CancellationToken): Thenable<vscode.Uri[]> => {
checkProposedApiEnabled(extension, 'findFiles2');
return extHostWorkspace.findFiles2(filePattern, options, extension.identifier, token);
},
findFiles2New: (filePattern: vscode.GlobPattern[], options?: vscode.FindFiles2OptionsNew, token?: vscode.CancellationToken): Thenable<vscode.Uri[]> => {
checkProposedApiEnabled(extension, 'findFiles2New');
return Promise.resolve([]);
},
findTextInFiles: (query: vscode.TextSearchQuery, optionsOrCallback: vscode.FindTextInFilesOptions | ((result: vscode.TextSearchResult) => void), callbackOrToken?: vscode.CancellationToken | ((result: vscode.TextSearchResult) => void), token?: vscode.CancellationToken) => {
checkProposedApiEnabled(extension, 'findTextInFiles');
let options: vscode.FindTextInFilesOptions;
@@ -986,6 +991,15 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
return extHostWorkspace.findTextInFiles(query, options || {}, callback, extension.identifier, token);
},
findTextInFilesNew: (query: vscode.TextSearchQueryNew, options?: vscode.FindTextInFilesOptionsNew, token?: vscode.CancellationToken): vscode.FindTextInFilesResponse => {
checkProposedApiEnabled(extension, 'findTextInFilesNew');
return {
results: AsyncIterableObject.fromArray([]),
complete: Promise.resolve({
limitHit: false
})
};
},
save: (uri) => {
return extHostWorkspace.save(uri);
},
@@ -1134,6 +1148,20 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
checkProposedApiEnabled(extension, 'textSearchProvider');
return extHostSearch.registerAITextSearchProvider(scheme, provider);
},
registerFileSearchProviderNew: (scheme: string, provider: vscode.FileSearchProviderNew) => {
checkProposedApiEnabled(extension, 'fileSearchProviderNew');
return <IDisposable>{ dispose: () => { } };
},
registerTextSearchProviderNew: (scheme: string, provider: vscode.TextSearchProviderNew) => {
checkProposedApiEnabled(extension, 'textSearchProviderNew');
return <IDisposable>{ dispose: () => { } };
},
registerAITextSearchProviderNew: (scheme: string, provider: vscode.AITextSearchProviderNew) => {
// there are some dependencies on textSearchProvider, so we need to check for both
checkProposedApiEnabled(extension, 'aiTextSearchProviderNew');
checkProposedApiEnabled(extension, 'textSearchProviderNew');
return <IDisposable>{ dispose: () => { } };
},
registerRemoteAuthorityResolver: (authorityPrefix: string, resolver: vscode.RemoteAuthorityResolver) => {
checkProposedApiEnabled(extension, 'resolvers');
return extensionService.registerRemoteAuthorityResolver(authorityPrefix, resolver);
@@ -1758,6 +1786,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
NewSymbolNameTriggerKind: extHostTypes.NewSymbolNameTriggerKind,
InlineEdit: extHostTypes.InlineEdit,
InlineEditTriggerKind: extHostTypes.InlineEditTriggerKind,
ExcludeSettingOptions: ExcludeSettingOptions,
TextSearchContextNew: TextSearchContextNew,
TextSearchMatchNew: TextSearchMatchNew,
TextSearchCompleteMessageTypeNew: TextSearchCompleteMessageTypeNew,
};
};
}