mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-30 16:50:30 -04:00
Merge from vscode 2f984aad710215f4e4684a035bb02f55d1a9e2cc (#9819)
This commit is contained in:
@@ -21,6 +21,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
|
||||
import { InstallRecommendedExtensionAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions';
|
||||
import { IProductService } from 'vs/platform/product/common/productService';
|
||||
import { XTermCore } from 'vs/workbench/contrib/terminal/browser/xterm-private';
|
||||
import { IStorageKeysSyncRegistryService } from 'vs/platform/userDataSync/common/storageKeys';
|
||||
|
||||
const MINIMUM_FONT_SIZE = 6;
|
||||
const MAXIMUM_FONT_SIZE = 25;
|
||||
@@ -47,7 +48,8 @@ export class TerminalConfigHelper implements IBrowserTerminalConfigHelper {
|
||||
@IStorageService private readonly _storageService: IStorageService,
|
||||
@ITelemetryService private readonly telemetryService: ITelemetryService,
|
||||
@IInstantiationService private readonly instantiationService: IInstantiationService,
|
||||
@IProductService private readonly productService: IProductService
|
||||
@IProductService private readonly productService: IProductService,
|
||||
@IStorageKeysSyncRegistryService storageKeysSyncRegistryService: IStorageKeysSyncRegistryService
|
||||
) {
|
||||
this._updateConfig();
|
||||
this._configurationService.onDidChangeConfiguration(e => {
|
||||
@@ -55,6 +57,9 @@ export class TerminalConfigHelper implements IBrowserTerminalConfigHelper {
|
||||
this._updateConfig();
|
||||
}
|
||||
});
|
||||
|
||||
// opt-in to syncing
|
||||
storageKeysSyncRegistryService.registerStorageKey({ key: 'terminalConfigHelper/launchRecommendationsIgnore', version: 1 });
|
||||
}
|
||||
|
||||
private _updateConfig(): void {
|
||||
|
||||
@@ -178,19 +178,14 @@ export class TerminalService implements ITerminalService {
|
||||
this._extHostsReady[remoteAuthority] = { promise, resolve };
|
||||
}
|
||||
|
||||
private async _onBeforeShutdown(): Promise<boolean> {
|
||||
private _onBeforeShutdown(): boolean | Promise<boolean> {
|
||||
if (this.terminalInstances.length === 0) {
|
||||
// No terminal instances, don't veto
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.configHelper.config.confirmOnExit) {
|
||||
// veto if configured to show confirmation and the user choosed not to exit
|
||||
const veto = await this._showTerminalCloseConfirmation();
|
||||
if (!veto) {
|
||||
this._isShuttingDown = true;
|
||||
}
|
||||
return veto;
|
||||
return this._onBeforeShutdownAsync();
|
||||
}
|
||||
|
||||
this._isShuttingDown = true;
|
||||
@@ -198,6 +193,15 @@ export class TerminalService implements ITerminalService {
|
||||
return false;
|
||||
}
|
||||
|
||||
private async _onBeforeShutdownAsync(): Promise<boolean> {
|
||||
// veto if configured to show confirmation and the user choosed not to exit
|
||||
const veto = await this._showTerminalCloseConfirmation();
|
||||
if (!veto) {
|
||||
this._isShuttingDown = true;
|
||||
}
|
||||
return veto;
|
||||
}
|
||||
|
||||
private _onShutdown(): void {
|
||||
// Dispose of all instances
|
||||
this.terminalInstances.forEach(instance => instance.dispose(true));
|
||||
|
||||
@@ -8,6 +8,7 @@ import { TerminalConfigHelper } from 'vs/workbench/contrib/terminal/browser/term
|
||||
import { EDITOR_FONT_DEFAULTS } from 'vs/editor/common/config/editorOptions';
|
||||
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
|
||||
import { LinuxDistro } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { StorageKeysSyncRegistryService } from 'vs/platform/userDataSync/common/storageKeys';
|
||||
|
||||
suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} skip suite
|
||||
let fixture: HTMLElement;
|
||||
@@ -29,7 +30,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
const configurationService = new TestConfigurationService();
|
||||
configurationService.setUserConfiguration('editor', { fontFamily: 'foo' });
|
||||
configurationService.setUserConfiguration('terminal', { integrated: { fontFamily: null } });
|
||||
const configHelper = new TerminalConfigHelper(LinuxDistro.Fedora, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
const configHelper = new TerminalConfigHelper(LinuxDistro.Fedora, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontFamily, '\'DejaVu Sans Mono\', monospace', 'Fedora should have its font overridden when terminal.integrated.fontFamily not set');
|
||||
});
|
||||
@@ -38,7 +39,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
const configurationService = new TestConfigurationService();
|
||||
configurationService.setUserConfiguration('editor', { fontFamily: 'foo' });
|
||||
configurationService.setUserConfiguration('terminal', { integrated: { fontFamily: null } });
|
||||
const configHelper = new TerminalConfigHelper(LinuxDistro.Ubuntu, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
const configHelper = new TerminalConfigHelper(LinuxDistro.Ubuntu, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontFamily, '\'Ubuntu Mono\', monospace', 'Ubuntu should have its font overridden when terminal.integrated.fontFamily not set');
|
||||
});
|
||||
@@ -47,7 +48,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
const configurationService = new TestConfigurationService();
|
||||
configurationService.setUserConfiguration('editor', { fontFamily: 'foo' });
|
||||
configurationService.setUserConfiguration('terminal', { integrated: { fontFamily: null } });
|
||||
const configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
const configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontFamily, 'foo', 'editor.fontFamily should be the fallback when terminal.integrated.fontFamily not set');
|
||||
});
|
||||
@@ -65,7 +66,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
fontSize: 10
|
||||
}
|
||||
});
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontSize, 10, 'terminal.integrated.fontSize should be selected over editor.fontSize');
|
||||
|
||||
@@ -78,11 +79,11 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
fontSize: 0
|
||||
}
|
||||
});
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Ubuntu, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Ubuntu, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontSize, 8, 'The minimum terminal font size (with adjustment) should be used when terminal.integrated.fontSize less than it');
|
||||
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontSize, 6, 'The minimum terminal font size should be used when terminal.integrated.fontSize less than it');
|
||||
|
||||
@@ -95,7 +96,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
fontSize: 1500
|
||||
}
|
||||
});
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontSize, 25, 'The maximum terminal font size should be used when terminal.integrated.fontSize more than it');
|
||||
|
||||
@@ -108,11 +109,11 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
fontSize: null
|
||||
}
|
||||
});
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Ubuntu, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Ubuntu, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontSize, EDITOR_FONT_DEFAULTS.fontSize + 2, 'The default editor font size (with adjustment) should be used when terminal.integrated.fontSize is not set');
|
||||
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().fontSize, EDITOR_FONT_DEFAULTS.fontSize, 'The default editor font size should be used when terminal.integrated.fontSize is not set');
|
||||
});
|
||||
@@ -130,7 +131,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
lineHeight: 2
|
||||
}
|
||||
});
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().lineHeight, 2, 'terminal.integrated.lineHeight should be selected over editor.lineHeight');
|
||||
|
||||
@@ -144,7 +145,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
lineHeight: 0
|
||||
}
|
||||
});
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.getFont().lineHeight, 1, 'editor.lineHeight should be 1 when terminal.integrated.lineHeight not set');
|
||||
});
|
||||
@@ -157,7 +158,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
}
|
||||
});
|
||||
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.configFontIsMonospace(), true, 'monospace is monospaced');
|
||||
});
|
||||
@@ -169,7 +170,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
fontFamily: 'sans-serif'
|
||||
}
|
||||
});
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.configFontIsMonospace(), false, 'sans-serif is not monospaced');
|
||||
});
|
||||
@@ -181,7 +182,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
fontFamily: 'serif'
|
||||
}
|
||||
});
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.configFontIsMonospace(), false, 'serif is not monospaced');
|
||||
});
|
||||
@@ -197,7 +198,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
}
|
||||
});
|
||||
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.configFontIsMonospace(), true, 'monospace is monospaced');
|
||||
});
|
||||
@@ -213,7 +214,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
}
|
||||
});
|
||||
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.configFontIsMonospace(), false, 'sans-serif is not monospaced');
|
||||
});
|
||||
@@ -229,7 +230,7 @@ suite.skip('Workbench - TerminalConfigHelper', () => { // {{SQL CARBON EDIT}} sk
|
||||
}
|
||||
});
|
||||
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!);
|
||||
let configHelper = new TerminalConfigHelper(LinuxDistro.Unknown, configurationService, null!, null!, null!, null!, null!, null!, new StorageKeysSyncRegistryService());
|
||||
configHelper.panelContainer = fixture;
|
||||
assert.equal(configHelper.configFontIsMonospace(), false, 'serif is not monospaced');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user