提交 0b03de63 编写于 作者: J Johannes Rieken

avoid disk search trouble when having workspace folders that aren't on disk

上级 dbcc641f
......@@ -15,13 +15,14 @@ import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/un
import { IModelService } from 'vs/editor/common/services/modelService';
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { IRawSearch, IFolderSearch, ISerializedSearchComplete, ISerializedSearchProgressItem, ISerializedFileMatch, IRawSearchService, ITelemetryEvent } from './search';
import { IRawSearch, ISerializedSearchComplete, ISerializedSearchProgressItem, ISerializedFileMatch, IRawSearchService, ITelemetryEvent } from './search';
import { ISearchChannel, SearchChannelClient } from './searchIpc';
import { IEnvironmentService, IDebugParams } from 'vs/platform/environment/common/environment';
import { ResourceMap } from 'vs/base/common/map';
import { IDisposable } from 'vs/base/common/lifecycle';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { onUnexpectedError } from 'vs/base/common/errors';
import { Schemas } from 'vs/base/common/network';
export class SearchService implements ISearchService {
public _serviceBrand: any;
......@@ -259,15 +260,8 @@ export class DiskSearch implements ISearchResultProvider {
let request: PPromise<ISerializedSearchComplete, ISerializedSearchProgressItem>;
let rawSearch: IRawSearch = {
folderQueries: query.folderQueries ? query.folderQueries.map(q => {
return <IFolderSearch>{
excludePattern: q.excludePattern,
includePattern: q.includePattern,
fileEncoding: q.fileEncoding,
folder: q.folder.fsPath
};
}) : [],
extraFiles: query.extraFileResources ? query.extraFileResources.map(r => r.fsPath) : [],
folderQueries: [],
extraFiles: [],
filePattern: query.filePattern,
excludePattern: query.excludePattern,
includePattern: query.includePattern,
......@@ -278,6 +272,27 @@ export class DiskSearch implements ISearchResultProvider {
disregardIgnoreFiles: query.disregardIgnoreFiles
};
if (query.folderQueries) {
for (const q of query.folderQueries) {
if (q.folder.scheme === Schemas.file) {
rawSearch.folderQueries.push({
excludePattern: q.excludePattern,
includePattern: q.includePattern,
fileEncoding: q.fileEncoding,
folder: q.folder.fsPath
});
}
}
}
if (query.extraFileResources) {
for (const r of query.extraFileResources) {
if (r.scheme === Schemas.file) {
rawSearch.extraFiles.push(r.fsPath);
}
}
}
if (query.type === QueryType.Text) {
rawSearch.contentPattern = query.contentPattern;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册