Merge branch 'master' into joh/ftp

This commit is contained in:
Johannes Rieken
2017-09-18 11:01:12 +02:00
401 changed files with 2685 additions and 1524 deletions

View File

@@ -66,7 +66,7 @@ export class MainThreadWorkspace implements MainThreadWorkspaceShape {
return undefined;
}
const query: ISearchQuery = {
folderQueries: workspace.folders.map(root => ({ folder: root })),
folderQueries: workspace.folders.map(folder => ({ folder: folder.uri })),
type: QueryType.File,
maxResults,
includePattern: { [include]: true },

View File

@@ -48,6 +48,7 @@ import { ITreeItem } from 'vs/workbench/common/views';
import { ThemeColor } from 'vs/platform/theme/common/themeService';
import { IDisposable } from 'vs/base/common/lifecycle';
import { SerializedError } from 'vs/base/common/errors';
import { WorkspaceFolder } from 'vs/platform/workspace/common/workspace';
export interface IEnvironment {
isExtensionDevelopmentDebug: boolean;
@@ -64,7 +65,7 @@ export interface IEnvironment {
export interface IWorkspaceData {
id: string;
name: string;
folders: URI[];
folders: WorkspaceFolder[];
}
export interface IInitData {

View File

@@ -8,7 +8,7 @@ import URI from 'vs/base/common/uri';
import Event, { Emitter } from 'vs/base/common/event';
import { normalize } from 'vs/base/common/paths';
import { delta } from 'vs/base/common/arrays';
import { relative, basename } from 'path';
import { relative } from 'path';
import { Workspace } from 'vs/platform/workspace/common/workspace';
import { IResourceEdit } from 'vs/editor/common/services/bulkEdit';
import { TPromise } from 'vs/base/common/winjs.base';
@@ -28,26 +28,22 @@ class Workspace2 extends Workspace {
return data ? new Workspace2(data) : null;
}
private readonly _folder: vscode.WorkspaceFolder[] = [];
private readonly _workspaceFolders: vscode.WorkspaceFolder[] = [];
private readonly _structure = new TrieMap<vscode.WorkspaceFolder>(s => s.split('/'));
private constructor(data: IWorkspaceData) {
super(data.id, data.name, data.folders);
// setup the workspace folder data structure
this.folders.forEach((uri, index) => {
const folder = {
name: basename(uri.fsPath),
uri,
index
};
this._folder.push(folder);
this._structure.insert(folder.uri.toString(), folder);
this.folders.forEach(({ name, uri, index }) => {
const workspaceFolder = { name, uri, index };
this._workspaceFolders.push(workspaceFolder);
this._structure.insert(workspaceFolder.uri.toString(), workspaceFolder);
});
}
get workspaceFolders(): vscode.WorkspaceFolder[] {
return this._folder.slice(0);
return this._workspaceFolders.slice(0);
}
getWorkspaceFolder(uri: URI): vscode.WorkspaceFolder {
@@ -114,7 +110,7 @@ export class ExtHostWorkspace implements ExtHostWorkspaceShape {
if (folders.length === 0) {
return undefined;
}
return folders[0].fsPath;
return folders[0].uri.fsPath;
}
getRelativePath(pathOrUri: string | vscode.Uri, includeWorkspace?: boolean): string {