Merge branch 'master' into scm-api

This commit is contained in:
Joao Moreno
2016-11-28 10:37:55 +01:00
182 changed files with 1285 additions and 934 deletions

View File

@@ -298,7 +298,7 @@ export function createApiFactory(initData: IInitData, threadService: IThreadServ
return extHostQuickOpen.showInput(options, token);
},
createStatusBarItem(position?: vscode.StatusBarAlignment, priority?: number): vscode.StatusBarItem {
return extHostStatusBar.createStatusBarEntry(<number>position, priority);
return extHostStatusBar.createStatusBarEntry(extension.id, <number>position, priority);
},
setStatusBarMessage(text: string, timeoutOrThenable?: number | Thenable<any>): vscode.Disposable {
return extHostStatusBar.setStatusBarMessage(text, timeoutOrThenable);

View File

@@ -29,7 +29,7 @@ import * as modes from 'vs/editor/common/modes';
import { IResourceEdit } from 'vs/editor/common/services/bulkEdit';
import { ConfigurationTarget } from 'vs/workbench/services/configuration/common/configurationEditing';
import { IWorkspaceConfiguration } from 'vs/workbench/services/configuration/common/configuration';
import { IWorkspaceConfigurationValues } from 'vs/workbench/services/configuration/common/configuration';
import { IPickOpenEntry, IPickOptions } from 'vs/workbench/services/quickopen/common/quickOpenService';
import { SaveReason } from 'vs/workbench/services/textfile/common/textfiles';
@@ -54,7 +54,7 @@ export interface IInitData {
workspace: IWorkspace;
};
extensions: IExtensionDescription[];
configuration: IWorkspaceConfiguration;
configuration: IWorkspaceConfigurationValues;
telemetryInfo: ITelemetryInfo;
}
@@ -201,7 +201,7 @@ export abstract class MainThreadQuickOpenShape {
}
export abstract class MainThreadStatusBarShape {
$setEntry(id: number, text: string, tooltip: string, command: string, color: string, alignment: MainThreadStatusBarAlignment, priority: number): void { throw ni(); }
$setEntry(id: number, extensionId: string, text: string, tooltip: string, command: string, color: string, alignment: MainThreadStatusBarAlignment, priority: number): void { throw ni(); }
$dispose(id: number) { throw ni(); }
}
@@ -241,7 +241,7 @@ export abstract class ExtHostCommandsShape {
}
export abstract class ExtHostConfigurationShape {
$acceptConfigurationChanged(entries: IWorkspaceConfiguration) { throw ni(); }
$acceptConfigurationChanged(values: IWorkspaceConfigurationValues) { throw ni(); }
}
export abstract class ExtHostDiagnosticsShape {

View File

@@ -9,7 +9,7 @@ import Event, { Emitter } from 'vs/base/common/event';
import { WorkspaceConfiguration } from 'vscode';
import { ExtHostConfigurationShape, MainThreadConfigurationShape } from './extHost.protocol';
import { ConfigurationTarget } from 'vs/workbench/services/configuration/common/configurationEditing';
import { IWorkspaceConfiguration } from 'vs/workbench/services/configuration/common/configuration';
import { IWorkspaceConfigurationValues } from 'vs/workbench/services/configuration/common/configuration';
import { toValuesTree } from 'vs/platform/configuration/common/model';
function lookUp(tree: any, key: string) {
@@ -24,11 +24,11 @@ function lookUp(tree: any, key: string) {
}
interface UsefulConfiguration {
data: IWorkspaceConfiguration;
data: IWorkspaceConfigurationValues;
valueTree: any;
}
function createUsefulConfiguration(data: IWorkspaceConfiguration): { data: IWorkspaceConfiguration, valueTree: any } {
function createUsefulConfiguration(data: IWorkspaceConfigurationValues): { data: IWorkspaceConfigurationValues, valueTree: any } {
const valueMap: { [key: string]: any } = Object.create(null);
for (let key in data) {
if (Object.prototype.hasOwnProperty.call(data, key)) {
@@ -48,7 +48,7 @@ export class ExtHostConfiguration extends ExtHostConfigurationShape {
private _proxy: MainThreadConfigurationShape;
private _configuration: UsefulConfiguration;
constructor(proxy: MainThreadConfigurationShape, data: IWorkspaceConfiguration) {
constructor(proxy: MainThreadConfigurationShape, data: IWorkspaceConfigurationValues) {
super();
this._proxy = proxy;
this._configuration = createUsefulConfiguration(data);
@@ -58,7 +58,7 @@ export class ExtHostConfiguration extends ExtHostConfigurationShape {
return this._onDidChangeConfiguration && this._onDidChangeConfiguration.event;
}
public $acceptConfigurationChanged(data: IWorkspaceConfiguration) {
public $acceptConfigurationChanged(data: IWorkspaceConfigurationValues) {
this._configuration = createUsefulConfiguration(data);
this._onDidChangeConfiguration.fire(undefined);
}

View File

@@ -27,11 +27,14 @@ export class ExtHostStatusBarEntry implements StatusBarItem {
private _timeoutHandle: number;
private _proxy: MainThreadStatusBarShape;
constructor(proxy: MainThreadStatusBarShape, alignment: ExtHostStatusBarAlignment = ExtHostStatusBarAlignment.Left, priority?: number) {
private _extensionId: string;
constructor(proxy: MainThreadStatusBarShape, extensionId: string, alignment: ExtHostStatusBarAlignment = ExtHostStatusBarAlignment.Left, priority?: number) {
this._id = ExtHostStatusBarEntry.ID_GEN++;
this._proxy = proxy;
this._alignment = alignment;
this._priority = priority;
this._extensionId = extensionId;
}
public get id(): number {
@@ -105,7 +108,7 @@ export class ExtHostStatusBarEntry implements StatusBarItem {
this._timeoutHandle = undefined;
// Set to status bar
this._proxy.$setEntry(this.id, this.text, this.tooltip, this.command, this.color,
this._proxy.$setEntry(this.id, this._extensionId, this.text, this.tooltip, this.command, this.color,
this._alignment === ExtHostStatusBarAlignment.Left ? MainThreadStatusBarAlignment.LEFT : MainThreadStatusBarAlignment.RIGHT,
this._priority);
}, 0);
@@ -123,7 +126,7 @@ class StatusBarMessage {
private _messages: { message: string }[] = [];
constructor(statusBar: ExtHostStatusBar) {
this._item = statusBar.createStatusBarEntry(ExtHostStatusBarAlignment.Left, Number.MIN_VALUE);
this._item = statusBar.createStatusBarEntry(void 0, ExtHostStatusBarAlignment.Left, Number.MIN_VALUE);
}
dispose() {
@@ -165,8 +168,8 @@ export class ExtHostStatusBar {
this._statusMessage = new StatusBarMessage(this);
}
createStatusBarEntry(alignment?: ExtHostStatusBarAlignment, priority?: number): StatusBarItem {
return new ExtHostStatusBarEntry(this._proxy, alignment, priority);
createStatusBarEntry(extensionId: string, alignment?: ExtHostStatusBarAlignment, priority?: number): StatusBarItem {
return new ExtHostStatusBarEntry(this._proxy, extensionId, alignment, priority);
}
setStatusBarMessage(text: string, timeoutOrThenable?: number | Thenable<any>): Disposable {

View File

@@ -524,6 +524,10 @@ export class WorkspaceEdit {
export class SnippetString {
private static _escape(value: string): string {
return value.replace(/\$|}|\\/g, '\\$&');
}
private _tabstop: number = 1;
value: string;
@@ -533,7 +537,7 @@ export class SnippetString {
}
appendText(string: string): SnippetString {
this.value += string.replace(/\$/g, '\\$');
this.value += SnippetString._escape(string);
return this;
}
@@ -552,7 +556,7 @@ export class SnippetString {
this._tabstop = nested._tabstop;
value = nested.value;
} else {
value = value.replace(/\$|}/g, '\\$&');
value = SnippetString._escape(value);
}
this.value += '${';

View File

@@ -7,7 +7,7 @@
import { TPromise } from 'vs/base/common/winjs.base';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { IThreadService } from 'vs/workbench/services/thread/common/threadService';
import { IWorkspaceConfigurationService, getEntries } from 'vs/workbench/services/configuration/common/configuration';
import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration';
import { IConfigurationEditingService, ConfigurationTarget } from 'vs/workbench/services/configuration/common/configurationEditing';
import { MainThreadConfigurationShape, ExtHostContext } from './extHost.protocol';
@@ -26,8 +26,7 @@ export class MainThreadConfiguration extends MainThreadConfigurationShape {
const proxy = threadService.get(ExtHostContext.ExtHostConfiguration);
this._toDispose = configurationService.onDidUpdateConfiguration(() => {
const entries = getEntries(configurationService);
proxy.$acceptConfigurationChanged(entries);
proxy.$acceptConfigurationChanged(configurationService.values());
});
}

View File

@@ -18,13 +18,13 @@ export class MainThreadStatusBar extends MainThreadStatusBarShape {
this.mapIdToDisposable = Object.create(null);
}
$setEntry(id: number, text: string, tooltip: string, command: string, color: string, alignment: MainThreadStatusBarAlignment, priority: number): void {
$setEntry(id: number, extensionId: string, text: string, tooltip: string, command: string, color: string, alignment: MainThreadStatusBarAlignment, priority: number): void {
// Dispose any old
this.$dispose(id);
// Add new
let disposeable = this.statusbarService.addEntry({ text, tooltip, command, color }, alignment, priority);
let disposeable = this.statusbarService.addEntry({ text, tooltip, command, color, extensionId }, alignment, priority);
this.mapIdToDisposable[id] = disposeable;
}

View File

@@ -7,7 +7,7 @@
import { TPromise } from 'vs/base/common/winjs.base';
import { IThreadService } from 'vs/workbench/services/thread/common/threadService';
import { ExtHostContext, MainThreadTreeExplorersShape, ExtHostTreeExplorersShape } from './extHost.protocol';
import { ICustomTreeExplorerService } from 'vs/workbench/parts/explorers/common/customTreeExplorerService';
import { ITreeExplorerService } from 'vs/workbench/parts/explorers/common/treeExplorerService';
import { InternalTreeExplorerNodeContent } from 'vs/workbench/parts/explorers/common/treeExplorerViewModel';
import { IMessageService, Severity } from 'vs/platform/message/common/message';
import { ICommandService } from 'vs/platform/commands/common/commands';
@@ -17,7 +17,7 @@ export class MainThreadTreeExplorers extends MainThreadTreeExplorersShape {
constructor(
@IThreadService private threadService: IThreadService,
@ICustomTreeExplorerService private treeExplorerService: ICustomTreeExplorerService,
@ITreeExplorerService private treeExplorerService: ITreeExplorerService,
@IMessageService private messageService: IMessageService,
@ICommandService private commandService: ICommandService
) {