提交 19adeb16 编写于 作者: R Rob Lourens 提交者: Alex Dima

Simplify extHostSearch

上级 217824cc
...@@ -115,7 +115,7 @@ export function createApiFactory( ...@@ -115,7 +115,7 @@ export function createApiFactory(
const extHostTerminalService = rpcProtocol.set(ExtHostContext.ExtHostTerminalService, new ExtHostTerminalService(rpcProtocol, extHostConfiguration, extHostLogService)); const extHostTerminalService = rpcProtocol.set(ExtHostContext.ExtHostTerminalService, new ExtHostTerminalService(rpcProtocol, extHostConfiguration, extHostLogService));
const extHostDebugService = rpcProtocol.set(ExtHostContext.ExtHostDebugService, new ExtHostDebugService(rpcProtocol, extHostWorkspace, extensionService, extHostDocumentsAndEditors, extHostConfiguration, extHostTerminalService, extHostCommands)); const extHostDebugService = rpcProtocol.set(ExtHostContext.ExtHostDebugService, new ExtHostDebugService(rpcProtocol, extHostWorkspace, extensionService, extHostDocumentsAndEditors, extHostConfiguration, extHostTerminalService, extHostCommands));
const extHostSCM = rpcProtocol.set(ExtHostContext.ExtHostSCM, new ExtHostSCM(rpcProtocol, extHostCommands, extHostLogService)); const extHostSCM = rpcProtocol.set(ExtHostContext.ExtHostSCM, new ExtHostSCM(rpcProtocol, extHostCommands, extHostLogService));
const extHostSearch = rpcProtocol.set(ExtHostContext.ExtHostSearch, new ExtHostSearch(rpcProtocol, schemeTransformer, extHostLogService, extHostConfiguration)); const extHostSearch = rpcProtocol.set(ExtHostContext.ExtHostSearch, new ExtHostSearch(rpcProtocol, schemeTransformer, extHostLogService));
const extHostTask = rpcProtocol.set(ExtHostContext.ExtHostTask, new ExtHostTask(rpcProtocol, extHostWorkspace, extHostDocumentsAndEditors, extHostConfiguration)); const extHostTask = rpcProtocol.set(ExtHostContext.ExtHostTask, new ExtHostTask(rpcProtocol, extHostWorkspace, extHostDocumentsAndEditors, extHostConfiguration));
const extHostWindow = rpcProtocol.set(ExtHostContext.ExtHostWindow, new ExtHostWindow(rpcProtocol)); const extHostWindow = rpcProtocol.set(ExtHostContext.ExtHostWindow, new ExtHostWindow(rpcProtocol));
rpcProtocol.set(ExtHostContext.ExtHostExtensionService, extensionService); rpcProtocol.set(ExtHostContext.ExtHostExtensionService, extensionService);
......
...@@ -9,7 +9,6 @@ import { URI, UriComponents } from 'vs/base/common/uri'; ...@@ -9,7 +9,6 @@ import { URI, UriComponents } from 'vs/base/common/uri';
import * as extfs from 'vs/base/node/extfs'; import * as extfs from 'vs/base/node/extfs';
import { ILogService } from 'vs/platform/log/common/log'; import { ILogService } from 'vs/platform/log/common/log';
import { IFileQuery, IFolderQuery, IRawFileQuery, IRawQuery, IRawTextQuery, ISearchCompleteStats, ITextQuery } from 'vs/platform/search/common/search'; import { IFileQuery, IFolderQuery, IRawFileQuery, IRawQuery, IRawTextQuery, ISearchCompleteStats, ITextQuery } from 'vs/platform/search/common/search';
import { ExtHostConfiguration, ExtHostConfigProvider } from 'vs/workbench/api/node/extHostConfiguration';
import { FileIndexSearchManager } from 'vs/workbench/api/node/extHostSearch.fileIndex'; import { FileIndexSearchManager } from 'vs/workbench/api/node/extHostSearch.fileIndex';
import { FileSearchManager } from 'vs/workbench/services/search/node/fileSearchManager'; import { FileSearchManager } from 'vs/workbench/services/search/node/fileSearchManager';
import { SearchService } from 'vs/workbench/services/search/node/rawSearchService'; import { SearchService } from 'vs/workbench/services/search/node/rawSearchService';
...@@ -41,14 +40,10 @@ export class ExtHostSearch implements ExtHostSearchShape { ...@@ -41,14 +40,10 @@ export class ExtHostSearch implements ExtHostSearchShape {
private _fileSearchManager: FileSearchManager; private _fileSearchManager: FileSearchManager;
private _fileIndexSearchManager: FileIndexSearchManager; private _fileIndexSearchManager: FileIndexSearchManager;
constructor(mainContext: IMainContext, private _schemeTransformer: ISchemeTransformer, private _logService: ILogService, configService: ExtHostConfiguration, private _extfs = extfs) { constructor(mainContext: IMainContext, private _schemeTransformer: ISchemeTransformer, private _logService: ILogService, private _extfs = extfs) {
this._proxy = mainContext.getProxy(MainContext.MainThreadSearch); this._proxy = mainContext.getProxy(MainContext.MainThreadSearch);
this._fileSearchManager = new FileSearchManager(); this._fileSearchManager = new FileSearchManager();
this._fileIndexSearchManager = new FileIndexSearchManager(); this._fileIndexSearchManager = new FileIndexSearchManager();
configService.getConfigProvider().then((configProvider) => {
registerEHProviders(this, _logService, configProvider);
});
} }
private _transformScheme(scheme: string): string { private _transformScheme(scheme: string): string {
...@@ -60,7 +55,7 @@ export class ExtHostSearch implements ExtHostSearchShape { ...@@ -60,7 +55,7 @@ export class ExtHostSearch implements ExtHostSearchShape {
registerTextSearchProvider(scheme: string, provider: vscode.TextSearchProvider): IDisposable { registerTextSearchProvider(scheme: string, provider: vscode.TextSearchProvider): IDisposable {
if (this._textSearchUsedSchemes.has(scheme)) { if (this._textSearchUsedSchemes.has(scheme)) {
throw new Error(`a provider for the scheme '${scheme}' is already registered`); throw new Error(`a text search provider for the scheme '${scheme}' is already registered`);
} }
this._textSearchUsedSchemes.add(scheme); this._textSearchUsedSchemes.add(scheme);
...@@ -76,7 +71,7 @@ export class ExtHostSearch implements ExtHostSearchShape { ...@@ -76,7 +71,7 @@ export class ExtHostSearch implements ExtHostSearchShape {
registerFileSearchProvider(scheme: string, provider: vscode.FileSearchProvider): IDisposable { registerFileSearchProvider(scheme: string, provider: vscode.FileSearchProvider): IDisposable {
if (this._fileSearchUsedSchemes.has(scheme)) { if (this._fileSearchUsedSchemes.has(scheme)) {
throw new Error(`a provider for the scheme '${scheme}' is already registered`); throw new Error(`a file search provider for the scheme '${scheme}' is already registered`);
} }
this._fileSearchUsedSchemes.add(scheme); this._fileSearchUsedSchemes.add(scheme);
...@@ -178,13 +173,10 @@ export class ExtHostSearch implements ExtHostSearchShape { ...@@ -178,13 +173,10 @@ export class ExtHostSearch implements ExtHostSearchShape {
} }
} }
function registerEHProviders(extHostSearch: ExtHostSearch, logService: ILogService, configService: ExtHostConfigProvider) { export function registerEHSearchProviders(extHostSearch: ExtHostSearch, logService: ILogService): void {
if (configService.getConfiguration('searchRipgrep').enable || configService.getConfiguration('search').runInExtensionHost) { const outputChannel = new OutputChannel(logService);
const outputChannel = new OutputChannel(logService); extHostSearch.registerTextSearchProvider('file', new RipgrepSearchProvider(outputChannel));
extHostSearch.registerTextSearchProvider('file', new RipgrepSearchProvider(outputChannel)); extHostSearch.registerInternalFileSearchProvider('file', new SearchService());
extHostSearch.registerInternalFileSearchProvider('file', new SearchService());
}
} }
function reviveQuery<U extends IRawQuery>(rawQuery: U): U extends IRawTextQuery ? ITextQuery : IFileQuery { function reviveQuery<U extends IRawQuery>(rawQuery: U): U extends IRawTextQuery ? ITextQuery : IFileQuery {
......
...@@ -12,7 +12,6 @@ import { URI, UriComponents } from 'vs/base/common/uri'; ...@@ -12,7 +12,6 @@ import { URI, UriComponents } from 'vs/base/common/uri';
import * as extfs from 'vs/base/node/extfs'; import * as extfs from 'vs/base/node/extfs';
import { IFileMatch, IFileQuery, IPatternInfo, IRawFileMatch2, ISearchCompleteStats, ISearchQuery, ITextQuery, QueryType, resultIsMatch } from 'vs/platform/search/common/search'; import { IFileMatch, IFileQuery, IPatternInfo, IRawFileMatch2, ISearchCompleteStats, ISearchQuery, ITextQuery, QueryType, resultIsMatch } from 'vs/platform/search/common/search';
import { MainContext, MainThreadSearchShape } from 'vs/workbench/api/node/extHost.protocol'; import { MainContext, MainThreadSearchShape } from 'vs/workbench/api/node/extHost.protocol';
import { ExtHostConfiguration } from 'vs/workbench/api/node/extHostConfiguration';
import { ExtHostSearch } from 'vs/workbench/api/node/extHostSearch'; import { ExtHostSearch } from 'vs/workbench/api/node/extHostSearch';
import { Range } from 'vs/workbench/api/node/extHostTypes'; import { Range } from 'vs/workbench/api/node/extHostTypes';
import { extensionResultIsMatch } from 'vs/workbench/services/search/node/textSearchManager'; import { extensionResultIsMatch } from 'vs/workbench/services/search/node/textSearchManager';
...@@ -60,16 +59,6 @@ class MockMainThreadSearch implements MainThreadSearchShape { ...@@ -60,16 +59,6 @@ class MockMainThreadSearch implements MainThreadSearchShape {
} }
} }
class MockExtHostConfiguration {
getConfigProvider(): Promise<any> {
return Promise.resolve({
getConfiguration: (section?: string, resource?: URI, extensionId?: string): vscode.WorkspaceConfiguration => {
return <vscode.WorkspaceConfiguration>{};
}
});
}
}
let mockExtfs: Partial<typeof extfs>; let mockExtfs: Partial<typeof extfs>;
suite('ExtHostSearch', () => { suite('ExtHostSearch', () => {
...@@ -142,12 +131,11 @@ suite('ExtHostSearch', () => { ...@@ -142,12 +131,11 @@ suite('ExtHostSearch', () => {
mockMainThreadSearch = new MockMainThreadSearch(); mockMainThreadSearch = new MockMainThreadSearch();
const logService = new TestLogService(); const logService = new TestLogService();
const ehConfiguration: ExtHostConfiguration = new MockExtHostConfiguration() as any;
rpcProtocol.set(MainContext.MainThreadSearch, mockMainThreadSearch); rpcProtocol.set(MainContext.MainThreadSearch, mockMainThreadSearch);
mockExtfs = {}; mockExtfs = {};
extHostSearch = new ExtHostSearch(rpcProtocol, null!, logService, ehConfiguration, mockExtfs as typeof extfs); extHostSearch = new ExtHostSearch(rpcProtocol, null!, logService, mockExtfs as typeof extfs);
}); });
teardown(() => { teardown(() => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册