mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 21:55:38 +00:00
clone configuration when needed
This commit is contained in:
parent
a91380c3d4
commit
3ac890f6ed
|
@ -7,6 +7,7 @@
|
|||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { IStorageService } from 'vs/platform/storage/common/storage';
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { clone } from 'vs/base/common/objects';
|
||||
|
||||
/* __GDPR__FRAGMENT__
|
||||
"IExperiments" : {
|
||||
|
@ -88,5 +89,5 @@ function splitRandom(random: number): [number, boolean] {
|
|||
}
|
||||
|
||||
function getExperimentsOverrides(configurationService: IConfigurationService): IExperiments {
|
||||
return configurationService.getValue<any>('experiments') || {};
|
||||
return clone(configurationService.getValue<any>('experiments')) || {};
|
||||
}
|
||||
|
|
|
@ -1601,7 +1601,7 @@ class TaskService extends EventEmitter implements ITaskService {
|
|||
|
||||
private getConfiguration(workspaceFolder: IWorkspaceFolder): { config: TaskConfig.ExternalTaskRunnerConfiguration; hasParseErrors: boolean } {
|
||||
let result = this.contextService.getWorkbenchState() !== WorkbenchState.EMPTY
|
||||
? this.configurationService.getValue<TaskConfig.ExternalTaskRunnerConfiguration>('tasks', { resource: workspaceFolder.uri })
|
||||
? Objects.clone(this.configurationService.getValue<TaskConfig.ExternalTaskRunnerConfiguration>('tasks', { resource: workspaceFolder.uri }))
|
||||
: undefined;
|
||||
if (!result) {
|
||||
return { config: undefined, hasParseErrors: false };
|
||||
|
|
|
@ -15,6 +15,7 @@ import { ITerminalConfiguration, ITerminalConfigHelper, ITerminalFont, IShellLau
|
|||
import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import Severity from 'vs/base/common/severity';
|
||||
import { isFedora } from 'vs/workbench/parts/terminal/electron-browser/terminal';
|
||||
import { clone } from 'vs/base/common/objects';
|
||||
|
||||
interface IEditorConfiguration {
|
||||
editor: IEditorOptions;
|
||||
|
@ -49,7 +50,7 @@ export class TerminalConfigHelper implements ITerminalConfigHelper {
|
|||
}
|
||||
|
||||
public get config(): ITerminalConfiguration {
|
||||
return this._configurationService.getValue<IFullTerminalConfiguration>().terminal.integrated;
|
||||
return clone(this._configurationService.getValue<IFullTerminalConfiguration>().terminal.integrated);
|
||||
}
|
||||
|
||||
private _measureFont(fontFamily: string, fontSize: number, lineHeight: number): ITerminalFont {
|
||||
|
|
|
@ -39,6 +39,7 @@ import { registerColor, focusBorder, textLinkForeground, textLinkActiveForegroun
|
|||
import { getExtraColor } from 'vs/workbench/parts/welcome/walkThrough/node/walkThroughUtils';
|
||||
import { UILabelProvider } from 'vs/base/common/keybindingLabels';
|
||||
import { OS, OperatingSystem } from 'vs/base/common/platform';
|
||||
import { clone } from 'vs/base/common/objects';
|
||||
|
||||
export const WALK_THROUGH_FOCUS = new RawContextKey<boolean>('interactivePlaygroundFocus', false);
|
||||
|
||||
|
@ -461,7 +462,7 @@ export class WalkThroughPart extends BaseEditor {
|
|||
}
|
||||
|
||||
private getEditorOptions(language: string): IEditorOptions {
|
||||
const config = this.configurationService.getValue<IEditorOptions>('editor', { overrideIdentifier: language });
|
||||
const config = clone(this.configurationService.getValue<IEditorOptions>('editor', { overrideIdentifier: language }));
|
||||
return {
|
||||
...isObject(config) ? config : Object.create(null),
|
||||
scrollBeyondLastLine: false,
|
||||
|
|
|
@ -64,7 +64,7 @@ export class SearchService implements ISearchService {
|
|||
|
||||
// Configuration: File Excludes
|
||||
if (!query.disregardExcludeSettings) {
|
||||
const fileExcludes = configuration && configuration.files && configuration.files.exclude;
|
||||
const fileExcludes = objects.clone(configuration && configuration.files && configuration.files.exclude);
|
||||
if (fileExcludes) {
|
||||
if (!query.excludePattern) {
|
||||
query.excludePattern = fileExcludes;
|
||||
|
|
|
@ -375,10 +375,10 @@ export class WorkbenchThemeService implements IWorkbenchThemeService {
|
|||
}
|
||||
|
||||
private updateColorCustomizations(notify = true): void {
|
||||
let newColorCustomizations = this.configurationService.getValue<IColorCustomizations>(CUSTOM_WORKBENCH_COLORS_SETTING) || {};
|
||||
let newColorCustomizations = objects.clone(this.configurationService.getValue<IColorCustomizations>(CUSTOM_WORKBENCH_COLORS_SETTING)) || {};
|
||||
let newColorIds = Object.keys(newColorCustomizations);
|
||||
|
||||
let newTokenColorCustomizations = this.configurationService.getValue<ITokenColorCustomizations>(CUSTOM_EDITOR_COLORS_SETTING) || {};
|
||||
let newTokenColorCustomizations = objects.clone(this.configurationService.getValue<ITokenColorCustomizations>(CUSTOM_EDITOR_COLORS_SETTING)) || {};
|
||||
|
||||
if (this.hasCustomizationChanged(newColorCustomizations, newColorIds, newTokenColorCustomizations)) {
|
||||
this.colorCustomizations = newColorCustomizations;
|
||||
|
|
Loading…
Reference in a new issue