diff --git a/extensions/vscode-api-tests/package.json b/extensions/vscode-api-tests/package.json index b305d960895..57a6eb0247e 100644 --- a/extensions/vscode-api-tests/package.json +++ b/extensions/vscode-api-tests/package.json @@ -26,6 +26,10 @@ }, "farboo.config4": { "type": "string" + }, + "farboo.get": { + "type": "string", + "default": "get-prop" } } } diff --git a/extensions/vscode-api-tests/src/workspace.test.ts b/extensions/vscode-api-tests/src/workspace.test.ts index 972ad2ebf29..b79ad39be3b 100644 --- a/extensions/vscode-api-tests/src/workspace.test.ts +++ b/extensions/vscode-api-tests/src/workspace.test.ts @@ -21,6 +21,10 @@ suite('workspace-namespace', () => { assert.ok(config.has('config0')); assert.equal(config.get('config0'), true); assert.equal(config.get('config4'), ''); + assert.equal(config['config0'], true); + assert.equal(config['config4'], ''); + + assert.throws(() => config['config4'] = 'valuevalue'); assert.ok(config.has('nested.config1')); assert.equal(config.get('nested.config1'), 42); @@ -28,6 +32,15 @@ suite('workspace-namespace', () => { assert.equal(config.get('nested.config2'), 'Das Pferd frisst kein Reis.'); }); + test('configuration, name vs property', () => { + const config = workspace.getConfiguration('farboo'); + + assert.ok(config.has('get')); + assert.equal(config.get('get'), 'get-prop'); + assert.deepEqual(config['get'], config.get); + assert.throws(() => config['get'] = 'get-prop'); + }); + test('configuration, getConfig/value', () => { const value = workspace.getConfiguration('farboo.config0'); assert.equal(Object.keys(value).length, 2); diff --git a/src/vs/workbench/api/node/extHostConfiguration.ts b/src/vs/workbench/api/node/extHostConfiguration.ts index 6bf43202bf4..1a91cf5ecf5 100644 --- a/src/vs/workbench/api/node/extHostConfiguration.ts +++ b/src/vs/workbench/api/node/extHostConfiguration.ts @@ -61,7 +61,8 @@ export class ExtHostConfiguration extends ExtHostConfigurationShape { } return result; }; - return result; + + return Object.freeze(result); } private static _lookUp(section: string, config: any) {