mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Null/undefined check editors (#7084)
* Null check editors * Add console.errors to the null checks * Change promises * Fix typo * Add output type & change returns
This commit is contained in:
@@ -167,24 +167,23 @@ export const DE_NEW_QUERY_COMMAND_ID = 'dataExplorer.newQuery';
|
|||||||
// New Query
|
// New Query
|
||||||
CommandsRegistry.registerCommand({
|
CommandsRegistry.registerCommand({
|
||||||
id: DE_NEW_QUERY_COMMAND_ID,
|
id: DE_NEW_QUERY_COMMAND_ID,
|
||||||
handler: (accessor, args: TreeViewItemHandleArg) => {
|
handler: async (accessor, args: TreeViewItemHandleArg) => {
|
||||||
if (args.$treeItem) {
|
if (args.$treeItem) {
|
||||||
const queryEditorService = accessor.get(IQueryEditorService);
|
const queryEditorService = accessor.get(IQueryEditorService);
|
||||||
const connectionService = accessor.get(IConnectionManagementService);
|
const connectionService = accessor.get(IConnectionManagementService);
|
||||||
const capabilitiesService = accessor.get(ICapabilitiesService);
|
const capabilitiesService = accessor.get(ICapabilitiesService);
|
||||||
return queryEditorService.newSqlEditor().then((owner: IConnectableInput) => {
|
const owner = await queryEditorService.newSqlEditor();
|
||||||
// Connect our editor to the input connection
|
// Connect our editor to the input connection
|
||||||
let options: IConnectionCompletionOptions = {
|
let options: IConnectionCompletionOptions = {
|
||||||
params: { connectionType: ConnectionType.editor, input: owner },
|
params: { connectionType: ConnectionType.editor, input: owner },
|
||||||
saveTheConnection: false,
|
saveTheConnection: false,
|
||||||
showDashboard: false,
|
showDashboard: false,
|
||||||
showConnectionDialogOnError: true,
|
showConnectionDialogOnError: true,
|
||||||
showFirewallRuleOnError: true
|
showFirewallRuleOnError: true
|
||||||
};
|
};
|
||||||
return connectionService.connect(new ConnectionProfile(capabilitiesService, args.$treeItem.payload), owner.uri, options);
|
return connectionService.connect(new ConnectionProfile(capabilitiesService, args.$treeItem.payload), owner.uri, options);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return Promise.resolve(true);
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -205,7 +204,7 @@ export class RunQueryAction extends QueryTaskbarAction {
|
|||||||
this.label = nls.localize('runQueryLabel', "Run");
|
this.label = nls.localize('runQueryLabel', "Run");
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
public async run(): Promise<void> {
|
||||||
if (!this.editor.isSelectionEmpty()) {
|
if (!this.editor.isSelectionEmpty()) {
|
||||||
if (this.isConnected(this.editor)) {
|
if (this.isConnected(this.editor)) {
|
||||||
// If we are already connected, run the query
|
// If we are already connected, run the query
|
||||||
@@ -216,10 +215,10 @@ export class RunQueryAction extends QueryTaskbarAction {
|
|||||||
this.connectEditor(this.editor, RunQueryOnConnectionMode.executeQuery, this.editor.getSelection());
|
this.connectEditor(this.editor, RunQueryOnConnectionMode.executeQuery, this.editor.getSelection());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Promise.resolve(null);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
public runCurrent(): Promise<void> {
|
public async runCurrent(): Promise<void> {
|
||||||
if (!this.editor.isSelectionEmpty()) {
|
if (!this.editor.isSelectionEmpty()) {
|
||||||
if (this.isConnected(this.editor)) {
|
if (this.isConnected(this.editor)) {
|
||||||
// If we are already connected, run the query
|
// If we are already connected, run the query
|
||||||
@@ -230,7 +229,7 @@ export class RunQueryAction extends QueryTaskbarAction {
|
|||||||
this.connectEditor(this.editor, RunQueryOnConnectionMode.executeCurrentQuery, this.editor.getSelection(false));
|
this.connectEditor(this.editor, RunQueryOnConnectionMode.executeCurrentQuery, this.editor.getSelection(false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Promise.resolve(null);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
public runQuery(editor: QueryEditor, runCurrentStatement: boolean = false) {
|
public runQuery(editor: QueryEditor, runCurrentStatement: boolean = false) {
|
||||||
@@ -276,11 +275,14 @@ export class CancelQueryAction extends QueryTaskbarAction {
|
|||||||
this.label = nls.localize('cancelQueryLabel', "Cancel");
|
this.label = nls.localize('cancelQueryLabel', "Cancel");
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
public async run(): Promise<void> {
|
||||||
if (this.isConnected(this.editor)) {
|
if (this.isConnected(this.editor)) {
|
||||||
|
if (!this.editor.input) {
|
||||||
|
console.error('editor input was null');
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.queryModelService.cancelQuery(this.editor.input.uri);
|
this.queryModelService.cancelQuery(this.editor.input.uri);
|
||||||
}
|
}
|
||||||
return Promise.resolve(null);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,7 +302,7 @@ export class EstimatedQueryPlanAction extends QueryTaskbarAction {
|
|||||||
this.label = nls.localize('estimatedQueryPlan', "Explain");
|
this.label = nls.localize('estimatedQueryPlan', "Explain");
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
public async run(): Promise<void> {
|
||||||
if (!this.editor.isSelectionEmpty()) {
|
if (!this.editor.isSelectionEmpty()) {
|
||||||
if (this.isConnected(this.editor)) {
|
if (this.isConnected(this.editor)) {
|
||||||
// If we are already connected, run the query
|
// If we are already connected, run the query
|
||||||
@@ -311,7 +313,7 @@ export class EstimatedQueryPlanAction extends QueryTaskbarAction {
|
|||||||
this.connectEditor(this.editor, RunQueryOnConnectionMode.estimatedQueryPlan, this.editor.getSelection());
|
this.connectEditor(this.editor, RunQueryOnConnectionMode.estimatedQueryPlan, this.editor.getSelection());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Promise.resolve(null);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
public runQuery(editor: QueryEditor) {
|
public runQuery(editor: QueryEditor) {
|
||||||
@@ -339,7 +341,7 @@ export class ActualQueryPlanAction extends QueryTaskbarAction {
|
|||||||
this.label = nls.localize('actualQueryPlan', "Actual");
|
this.label = nls.localize('actualQueryPlan', "Actual");
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
public async run(): Promise<void> {
|
||||||
if (!this.editor.isSelectionEmpty()) {
|
if (!this.editor.isSelectionEmpty()) {
|
||||||
if (this.isConnected(this.editor)) {
|
if (this.isConnected(this.editor)) {
|
||||||
// If we are already connected, run the query
|
// If we are already connected, run the query
|
||||||
@@ -350,7 +352,7 @@ export class ActualQueryPlanAction extends QueryTaskbarAction {
|
|||||||
this.connectEditor(this.editor, RunQueryOnConnectionMode.actualQueryPlan, this.editor.getSelection());
|
this.connectEditor(this.editor, RunQueryOnConnectionMode.actualQueryPlan, this.editor.getSelection());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Promise.resolve(null);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
public runQuery(editor: QueryEditor) {
|
public runQuery(editor: QueryEditor) {
|
||||||
@@ -386,11 +388,11 @@ export class DisconnectDatabaseAction extends QueryTaskbarAction {
|
|||||||
this.label = nls.localize('disconnectDatabaseLabel', "Disconnect");
|
this.label = nls.localize('disconnectDatabaseLabel', "Disconnect");
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
public async run(): Promise<void> {
|
||||||
// Call disconnectEditor regardless of the connection state and let the ConnectionManagementService
|
// Call disconnectEditor regardless of the connection state and let the ConnectionManagementService
|
||||||
// determine if we need to disconnect, cancel an in-progress conneciton, or do nothing
|
// determine if we need to disconnect, cancel an in-progress conneciton, or do nothing
|
||||||
this.connectionManagementService.disconnectEditor(this.editor.input);
|
this.connectionManagementService.disconnectEditor(this.editor.input);
|
||||||
return Promise.resolve(null);
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -424,9 +426,9 @@ export class ConnectDatabaseAction extends QueryTaskbarAction {
|
|||||||
this.label = label;
|
this.label = label;
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
public async run(): Promise<void> {
|
||||||
this.connectEditor(this.editor);
|
this.connectEditor(this.editor);
|
||||||
return Promise.resolve(null);
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -471,7 +473,8 @@ export class ToggleConnectDatabaseAction extends QueryTaskbarAction {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
|
||||||
|
public async run(): Promise<void> {
|
||||||
if (!this.editor.input.isSharedSession) {
|
if (!this.editor.input.isSharedSession) {
|
||||||
if (this.connected) {
|
if (this.connected) {
|
||||||
// Call disconnectEditor regardless of the connection state and let the ConnectionManagementService
|
// Call disconnectEditor regardless of the connection state and let the ConnectionManagementService
|
||||||
@@ -481,7 +484,7 @@ export class ToggleConnectDatabaseAction extends QueryTaskbarAction {
|
|||||||
this.connectEditor(this.editor);
|
this.connectEditor(this.editor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Promise.resolve(null);
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -502,8 +505,8 @@ export class ListDatabasesAction extends QueryTaskbarAction {
|
|||||||
this.class = ListDatabasesAction.EnabledClass;
|
this.class = ListDatabasesAction.EnabledClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
public async run(): Promise<void> {
|
||||||
return Promise.resolve(null);
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -547,18 +550,21 @@ export class ToggleSqlCmdModeAction extends QueryTaskbarAction {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public run(): Promise<void> {
|
public async run(): Promise<void> {
|
||||||
const toSqlCmdState = !this.isSqlCmdMode; // input.state change triggers event that changes this.isSqlCmdMode, so store it before using
|
const toSqlCmdState = !this.isSqlCmdMode; // input.state change triggers event that changes this.isSqlCmdMode, so store it before using
|
||||||
this.editor.input.state.isSqlCmdMode = toSqlCmdState;
|
this.editor.input.state.isSqlCmdMode = toSqlCmdState;
|
||||||
|
|
||||||
// set query options
|
// set query options
|
||||||
let queryoptions: QueryExecutionOptions = { options: new Map<string, any>() };
|
let queryoptions: QueryExecutionOptions = { options: new Map<string, any>() };
|
||||||
queryoptions.options['isSqlCmdMode'] = toSqlCmdState;
|
queryoptions.options['isSqlCmdMode'] = toSqlCmdState;
|
||||||
|
if (!this.editor.input) {
|
||||||
|
console.error('editor input was null');
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.queryManagementService.setQueryExecutionOptions(this.editor.input.uri, queryoptions);
|
this.queryManagementService.setQueryExecutionOptions(this.editor.input.uri, queryoptions);
|
||||||
|
|
||||||
// set intellisense options
|
// set intellisense options
|
||||||
toSqlCmdState ? this.connectionManagementService.doChangeLanguageFlavor(this.editor.input.uri, 'sqlcmd', 'MSSQL') : this.connectionManagementService.doChangeLanguageFlavor(this.editor.input.uri, 'sql', 'MSSQL');
|
toSqlCmdState ? this.connectionManagementService.doChangeLanguageFlavor(this.editor.input.uri, 'sqlcmd', 'MSSQL') : this.connectionManagementService.doChangeLanguageFlavor(this.editor.input.uri, 'sql', 'MSSQL');
|
||||||
return Promise.resolve(null);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -677,6 +683,11 @@ export class ListDatabasesActionItem extends Disposable implements IActionViewIt
|
|||||||
|
|
||||||
// PRIVATE HELPERS /////////////////////////////////////////////////////
|
// PRIVATE HELPERS /////////////////////////////////////////////////////
|
||||||
private databaseSelected(dbName: string): void {
|
private databaseSelected(dbName: string): void {
|
||||||
|
if (!this._editor.input) {
|
||||||
|
console.error('editor input was null');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let uri = this._editor.input.uri;
|
let uri = this._editor.input.uri;
|
||||||
if (!uri) {
|
if (!uri) {
|
||||||
return;
|
return;
|
||||||
@@ -707,7 +718,12 @@ export class ListDatabasesActionItem extends Disposable implements IActionViewIt
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private getCurrentDatabaseName() {
|
private getCurrentDatabaseName(): string | undefined {
|
||||||
|
if (!this._editor.input) {
|
||||||
|
console.error('editor input was null');
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
let uri = this._editor.input.uri;
|
let uri = this._editor.input.uri;
|
||||||
if (uri) {
|
if (uri) {
|
||||||
let profile = this.connectionManagementService.getConnectionProfile(uri);
|
let profile = this.connectionManagementService.getConnectionProfile(uri);
|
||||||
@@ -731,6 +747,11 @@ export class ListDatabasesActionItem extends Disposable implements IActionViewIt
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this._editor.input) {
|
||||||
|
console.error('editor input was null');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let uri = this._editor.input.uri;
|
let uri = this._editor.input.uri;
|
||||||
if (uri !== connParams.connectionUri) {
|
if (uri !== connParams.connectionUri) {
|
||||||
return;
|
return;
|
||||||
@@ -740,6 +761,11 @@ export class ListDatabasesActionItem extends Disposable implements IActionViewIt
|
|||||||
}
|
}
|
||||||
|
|
||||||
private onDropdownFocus(): void {
|
private onDropdownFocus(): void {
|
||||||
|
if (!this._editor.input) {
|
||||||
|
console.error('editor input was null');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let uri = this._editor.input.uri;
|
let uri = this._editor.input.uri;
|
||||||
if (!uri) {
|
if (!uri) {
|
||||||
return;
|
return;
|
||||||
@@ -759,6 +785,10 @@ export class ListDatabasesActionItem extends Disposable implements IActionViewIt
|
|||||||
|
|
||||||
if (this._isInAccessibilityMode) {
|
if (this._isInAccessibilityMode) {
|
||||||
this._databaseSelectBox.enable();
|
this._databaseSelectBox.enable();
|
||||||
|
if (!this._editor.input) {
|
||||||
|
console.error('editor input was null');
|
||||||
|
return;
|
||||||
|
}
|
||||||
let uri = this._editor.input.uri;
|
let uri = this._editor.input.uri;
|
||||||
if (!uri) {
|
if (!uri) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ export class QueryEditor extends BaseEditor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// PUBLIC METHODS ////////////////////////////////////////////////////////////
|
// PUBLIC METHODS ////////////////////////////////////////////////////////////
|
||||||
public get input(): QueryInput {
|
public get input(): QueryInput | null {
|
||||||
return this._input as QueryInput;
|
return this._input as QueryInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user