From 782c941260e23a4f70ee09e2ca3473f9747c82e3 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 4 Sep 2018 15:54:28 +0200 Subject: [PATCH] add baseFolder to RelativePattern --- src/vs/workbench/api/node/extHostTypeConverters.ts | 7 +++++-- src/vs/workbench/api/node/extHostTypes.ts | 10 +++++++++- src/vs/workbench/api/node/extHostWorkspace.ts | 5 +++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index 665a183459f..5029a7f18c5 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -19,7 +19,6 @@ import { IPosition } from 'vs/editor/common/core/position'; import { IRange } from 'vs/editor/common/core/range'; import { ISelection } from 'vs/editor/common/core/selection'; import * as htmlContent from 'vs/base/common/htmlContent'; -import { IRelativePattern } from 'vs/base/common/glob'; import * as languageSelector from 'vs/editor/common/modes/languageSelector'; import { WorkspaceEditDto, ResourceTextEditDto, ResourceFileEditDto } from 'vs/workbench/api/node/extHost.protocol'; import { MarkerSeverity, IRelatedInformation, IMarkerData, MarkerTag } from 'vs/platform/markers/common/markers'; @@ -743,7 +742,11 @@ export namespace TextEditorOptions { export namespace GlobPattern { - export function from(pattern: vscode.GlobPattern): string | IRelativePattern { + export function from(pattern: vscode.GlobPattern): string | types.RelativePattern { + if (pattern instanceof types.RelativePattern) { + return pattern; + } + if (typeof pattern === 'string') { return pattern; } diff --git a/src/vs/workbench/api/node/extHostTypes.ts b/src/vs/workbench/api/node/extHostTypes.ts index 5e9c426cabc..35eef972bb1 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -1785,6 +1785,8 @@ export enum ConfigurationTarget { export class RelativePattern implements IRelativePattern { base: string; + baseFolder?: URI; + pattern: string; constructor(base: vscode.WorkspaceFolder | string, pattern: string) { @@ -1798,7 +1800,13 @@ export class RelativePattern implements IRelativePattern { throw illegalArgument('pattern'); } - this.base = typeof base === 'string' ? base : base.uri.fsPath; + if (typeof base === 'string') { + this.base = base; + } else { + this.baseFolder = base.uri; + this.base = base.uri.fsPath; + } + this.pattern = pattern; } diff --git a/src/vs/workbench/api/node/extHostWorkspace.ts b/src/vs/workbench/api/node/extHostWorkspace.ts index 0e798285834..904e6cdc827 100644 --- a/src/vs/workbench/api/node/extHostWorkspace.ts +++ b/src/vs/workbench/api/node/extHostWorkspace.ts @@ -20,7 +20,7 @@ import { ILogService } from 'vs/platform/log/common/log'; import { Severity } from 'vs/platform/notification/common/notification'; import { IQueryOptions, IRawFileMatch2 } from 'vs/platform/search/common/search'; import { Workspace, WorkspaceFolder } from 'vs/platform/workspace/common/workspace'; -import { Range } from 'vs/workbench/api/node/extHostTypes'; +import { Range, RelativePattern } from 'vs/workbench/api/node/extHostTypes'; import { IExtensionDescription } from 'vs/workbench/services/extensions/common/extensions'; import * as vscode from 'vscode'; import { ExtHostWorkspaceShape, IMainContext, IWorkspaceData, MainContext, MainThreadMessageServiceShape, MainThreadWorkspaceShape } from './extHost.protocol'; @@ -345,7 +345,7 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape { // --- search --- - findFiles(include: vscode.GlobPattern, exclude: vscode.GlobPattern, maxResults: number, extensionId: string, token?: vscode.CancellationToken): Thenable { + findFiles(include: string | RelativePattern, exclude: vscode.GlobPattern, maxResults: number, extensionId: string, token?: vscode.CancellationToken): Thenable { this._logService.trace(`extHostWorkspace#findFiles: fileSearch, extension: ${extensionId}, entryPoint: findFiles`); const requestId = this._requestIdProvider.getNext(); @@ -358,6 +358,7 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape { } else { includePattern = include.pattern; includeFolder = include.base; + // TODO use include.baseFolder; } } -- GitLab