mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Merge from vscode e1d3dd53d17fb1529a002e4d6fb066db0a0bd385 (#6460)
* Merge from vscode e1d3dd53d17fb1529a002e4d6fb066db0a0bd385 * fix servers icon * fix tests
This commit is contained in:
@@ -23,7 +23,6 @@ import { ConfigurationEditingService, EditableConfigurationTarget } from 'vs/wor
|
||||
import { WorkspaceConfiguration, FolderConfiguration, RemoteUserConfiguration, UserConfiguration } from 'vs/workbench/services/configuration/browser/configuration';
|
||||
import { JSONEditingService } from 'vs/workbench/services/configuration/common/jsonEditingService';
|
||||
import { IJSONSchema, IJSONSchemaMap } from 'vs/base/common/jsonSchema';
|
||||
import { localize } from 'vs/nls';
|
||||
import { isEqual, dirname } from 'vs/base/common/resources';
|
||||
import { mark } from 'vs/base/common/performance';
|
||||
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
|
||||
@@ -507,29 +506,29 @@ export class WorkspaceService extends Disposable implements IConfigurationServic
|
||||
private registerConfigurationSchemas(): void {
|
||||
if (this.workspace) {
|
||||
const jsonRegistry = Registry.as<IJSONContributionRegistry>(JSONExtensions.JSONContribution);
|
||||
const convertToNotSuggestedProperties = (properties: IJSONSchemaMap, errorMessage: string): IJSONSchemaMap => {
|
||||
const convertToNotSuggestedProperties = (properties: IJSONSchemaMap): IJSONSchemaMap => {
|
||||
return Object.keys(properties).reduce((result: IJSONSchemaMap, property) => {
|
||||
result[property] = deepClone(properties[property]);
|
||||
result[property].deprecationMessage = errorMessage;
|
||||
result[property].doNotSuggest = true;
|
||||
return result;
|
||||
}, {});
|
||||
};
|
||||
|
||||
const unsupportedApplicationSettings = convertToNotSuggestedProperties(applicationSettings.properties, localize('unsupportedApplicationSetting', "This setting can be applied only in application user settings"));
|
||||
const unsupportedMachineSettings = convertToNotSuggestedProperties(machineSettings.properties, localize('unsupportedMachineSetting', "This setting can be applied only in user settings"));
|
||||
const unsupportedRemoteMachineSettings = convertToNotSuggestedProperties(machineSettings.properties, localize('unsupportedRemoteMachineSetting', "This setting can be applied only in remote machine settings"));
|
||||
const allSettingsSchema: IJSONSchema = { properties: allSettings.properties, patternProperties: allSettings.patternProperties, additionalProperties: false, errorMessage: 'Unknown configuration setting' };
|
||||
const userSettingsSchema: IJSONSchema = this.remoteUserConfiguration ? { properties: { ...applicationSettings.properties, ...unsupportedRemoteMachineSettings, ...windowSettings.properties, ...resourceSettings.properties }, patternProperties: allSettings.patternProperties, additionalProperties: false, errorMessage: 'Unknown configuration setting' } : allSettingsSchema;
|
||||
const machineSettingsSchema: IJSONSchema = { properties: { ...unsupportedApplicationSettings, ...windowSettings.properties, ...resourceSettings.properties }, patternProperties: allSettings.patternProperties, additionalProperties: false, errorMessage: 'Unknown configuration setting' };
|
||||
const workspaceSettingsSchema: IJSONSchema = { properties: { ...unsupportedApplicationSettings, ...unsupportedMachineSettings, ...windowSettings.properties, ...resourceSettings.properties }, patternProperties: allSettings.patternProperties, additionalProperties: false, errorMessage: 'Unknown configuration setting' };
|
||||
const unsupportedApplicationSettings = convertToNotSuggestedProperties(applicationSettings.properties);
|
||||
const unsupportedMachineSettings = convertToNotSuggestedProperties(machineSettings.properties);
|
||||
const unsupportedRemoteMachineSettings = convertToNotSuggestedProperties(machineSettings.properties);
|
||||
const allSettingsSchema: IJSONSchema = { properties: allSettings.properties, patternProperties: allSettings.patternProperties, additionalProperties: true };
|
||||
const userSettingsSchema: IJSONSchema = this.remoteUserConfiguration ? { properties: { ...applicationSettings.properties, ...unsupportedRemoteMachineSettings, ...windowSettings.properties, ...resourceSettings.properties }, patternProperties: allSettings.patternProperties, additionalProperties: true } : allSettingsSchema;
|
||||
const machineSettingsSchema: IJSONSchema = { properties: { ...unsupportedApplicationSettings, ...windowSettings.properties, ...resourceSettings.properties }, patternProperties: allSettings.patternProperties, additionalProperties: true };
|
||||
const workspaceSettingsSchema: IJSONSchema = { properties: { ...unsupportedApplicationSettings, ...unsupportedMachineSettings, ...windowSettings.properties, ...resourceSettings.properties }, patternProperties: allSettings.patternProperties, additionalProperties: true };
|
||||
|
||||
jsonRegistry.registerSchema(defaultSettingsSchemaId, allSettingsSchema);
|
||||
jsonRegistry.registerSchema(userSettingsSchemaId, userSettingsSchema);
|
||||
jsonRegistry.registerSchema(machineSettingsSchemaId, machineSettingsSchema);
|
||||
|
||||
if (WorkbenchState.WORKSPACE === this.getWorkbenchState()) {
|
||||
const unsupportedWindowSettings = convertToNotSuggestedProperties(windowSettings.properties, localize('unsupportedWindowSetting', "This setting cannot be applied now. It will be applied when you open this folder directly."));
|
||||
const folderSettingsSchema: IJSONSchema = { properties: { ...unsupportedApplicationSettings, ...unsupportedMachineSettings, ...unsupportedWindowSettings, ...resourceSettings.properties }, patternProperties: allSettings.patternProperties, additionalProperties: false, errorMessage: 'Unknown configuration setting' };
|
||||
const unsupportedWindowSettings = convertToNotSuggestedProperties(windowSettings.properties);
|
||||
const folderSettingsSchema: IJSONSchema = { properties: { ...unsupportedApplicationSettings, ...unsupportedMachineSettings, ...unsupportedWindowSettings, ...resourceSettings.properties }, patternProperties: allSettings.patternProperties, additionalProperties: true };
|
||||
jsonRegistry.registerSchema(workspaceSettingsSchemaId, workspaceSettingsSchema);
|
||||
jsonRegistry.registerSchema(folderSettingsSchemaId, folderSettingsSchema);
|
||||
} else {
|
||||
|
||||
@@ -42,7 +42,6 @@ import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemPro
|
||||
import { ConfigurationCache } from 'vs/workbench/services/configuration/node/configurationCache';
|
||||
import { IRemoteAgentEnvironment } from 'vs/platform/remote/common/remoteAgentEnvironment';
|
||||
import { IConfigurationCache } from 'vs/workbench/services/configuration/common/configuration';
|
||||
// import { VSBuffer } from 'vs/base/common/buffer';
|
||||
import { SignService } from 'vs/platform/sign/browser/signService';
|
||||
import { FileUserDataProvider } from 'vs/workbench/services/userData/common/fileUserDataProvider';
|
||||
import { IKeybindingEditingService, KeybindingsEditingService } from 'vs/workbench/services/keybinding/common/keybindingEditing';
|
||||
@@ -276,7 +275,7 @@ suite('WorkspaceConfigurationService - Remote Folder', () => {
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
// await instantiationService.get(IFileService).writeFile(URI.file(remoteSettingsFile), VSBuffer.fromString('{ "configurationService.remote.machineSetting": "remoteValue" }'));
|
||||
// fs.writeFileSync(remoteSettingsFile, '{ "configurationService.remote.machineSetting": "remoteValue" }');
|
||||
// return promise;
|
||||
// });
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import { URI } from 'vs/base/common/uri';
|
||||
import { Event, Emitter } from 'vs/base/common/event';
|
||||
import { IDecorationsService, IDecoration, IResourceDecorationChangeEvent, IDecorationsProvider, IDecorationData } from './decorations';
|
||||
import { TernarySearchTree } from 'vs/base/common/map';
|
||||
import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
|
||||
import { Disposable, IDisposable, toDisposable, dispose } from 'vs/base/common/lifecycle';
|
||||
import { isThenable } from 'vs/base/common/async';
|
||||
import { LinkedList } from 'vs/base/common/linkedList';
|
||||
import { createStyleSheet, createCSSRule, removeCSSRulesContainingSelector } from 'vs/base/browser/dom';
|
||||
@@ -334,14 +334,15 @@ class DecorationProviderWrapper {
|
||||
}
|
||||
}
|
||||
|
||||
export class FileDecorationsService extends Disposable implements IDecorationsService {
|
||||
export class FileDecorationsService implements IDecorationsService {
|
||||
|
||||
_serviceBrand: any;
|
||||
|
||||
private readonly _data = new LinkedList<DecorationProviderWrapper>();
|
||||
private readonly _onDidChangeDecorationsDelayed = this._register(new Emitter<URI | URI[]>());
|
||||
private readonly _onDidChangeDecorations = this._register(new Emitter<IResourceDecorationChangeEvent>());
|
||||
private readonly _onDidChangeDecorationsDelayed = new Emitter<URI | URI[]>();
|
||||
private readonly _onDidChangeDecorations = new Emitter<IResourceDecorationChangeEvent>();
|
||||
private readonly _decorationStyles: DecorationStyles;
|
||||
private readonly _disposables: IDisposable[];
|
||||
|
||||
readonly onDidChangeDecorations: Event<IResourceDecorationChangeEvent> = Event.any(
|
||||
this._onDidChangeDecorations.event,
|
||||
@@ -355,17 +356,27 @@ export class FileDecorationsService extends Disposable implements IDecorationsSe
|
||||
constructor(
|
||||
@IThemeService themeService: IThemeService
|
||||
) {
|
||||
super();
|
||||
this._decorationStyles = this._register(new DecorationStyles(themeService));
|
||||
this._decorationStyles = new DecorationStyles(themeService);
|
||||
|
||||
// every so many events we check if there are
|
||||
// css styles that we don't need anymore
|
||||
let count = 0;
|
||||
this._register(this.onDidChangeDecorations(() => {
|
||||
let reg = this.onDidChangeDecorations(() => {
|
||||
if (++count % 17 === 0) {
|
||||
this._decorationStyles.cleanUp(this._data.iterator());
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
this._disposables = [
|
||||
reg,
|
||||
this._decorationStyles
|
||||
];
|
||||
}
|
||||
|
||||
dispose(): void {
|
||||
dispose(this._disposables);
|
||||
dispose(this._onDidChangeDecorations);
|
||||
dispose(this._onDidChangeDecorationsDelayed);
|
||||
}
|
||||
|
||||
registerDecorationsProvider(provider: IDecorationsProvider): IDisposable {
|
||||
|
||||
@@ -162,6 +162,11 @@ export class RemoteExtensionHostClient extends Disposable implements IExtensionH
|
||||
}
|
||||
|
||||
private _onExtHostConnectionLost(): void {
|
||||
|
||||
if (this._isExtensionDevHost && this._environmentService.debugExtensionHost.debugId) {
|
||||
this._extensionHostDebugService.close(this._environmentService.debugExtensionHost.debugId);
|
||||
}
|
||||
|
||||
if (this._terminating) {
|
||||
// Expected termination path (we asked the process to terminate)
|
||||
return;
|
||||
|
||||
@@ -101,10 +101,6 @@ export class CachedExtensionScanner {
|
||||
development.forEach(developedExtension => {
|
||||
log.info('', nls.localize('extensionUnderDevelopment', "Loading development extension at {0}", developedExtension.extensionLocation.fsPath));
|
||||
const extensionKey = ExtensionIdentifier.toKey(developedExtension.identifier);
|
||||
const extension = result.get(extensionKey);
|
||||
if (extension) {
|
||||
log.warn(developedExtension.extensionLocation.fsPath, nls.localize('overwritingExtension', "Overwriting extension {0} with {1}.", extension.extensionLocation.fsPath, developedExtension.extensionLocation.fsPath));
|
||||
}
|
||||
result.set(extensionKey, developedExtension);
|
||||
});
|
||||
let r: IExtensionDescription[] = [];
|
||||
|
||||
@@ -32,7 +32,7 @@ import { ExtensionHostProcessManager } from 'vs/workbench/services/extensions/co
|
||||
import { ExtensionIdentifier, IExtension, ExtensionType, IExtensionDescription } from 'vs/platform/extensions/common/extensions';
|
||||
import { Schemas } from 'vs/base/common/network';
|
||||
import { IFileService } from 'vs/platform/files/common/files';
|
||||
import { PersistenConnectionEventType } from 'vs/platform/remote/common/remoteAgentConnection';
|
||||
import { PersistentConnectionEventType } from 'vs/platform/remote/common/remoteAgentConnection';
|
||||
import { IProductService } from 'vs/platform/product/common/product';
|
||||
import { Logger } from 'vs/workbench/services/extensions/common/extensionPoints';
|
||||
|
||||
@@ -478,7 +478,7 @@ export class ExtensionService extends AbstractExtensionService implements IExten
|
||||
if (!remoteAuthority) {
|
||||
return;
|
||||
}
|
||||
if (e.type === PersistenConnectionEventType.ConnectionLost) {
|
||||
if (e.type === PersistentConnectionEventType.ConnectionLost) {
|
||||
this._remoteAuthorityResolverService.clearResolvedAuthority(remoteAuthority);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user