提交 3ac890f6 编写于 作者: S Sandeep Somavarapu

clone configuration when needed

上级 a91380c3
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册