Refresh master with initial release/0.24 snapshot (#332)

* Initial port of release/0.24 source code

* Fix additional headers

* Fix a typo in launch.json
This commit is contained in:
Karl Burtram
2017-12-15 15:38:57 -08:00
committed by GitHub
parent 271b3a0b82
commit 6ad0df0e3e
7118 changed files with 107999 additions and 56466 deletions

View File

@@ -6,9 +6,9 @@
'use strict';
import * as data from 'data';
import {TPromise} from 'vs/base/common/winjs.base';
import {IThreadService} from 'vs/workbench/services/thread/common/threadService';
import {Disposable} from 'vs/workbench/api/node/extHostTypes';
import { TPromise } from 'vs/base/common/winjs.base';
import { IThreadService } from 'vs/workbench/services/thread/common/threadService';
import { Disposable } from 'vs/workbench/api/node/extHostTypes';
import {
ExtHostAccountManagementShape,
MainThreadAccountManagementShape,
@@ -18,7 +18,7 @@ import {
export class ExtHostAccountManagement extends ExtHostAccountManagementShape {
private _handlePool: number = 0;
private _proxy: MainThreadAccountManagementShape;
private _providers: {[handle: number]: AccountProviderWithMetadata} = {};
private _providers: { [handle: number]: AccountProviderWithMetadata } = {};
constructor(threadService: IThreadService) {
super();
@@ -47,9 +47,21 @@ export class ExtHostAccountManagement extends ExtHostAccountManagementShape {
return this._withProvider(handle, (provider: data.AccountProvider) => provider.refresh(account));
}
public $autoOAuthCancelled(handle: number): Thenable<void> {
return this._withProvider(handle, (provider: data.AccountProvider) => provider.autoOAuthCancelled());
}
// - EXTENSION HOST AVAILABLE METHODS //////////////////////////////////
public $performOAuthAuthorization(url: string, silent: boolean): Thenable<string> {
return this._proxy.$performOAuthAuthorization(url, silent);
public $beginAutoOAuthDeviceCode(providerId: string, title: string, message: string, userCode: string, uri: string): Thenable<void> {
return this._proxy.$beginAutoOAuthDeviceCode(providerId, title, message, userCode, uri);
}
public $endAutoOAuthDeviceCode(): void {
this._proxy.$endAutoOAuthDeviceCode();
}
public $accountUpdated(updatedAccount: data.Account): void {
this._proxy.$accountUpdated(updatedAccount);
}
public $registerAccountProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): Disposable {

View File

@@ -339,37 +339,10 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
}
// Scripting handlers
public $scriptAsSelect(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return this._runWithProvider(handle, provider => {
return provider.scriptingProvider ? provider.scriptingProvider.scriptAsSelect(connectionUri, metadata, paramDetails)
: Promise.resolve(undefined);
});
}
public $scriptAsCreate(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
public $scriptAsOperation(handle: number, connectionUri: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return this._runWithProvider(handle, provider => {
return provider.scriptingProvider ? provider.scriptingProvider.scriptAsCreate(connectionUri, metadata, paramDetails)
: Promise.resolve(undefined);
});
}
public $scriptAsUpdate(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return this._runWithProvider(handle, provider => {
return provider.scriptingProvider ? provider.scriptingProvider.scriptAsUpdate(connectionUri, metadata, paramDetails)
: Promise.resolve(undefined);
});
}
public $scriptAsInsert(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return this._runWithProvider(handle, provider => {
return provider.scriptingProvider ? provider.scriptingProvider.scriptAsInsert(connectionUri, metadata, paramDetails)
: Promise.resolve(undefined);
});
}
public $scriptAsDelete(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return this._runWithProvider(handle, provider => {
return provider.scriptingProvider ? provider.scriptingProvider.scriptAsDelete(connectionUri, metadata, paramDetails)
return provider.scriptingProvider ? provider.scriptingProvider.scriptAsOperation(connectionUri, operation, metadata, paramDetails)
: Promise.resolve(undefined);
});
}
@@ -538,4 +511,35 @@ export class ExtHostDataProtocol extends ExtHostDataProtocolShape {
: Promise.resolve(undefined);
});
}
/**
* Profiler Provider methods
*/
/**
* Start a profiler session
*/
public $startSession(handle: number, sessionId: string): Thenable<boolean> {
return this._runWithProvider(handle, provider => {
return provider.profilerProvider ? provider.profilerProvider.startSession(sessionId)
: Promise.resolve(undefined);
});
}
/**
* Stop a profiler session
*/
public $stopSession(handle: number, sessionId: string): Thenable<boolean> {
return this._runWithProvider(handle, provider => {
return provider.profilerProvider ? provider.profilerProvider.stopSession(sessionId)
: Promise.resolve(undefined);
});
}
/**
* Profiler session events available notification
*/
public $onSessionEventsAvailable(handle: number, response: data.ProfilerSessionEvents): void {
this._proxy.$onSessionEventsAvailable(handle, response);
}
}

View File

@@ -5,9 +5,9 @@
'use strict';
import * as data from 'data';
import {TPromise} from 'vs/base/common/winjs.base';
import {IAccountManagementService} from 'sql/services/accountManagement/interfaces';
import {dispose, IDisposable} from 'vs/base/common/lifecycle';
import { TPromise } from 'vs/base/common/winjs.base';
import { IAccountManagementService } from 'sql/services/accountManagement/interfaces';
import { dispose, IDisposable } from 'vs/base/common/lifecycle';
import {
ExtHostAccountManagementShape,
MainThreadAccountManagementShape,
@@ -20,7 +20,7 @@ import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostC
@extHostNamedCustomer(SqlMainContext.MainThreadAccountManagement)
export class MainThreadAccountManagement extends MainThreadAccountManagementShape {
private _providerMetadata: {[handle: number]: data.AccountProviderMetadata};
private _providerMetadata: { [handle: number]: data.AccountProviderMetadata };
private _proxy: ExtHostAccountManagementShape;
private _toDispose: IDisposable[];
@@ -36,8 +36,16 @@ export class MainThreadAccountManagement extends MainThreadAccountManagementShap
this._toDispose = [];
}
public $performOAuthAuthorization(url, silent: boolean): Thenable<string> {
return this._accountManagementService.performOAuthAuthorization(url, silent);
public $beginAutoOAuthDeviceCode(providerId: string, title: string, message: string, userCode: string, uri: string): Thenable<void> {
return this._accountManagementService.beginAutoOAuthDeviceCode(providerId, title, message, userCode, uri);
}
public $endAutoOAuthDeviceCode(): void {
return this._accountManagementService.endAutoOAuthDeviceCode();
}
$accountUpdated(updatedAccount: data.Account): void {
this._accountManagementService.accountUpdated(updatedAccount);
}
public $registerAccountProvider(providerMetadata: data.AccountProviderMetadata, handle: number): Thenable<any> {
@@ -45,6 +53,9 @@ export class MainThreadAccountManagement extends MainThreadAccountManagementShap
// Create the account provider that interfaces with the extension via the proxy and register it
let accountProvider: data.AccountProvider = {
autoOAuthCancelled(): Thenable<void> {
return self._proxy.$autoOAuthCancelled(handle);
},
clear(accountKey: data.AccountKey): Thenable<void> {
return self._proxy.$clear(handle, accountKey);
},

View File

@@ -201,20 +201,8 @@ export class MainThreadDataProtocol extends MainThreadDataProtocolShape {
});
this._scriptingService.registerProvider(providerId, <data.ScriptingProvider>{
scriptAsSelect(connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return self._proxy.$scriptAsSelect(handle, connectionUri, metadata, paramDetails);
},
scriptAsCreate(connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return self._proxy.$scriptAsCreate(handle, connectionUri, metadata, paramDetails);
},
scriptAsInsert(connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return self._proxy.$scriptAsInsert(handle, connectionUri, metadata, paramDetails);
},
scriptAsUpdate(connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return self._proxy.$scriptAsUpdate(handle, connectionUri, metadata, paramDetails);
},
scriptAsDelete(connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return self._proxy.$scriptAsDelete(handle, connectionUri, metadata, paramDetails);
scriptAsOperation(connectionUri: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> {
return self._proxy.$scriptAsOperation(handle, connectionUri, operation, metadata, paramDetails);
}
});
@@ -269,6 +257,24 @@ export class MainThreadDataProtocol extends MainThreadDataProtocolShape {
}
});
this._profilerService.registerProvider(providerId, <data.ProfilerProvider>{
startSession(sessionId: string): Thenable<boolean> {
return self._proxy.$startSession(handle, sessionId);
},
stopSession(sessionId: string): Thenable<boolean> {
return self._proxy.$stopSession(handle, sessionId);
},
pauseSession(sessionId: string): Thenable<boolean> {
return TPromise.as(true);
},
connectSession(sessionId: string): Thenable<boolean> {
return TPromise.as(true);
},
disconnectSession(sessionId: string): Thenable<boolean> {
return TPromise.as(true);
}
});
return undefined;
}
@@ -341,6 +347,14 @@ export class MainThreadDataProtocol extends MainThreadDataProtocolShape {
this._fileBrowserService.onFilePathsValidated(handle, response);
}
// Profiler handlers
public $onSessionEventsAvailable(handle: number, response: data.ProfilerSessionEvents): void {
this._profilerService.onMoreRows(response);
//this._profilerService.onMoreRows
//this._taskService.onNewTaskCreated(handle, taskInfo);
}
public $unregisterProvider(handle: number): TPromise<any> {
let capabilitiesRegistration = this._capabilitiesRegistrations[handle];
if (capabilitiesRegistration) {
@@ -350,4 +364,6 @@ export class MainThreadDataProtocol extends MainThreadDataProtocolShape {
return undefined;
}
}

View File

@@ -5,7 +5,7 @@
'use strict';
import * as extHostApi from 'vs/workbench/api/node/extHost.api.impl';
import { TrieMap } from 'vs/base/common/map';
import { TrieMap } from 'sql/base/common/map';
import { TPromise } from 'vs/base/common/winjs.base';
import { IInitData } from 'vs/workbench/api/node/extHost.protocol';
import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService';
@@ -23,6 +23,8 @@ import { ExtHostSerializationProvider } from 'sql/workbench/api/node/extHostSeri
import { ExtHostResourceProvider } from 'sql/workbench/api/node/extHostResourceProvider';
import { ExtHostThreadService } from 'vs/workbench/services/thread/node/extHostThreadService';
import * as sqlExtHostTypes from 'sql/workbench/api/node/sqlExtHostTypes';
import { ExtHostWorkspace } from 'vs/workbench/api/node/extHostWorkspace';
import { ExtHostConfiguration } from 'vs/workbench/api/node/extHostConfiguration';
export interface ISqlExtensionApiFactory {
vsCodeFactory(extension: IExtensionDescription): typeof vscode;
@@ -35,9 +37,13 @@ export interface ISqlExtensionApiFactory {
export function createApiFactory(
initData: IInitData,
threadService: ExtHostThreadService,
extHostWorkspace: ExtHostWorkspace,
extHostConfiguration: ExtHostConfiguration,
extensionService: ExtHostExtensionService
): ISqlExtensionApiFactory {
let vsCodeFactory = extHostApi.createApiFactory(initData, threadService, extensionService);
let vsCodeFactory = extHostApi.createApiFactory(initData, threadService, extHostWorkspace, extHostConfiguration, extensionService);
// Addressable instances
const extHostAccountManagement = threadService.set(SqlExtHostContext.ExtHostAccountManagement, new ExtHostAccountManagement(threadService));
@@ -51,12 +57,18 @@ export function createApiFactory(
dataFactory: function (extension: IExtensionDescription): typeof data {
// namespace: accounts
const accounts: typeof data.accounts = {
performOAuthAuthorization(url: string, silent: boolean): Thenable<string> {
return extHostAccountManagement.$performOAuthAuthorization(url, silent);
},
registerAccountProvider(providerMetadata: data.AccountProviderMetadata, provider: data.AccountProvider): vscode.Disposable {
return extHostAccountManagement.$registerAccountProvider(providerMetadata, provider);
},
beginAutoOAuthDeviceCode(providerId: string, title: string, message: string, userCode: string, uri: string): Thenable<void> {
return extHostAccountManagement.$beginAutoOAuthDeviceCode(providerId, title, message, userCode, uri);
},
endAutoOAuthDeviceCode(): void {
return extHostAccountManagement.$endAutoOAuthDeviceCode();
},
accountUpdated(updatedAccount: data.Account): void {
return extHostAccountManagement.$accountUpdated(updatedAccount);
}
};
// namespace: credentials
@@ -161,6 +173,11 @@ export function createApiFactory(
extHostDataProvider.$onScriptingComplete(provider.handle, response);
});
// Profiler callbacks
provider.profilerProvider.registerOnSessionEventsAvailable((response: data.ProfilerSessionEvents) => {
extHostDataProvider.$onSessionEventsAvailable(provider.handle, response);
});
// Complete registration
return extHostDataProvider.$registerProvider(provider);
},
@@ -180,7 +197,8 @@ export function createApiFactory(
EditRowState: sqlExtHostTypes.EditRowState,
MetadataType: sqlExtHostTypes.MetadataType,
TaskStatus: sqlExtHostTypes.TaskStatus,
TaskExecutionMode: sqlExtHostTypes.TaskExecutionMode
TaskExecutionMode: sqlExtHostTypes.TaskExecutionMode,
ScriptOperation: sqlExtHostTypes.ScriptOperation
};
}
};

View File

@@ -15,6 +15,7 @@ import * as data from 'data';
import { TPromise } from 'vs/base/common/winjs.base';
export abstract class ExtHostAccountManagementShape {
$autoOAuthCancelled(handle: number): Thenable<void> { throw ni(); }
$clear(handle: number, accountKey: data.AccountKey): Thenable<void> { throw ni(); }
$getSecurityToken(handle: number, account: data.Account): Thenable<{}> { throw ni(); }
$initialize(handle: number, restoredAccounts: data.Account[]): Thenable<data.Account[]> { throw ni(); }
@@ -103,11 +104,7 @@ export abstract class ExtHostDataProtocolShape {
/**
* Scripting methods
*/
$scriptAsSelect(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> { throw ni(); }
$scriptAsCreate(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> { throw ni(); }
$scriptAsUpdate(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> { throw ni(); }
$scriptAsInsert(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> { throw ni(); }
$scriptAsDelete(handle: number, connectionUri: string, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> { throw ni(); }
$scriptAsOperation(handle: number, connectionUri: string, operation: data.ScriptOperation, metadata: data.ObjectMetadata, paramDetails: data.ScriptingParamDetails): Thenable<data.ScriptingResult> { throw ni(); }
/**
* Cancels the currently running query for a URI
@@ -288,6 +285,20 @@ export abstract class ExtHostDataProtocolShape {
* Close file browser
*/
$closeFileBrowser(handle: number, ownerUri: string): Thenable<data.FileBrowserCloseResponse> { throw ni(); }
/**
* Profiler Provider methods
*/
/**
* Start a profiler session
*/
$startSession(handle: number, sessionId: string): Thenable<boolean> { throw ni(); }
/**
* Stop a profiler session
*/
$stopSession(handle: number, sessionId: string): Thenable<boolean> { throw ni(); }
}
@@ -329,7 +340,10 @@ export abstract class MainThreadAccountManagementShape {
$registerAccountProvider(providerMetadata: data.AccountProviderMetadata, handle: number): Thenable<any> { throw ni(); }
$unregisterAccountProvider(handle: number): Thenable<any> { throw ni(); }
$performOAuthAuthorization(url: string, silent: boolean): Thenable<string> { throw ni(); }
$beginAutoOAuthDeviceCode(providerId: string, title: string, message: string, userCode: string, uri: string): Thenable<void> { throw ni(); }
$endAutoOAuthDeviceCode(): void { throw ni(); }
$accountUpdated(updatedAccount: data.Account): void { throw ni(); }
}
export abstract class MainThreadResourceProviderShape {
@@ -356,6 +370,7 @@ export abstract class MainThreadDataProtocolShape {
$onFolderNodeExpanded(handle: number, response: data.FileBrowserExpandedParams): void { throw ni(); }
$onFilePathsValidated(handle: number, response: data.FileBrowserValidatedParams): void { throw ni(); }
$onScriptingComplete(handle: number, message: data.ScriptingCompleteResult): void { throw ni(); }
$onSessionEventsAvailable(handle: number, response: data.ProfilerSessionEvents): void { throw ni(); }
/**
* Callback when a session has completed initialization

View File

@@ -60,5 +60,7 @@ export enum ScriptOperation {
Create = 1,
Insert = 2,
Update = 3,
Delete = 4
Delete = 4,
Execute = 5,
Alter = 6
}