From de65f6911d318361030cd719a84791ed44484f8c Mon Sep 17 00:00:00 2001 From: Jeong Woo Chang Date: Wed, 5 Oct 2016 12:10:14 -0700 Subject: [PATCH 001/242] Cannot read property 'uri' of null fix --- src/vs/editor/browser/standalone/standaloneEditor.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/browser/standalone/standaloneEditor.ts b/src/vs/editor/browser/standalone/standaloneEditor.ts index 4c7a386de96..64adc61f701 100644 --- a/src/vs/editor/browser/standalone/standaloneEditor.ts +++ b/src/vs/editor/browser/standalone/standaloneEditor.ts @@ -155,7 +155,9 @@ export function setModelLanguage(model:IModel, language:string): void { * Set the markers for a model. */ export function setModelMarkers(model:IModel, owner:string, markers: IMarkerData[]): void { - StaticServices.markerService.get().changeOne(owner, model.uri, markers); + if (model) { + StaticServices.markerService.get().changeOne(owner, model.uri, markers); + } } /** From 2243ac75b1035655df4f61c44fec7c5e58bf5e68 Mon Sep 17 00:00:00 2001 From: Ivan Samoylenko Date: Tue, 11 Oct 2016 05:48:31 +0300 Subject: [PATCH 002/242] Typo in project.json --- extensions/theme-seti/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/theme-seti/package.json b/extensions/theme-seti/package.json index 60bac73aa45..21c61890555 100644 --- a/extensions/theme-seti/package.json +++ b/extensions/theme-seti/package.json @@ -2,7 +2,7 @@ "name": "vscode-theme-seti", "private": true, "version": "0.1.0", - "description": "A file icon theme made out of the Seti UI file idons", + "description": "A file icon theme made out of the Seti UI file icons", "publisher": "vscode", "scripts": { "update": "node ./build/update-icon-theme.js" @@ -17,4 +17,4 @@ } ] } -} \ No newline at end of file +} From bdc5eefa955f3ea5bf4d979e192627ba20ba1e97 Mon Sep 17 00:00:00 2001 From: daserge Date: Thu, 13 Oct 2016 10:10:13 +0300 Subject: [PATCH 003/242] Avoiding "write EPIPE process.send" error on exit --- src/vs/workbench/node/extensionHostProcess.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/vs/workbench/node/extensionHostProcess.ts b/src/vs/workbench/node/extensionHostProcess.ts index bdfe65f36f8..1c314cb2873 100644 --- a/src/vs/workbench/node/extensionHostProcess.ts +++ b/src/vs/workbench/node/extensionHostProcess.ts @@ -16,6 +16,7 @@ interface IRendererConnection { initData: IInitData; } +var _isTerminating; // This calls exit directly in case the initialization is not finished and we need to exit // Otherwise, if initialization completed we go to extensionHostMain.terminate() let onTerminate = function () { @@ -32,6 +33,11 @@ function connectToRenderer(): TPromise { let msg = marshalling.parse(raw); const remoteCom = createIPC(data => { + // Needed to avoid EPIPE errors in process.send below when a channel is closed + if (_isTerminating === true) { + return; + } + process.send(data); stats.push(data.length); }); @@ -40,6 +46,7 @@ function connectToRenderer(): TPromise { process.on('message', (msg) => { if (msg.type === '__$terminate') { onTerminate(); + _isTerminating = true; return; } remoteCom.handle(msg); From 3a1bb2d69096b2c5bb9b7fab391bc8c93088387e Mon Sep 17 00:00:00 2001 From: Jess Chadwick Date: Sat, 15 Oct 2016 00:10:07 -0400 Subject: [PATCH 004/242] Adding tests for editor state --- .../test/common/core/editorState.test.ts | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 src/vs/editor/test/common/core/editorState.test.ts diff --git a/src/vs/editor/test/common/core/editorState.test.ts b/src/vs/editor/test/common/core/editorState.test.ts new file mode 100644 index 00000000000..22b5bf36885 --- /dev/null +++ b/src/vs/editor/test/common/core/editorState.test.ts @@ -0,0 +1,108 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +'use strict'; + +import * as assert from 'assert'; +import URI from 'vs/base/common/uri'; +import { CodeEditorStateFlag, ICommonCodeEditor, IModel } from 'vs/editor/common/editorCommon'; +import { EditorState } from 'vs/editor/common/core/editorState'; +import { Selection } from 'vs/editor/common/core/selection'; +import { Position } from 'vs/editor/common/core/position'; + +interface IStubEditorState { + model?: { uri?: URI, version?: number }; + position?: Position; + selection?: Selection; + scroll?: { left?: number, top?: number }; +} + +suite('Editor Core - Editor State', () => { + + const allFlags = Object.keys(CodeEditorStateFlag) + .map(k => CodeEditorStateFlag[k]) + .filter(v => typeof v === 'number') as number[]; + + + test('empty editor state should be valid', () => { + let result = validate( {}, {} ); + assert.equal(result, true); + }); + + test('different model URIs should be invalid', () => { + let result = validate( + { model: { uri: URI.parse('http://test1') } }, + { model: { uri: URI.parse('http://test2') } } + ); + + assert.equal(result, false); + }); + + test('different model versions should be invalid', () => { + let result = validate( + { model: { version: 1 } }, + { model: { version: 2 } } + ); + + assert.equal(result, false); + }); + + test('different positions should be invalid', () => { + let result = validate( + { position: new Position(1, 2) }, + { position: new Position(2, 3) } + ); + + assert.equal(result, false); + }); + + test('different selections should be invalid', () => { + let result = validate( + { selection: new Selection(1, 2, 3, 4) }, + { selection: new Selection(5, 2, 3, 4) } + ); + + assert.equal(result, false); + }); + + test('different scroll positions should be invalid', () => { + let result = validate( + { scroll: { left: 1, top: 2 } }, + { scroll: { left: 3, top: 2 } } + ); + + assert.equal(result, false); + }); + + + function validate(source: IStubEditorState, target: IStubEditorState) { + let sourceEditor = createEditor(source), + targetEditor = createEditor(target); + + let result = new EditorState(sourceEditor, allFlags) + .validate(targetEditor); + + return result; + } + + function createEditor({ model, position, selection, scroll }: IStubEditorState = {}): ICommonCodeEditor { + + let mappedModel = model + ? { + uri: model.uri ? model.uri : URI.parse('http://dummy.org'), + getVersionId: () => model.version + } + : null; + + return { + getModel: (): IModel => mappedModel, + getPosition: (): Position => position, + getSelection: (): Selection => selection, + getScrollLeft: (): number => scroll && scroll.left, + getScrollTop: (): number => scroll && scroll.top + }; + } + +}); + From 11b0a73c6d54a78fc6237adb5c01d397f6d8c24f Mon Sep 17 00:00:00 2001 From: Yuki Ueda Date: Tue, 18 Oct 2016 16:16:52 +0900 Subject: [PATCH 005/242] fix ini #13648 #8709 --- .../ini/ini.language-configuration.json | 25 ++++ extensions/ini/package.json | 21 ++- ... => propaties.language-configuration.json} | 0 extensions/ini/syntaxes/Ini.tmLanguage | 127 ++++++++++++++++++ .../syntaxes/{Ini.plist => propaties.plist} | 2 +- 5 files changed, 169 insertions(+), 6 deletions(-) create mode 100644 extensions/ini/ini.language-configuration.json rename extensions/ini/{language-configuration.json => propaties.language-configuration.json} (100%) create mode 100644 extensions/ini/syntaxes/Ini.tmLanguage rename extensions/ini/syntaxes/{Ini.plist => propaties.plist} (99%) diff --git a/extensions/ini/ini.language-configuration.json b/extensions/ini/ini.language-configuration.json new file mode 100644 index 00000000000..93cfa1ce3b9 --- /dev/null +++ b/extensions/ini/ini.language-configuration.json @@ -0,0 +1,25 @@ +{ + "comments": { + "lineComment": ";", + "blockComment": [ ";", " " ] + }, + "brackets": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ], + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ] +} \ No newline at end of file diff --git a/extensions/ini/package.json b/extensions/ini/package.json index 374e73d7162..13ddd0ab192 100644 --- a/extensions/ini/package.json +++ b/extensions/ini/package.json @@ -6,15 +6,26 @@ "contributes": { "languages": [{ "id": "ini", - "extensions": [ ".ini", ".properties", ".gitconfig" ], - "filenames": ["config", ".gitattributes", ".gitconfig", "gitconfig", ".editorconfig"], + "extensions": [ ".ini"], "aliases": [ "Ini", "ini" ], - "configuration": "./language-configuration.json" - }], + "configuration": "./ini.language-configuration.json" + }, + { + "id": "propaties", + "extensions": [ ".properties", ".gitconfig" ], + "filenames": ["config", ".gitattributes", ".gitconfig", "gitconfig", ".editorconfig"], + "aliases": [ "propaties", "Propaties" ], + "configuration": "./propaties.language-configuration.json" + } + ], "grammars": [{ "language": "ini", "scopeName": "source.ini", - "path": "./syntaxes/Ini.plist" + "path": "./syntaxes/Ini.tmLanuage" + },{ + "language": "propaties", + "scopeName": "source.propaties", + "path": "./syntaxes/propaties.plist" }] } } diff --git a/extensions/ini/language-configuration.json b/extensions/ini/propaties.language-configuration.json similarity index 100% rename from extensions/ini/language-configuration.json rename to extensions/ini/propaties.language-configuration.json diff --git a/extensions/ini/syntaxes/Ini.tmLanguage b/extensions/ini/syntaxes/Ini.tmLanguage new file mode 100644 index 00000000000..b43ff239149 --- /dev/null +++ b/extensions/ini/syntaxes/Ini.tmLanguage @@ -0,0 +1,127 @@ + + + + + fileTypes + + ini + INI + inf + INF + reg + REG + lng + cfg + CFG + url + URL + .editorconfig + + name + INI + patterns + + + captures + + 1 + + name + punctuation.definition.comment.ini + + + match + ^\s*(;|#).*$\n? + name + comment.line.semicolon.ini + + + captures + + 1 + + name + punctuation.definition.section.ini + + 2 + + name + entity.section.ini + + 3 + + name + punctuation.definition.section.ini + + + match + ^\s*(\[)(.*?)(\]) + name + meta.tag.section.ini + + + captures + + 1 + + name + meta.property.ini + + 2 + + name + punctuation.definition.quote.ini + + 3 + + name + keyword.name.ini + + 4 + + name + punctuation.definition.quote.ini + + 5 + + name + punctuation.definition.equals.ini + + 6 + + name + meta.value.ini + + 7 + + name + punctuation.definition.quote.ini + + 8 + + name + string.name.value.ini + + 9 + + name + punctuation.definition.quote.ini + + 10 + + name + comment.declarationline.semicolon.ini + + + match + ^(\s*(["']?)(.+?)(\2)\s*(=))?\s*((["']?)(.*?)(\7))\s*(;.*)?$\n? + name + meta.declaration.ini + + + scopeName + source.ini + uuid + 957acd74-6d7c-4732-a25b-5f66a1e637cd + + diff --git a/extensions/ini/syntaxes/Ini.plist b/extensions/ini/syntaxes/propaties.plist similarity index 99% rename from extensions/ini/syntaxes/Ini.plist rename to extensions/ini/syntaxes/propaties.plist index 86606eea259..a3c94ef543b 100644 --- a/extensions/ini/syntaxes/Ini.plist +++ b/extensions/ini/syntaxes/propaties.plist @@ -174,7 +174,7 @@ scopeName - source.ini + source.propaties uuid 77DC23B6-8A90-11D9-BAA4-000A9584EC8C From 87af697987f9cc8dfd7f0e80d5f2953c59b17a28 Mon Sep 17 00:00:00 2001 From: Yuki Ueda Date: Wed, 19 Oct 2016 10:40:23 +0900 Subject: [PATCH 006/242] type propaties to properties --- extensions/ini/package.json | 12 ++++++------ ...n.json => properties.language-configuration.json} | 0 .../syntaxes/{propaties.plist => properties.plist} | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) rename extensions/ini/{propaties.language-configuration.json => properties.language-configuration.json} (100%) rename extensions/ini/syntaxes/{propaties.plist => properties.plist} (99%) diff --git a/extensions/ini/package.json b/extensions/ini/package.json index 13ddd0ab192..7c20952302a 100644 --- a/extensions/ini/package.json +++ b/extensions/ini/package.json @@ -11,11 +11,11 @@ "configuration": "./ini.language-configuration.json" }, { - "id": "propaties", + "id": "properties", "extensions": [ ".properties", ".gitconfig" ], "filenames": ["config", ".gitattributes", ".gitconfig", "gitconfig", ".editorconfig"], - "aliases": [ "propaties", "Propaties" ], - "configuration": "./propaties.language-configuration.json" + "aliases": [ "properties", "properties" ], + "configuration": "./properties.language-configuration.json" } ], "grammars": [{ @@ -23,9 +23,9 @@ "scopeName": "source.ini", "path": "./syntaxes/Ini.tmLanuage" },{ - "language": "propaties", - "scopeName": "source.propaties", - "path": "./syntaxes/propaties.plist" + "language": "properties", + "scopeName": "source.properties", + "path": "./syntaxes/properties.plist" }] } } diff --git a/extensions/ini/propaties.language-configuration.json b/extensions/ini/properties.language-configuration.json similarity index 100% rename from extensions/ini/propaties.language-configuration.json rename to extensions/ini/properties.language-configuration.json diff --git a/extensions/ini/syntaxes/propaties.plist b/extensions/ini/syntaxes/properties.plist similarity index 99% rename from extensions/ini/syntaxes/propaties.plist rename to extensions/ini/syntaxes/properties.plist index a3c94ef543b..11436566bd5 100644 --- a/extensions/ini/syntaxes/propaties.plist +++ b/extensions/ini/syntaxes/properties.plist @@ -174,7 +174,7 @@ scopeName - source.propaties + source.properties uuid 77DC23B6-8A90-11D9-BAA4-000A9584EC8C From d33757a0e25f89f22dccaa233a4c1e28875122d7 Mon Sep 17 00:00:00 2001 From: Renfred Harper Date: Wed, 19 Oct 2016 13:42:06 -0700 Subject: [PATCH 007/242] enable line highlighting for read only editors --- .../viewParts/currentLineHighlight/currentLineHighlight.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts b/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts index 54937e8baea..2f1926abed2 100644 --- a/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts +++ b/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.ts @@ -134,6 +134,6 @@ export class CurrentLineHighlightOverlay extends DynamicViewOverlay { } private _shouldShowCurrentLine(): boolean { - return this._renderLineHighlight && this._selectionIsEmpty && this._primaryCursorIsInEditableRange && !this._readOnly; + return this._renderLineHighlight && this._selectionIsEmpty && this._primaryCursorIsInEditableRange; } } From 954b93afe10bbfdb096f9d50ca8d59c335c2cd02 Mon Sep 17 00:00:00 2001 From: Kai Wood Date: Thu, 13 Oct 2016 15:10:33 +0200 Subject: [PATCH 008/242] Add setting to prevent copying empty selections --- src/vs/editor/common/config/commonEditorConfig.ts | 6 ++++++ src/vs/editor/common/config/defaultConfig.ts | 1 + src/vs/editor/common/editorCommon.ts | 8 ++++++++ src/vs/editor/contrib/clipboard/browser/clipboard.ts | 8 ++++++-- src/vs/monaco.d.ts | 5 +++++ 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index a9040b359bd..d25e520f940 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -310,6 +310,7 @@ class InternalEditorOptionsHelper { suggestOnTriggerCharacters: toBoolean(opts.suggestOnTriggerCharacters), acceptSuggestionOnEnter: toBoolean(opts.acceptSuggestionOnEnter), snippetSuggestions: opts.snippetSuggestions, + emptySelectionClipboard: opts.emptySelectionClipboard, tabCompletion: opts.tabCompletion, wordBasedSuggestions: opts.wordBasedSuggestions, suggestFontSize: opts.suggestFontSize, @@ -762,6 +763,11 @@ let editorConfiguration: IConfigurationNode = { 'default': DefaultConfig.editor.snippetSuggestions, 'description': nls.localize('snippetSuggestions', "Controls whether snippets are shown with other suggestions and how they are sorted.") }, + 'editor.emptySelectionClipboard': { + 'type': 'boolean', + 'default': DefaultConfig.editor.emptySelectionClipboard, + 'description': nls.localize('emptySelectionClipboard', "Controls whether copying without a selection copies the current line.") + }, 'editor.wordBasedSuggestions': { 'type': 'boolean', 'default': DefaultConfig.editor.wordBasedSuggestions, diff --git a/src/vs/editor/common/config/defaultConfig.ts b/src/vs/editor/common/config/defaultConfig.ts index f2d1306259c..9225405950f 100644 --- a/src/vs/editor/common/config/defaultConfig.ts +++ b/src/vs/editor/common/config/defaultConfig.ts @@ -85,6 +85,7 @@ class ConfigClass implements IConfiguration { suggestOnTriggerCharacters: true, acceptSuggestionOnEnter: true, snippetSuggestions: 'bottom', + emptySelectionClipboard: true, tabCompletion: false, wordBasedSuggestions: true, suggestFontSize: 0, diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index 3b75519152f..00f81e68f82 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -402,6 +402,10 @@ export interface IEditorOptions { * Enable snippet suggestions. Default to 'true'. */ snippetSuggestions?: 'top' | 'bottom' | 'inline' | 'none'; + /** + * Copying without a selection copies the current line. + */ + emptySelectionClipboard?: boolean; /** * Enable tab completion. Defaults to 'false' */ @@ -862,6 +866,7 @@ export class EditorContribOptions { readonly suggestOnTriggerCharacters: boolean; readonly acceptSuggestionOnEnter: boolean; readonly snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none'; + readonly emptySelectionClipboard: boolean; readonly tabCompletion: boolean; readonly wordBasedSuggestions: boolean; readonly suggestFontSize: number; @@ -885,6 +890,7 @@ export class EditorContribOptions { suggestOnTriggerCharacters: boolean; acceptSuggestionOnEnter: boolean; snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none'; + emptySelectionClipboard: boolean; tabCompletion: boolean; wordBasedSuggestions: boolean; suggestFontSize: number; @@ -904,6 +910,7 @@ export class EditorContribOptions { this.suggestOnTriggerCharacters = Boolean(source.suggestOnTriggerCharacters); this.acceptSuggestionOnEnter = Boolean(source.acceptSuggestionOnEnter); this.snippetSuggestions = source.snippetSuggestions; + this.emptySelectionClipboard = source.emptySelectionClipboard; this.tabCompletion = source.tabCompletion; this.wordBasedSuggestions = source.wordBasedSuggestions; this.suggestFontSize = source.suggestFontSize; @@ -929,6 +936,7 @@ export class EditorContribOptions { && this.suggestOnTriggerCharacters === other.suggestOnTriggerCharacters && this.acceptSuggestionOnEnter === other.acceptSuggestionOnEnter && this.snippetSuggestions === other.snippetSuggestions + && this.emptySelectionClipboard === other.emptySelectionClipboard && this.tabCompletion === other.tabCompletion && this.wordBasedSuggestions === other.wordBasedSuggestions && this.suggestFontSize === other.suggestFontSize diff --git a/src/vs/editor/contrib/clipboard/browser/clipboard.ts b/src/vs/editor/contrib/clipboard/browser/clipboard.ts index 34bbd1abd10..1714c171e3c 100644 --- a/src/vs/editor/contrib/clipboard/browser/clipboard.ts +++ b/src/vs/editor/contrib/clipboard/browser/clipboard.ts @@ -73,7 +73,9 @@ class ExecCommandCutAction extends ExecCommandAction { } public run(accessor: ServicesAccessor, editor: editorCommon.ICommonCodeEditor): void { - if (!browser.enableEmptySelectionClipboard && editor.getSelection().isEmpty()) { + var enableEmptySelectionClipboard = editor.getConfiguration().contribInfo.emptySelectionClipboard && browser.enableEmptySelectionClipboard; + + if (!enableEmptySelectionClipboard && editor.getSelection().isEmpty()) { return; } @@ -103,7 +105,9 @@ class ExecCommandCopyAction extends ExecCommandAction { } public run(accessor: ServicesAccessor, editor: editorCommon.ICommonCodeEditor): void { - if (!browser.enableEmptySelectionClipboard && editor.getSelection().isEmpty()) { + var enableEmptySelectionClipboard = editor.getConfiguration().contribInfo.emptySelectionClipboard && browser.enableEmptySelectionClipboard; + + if (!enableEmptySelectionClipboard && editor.getSelection().isEmpty()) { return; } diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 2f7793222e6..740547ab351 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -1262,6 +1262,10 @@ declare module monaco.editor { * Enable snippet suggestions. Default to 'true'. */ snippetSuggestions?: 'top' | 'bottom' | 'inline' | 'none'; + /** + * Copying without a selection copies the current line. + */ + emptySelectionClipboard?: boolean; /** * Enable tab completion. Defaults to 'false' */ @@ -1458,6 +1462,7 @@ declare module monaco.editor { readonly suggestOnTriggerCharacters: boolean; readonly acceptSuggestionOnEnter: boolean; readonly snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none'; + readonly emptySelectionClipboard: boolean; readonly tabCompletion: boolean; readonly wordBasedSuggestions: boolean; readonly suggestFontSize: number; From 1364ee9c34e8696696bdd42b484bba685a09412d Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Mon, 24 Oct 2016 19:43:57 +0200 Subject: [PATCH 009/242] Edit the truth, not the generated file (27c2cf41923ad8b7a71a13c221c7c27490c00fea) --- src/vs/editor/common/editorCommon.ts | 6 +++--- src/vs/monaco.d.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index 302cc6a1ca4..3a91f61326c 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -220,7 +220,7 @@ export interface IEditorOptions { lineNumbersMinChars?: number; /** * Enable the rendering of the glyph margin. - * Defaults to true. + * Defaults to true in vscode and to false in monaco-editor. */ glyphMargin?: boolean; /** @@ -318,7 +318,7 @@ export interface IEditorOptions { wordWrap?: boolean; /** * Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'. - * Defaults to 'none'. + * Defaults to 'same' in vscode and to 'none' in monaco-editor. */ wrappingIndent?: string; /** @@ -436,7 +436,7 @@ export interface IEditorOptions { referenceInfos?: boolean; /** * Enable code folding - * Defaults to true. + * Defaults to true in vscode and to false in monaco-editor. */ folding?: boolean; /** diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index dd165cd15a0..d7dc773a7ac 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -1082,7 +1082,7 @@ declare module monaco.editor { lineNumbersMinChars?: number; /** * Enable the rendering of the glyph margin. - * Defaults to true. + * Defaults to true in vscode and to false in monaco-editor. */ glyphMargin?: boolean; /** @@ -1180,7 +1180,7 @@ declare module monaco.editor { wordWrap?: boolean; /** * Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'. - * Defaults to 'none'. + * Defaults to 'same' in vscode and to 'none' in monaco-editor. */ wrappingIndent?: string; /** @@ -1292,7 +1292,7 @@ declare module monaco.editor { codeLens?: boolean; /** * Enable code folding - * Defaults to true. + * Defaults to true in vscode and to false in monaco-editor. */ folding?: boolean; /** From 9e7eaaa35f088f17e2dd2a13dfcc30d0eb655ed7 Mon Sep 17 00:00:00 2001 From: roblou Date: Mon, 24 Oct 2016 11:06:08 -0700 Subject: [PATCH 010/242] Rename expression -> Edit expression, fix #14127 --- src/vs/workbench/parts/debug/browser/debugActions.ts | 8 ++++---- .../workbench/parts/debug/electron-browser/debugViewer.ts | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/parts/debug/browser/debugActions.ts b/src/vs/workbench/parts/debug/browser/debugActions.ts index 9d62052846c..97a39e40289 100644 --- a/src/vs/workbench/parts/debug/browser/debugActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugActions.ts @@ -773,12 +773,12 @@ export class AddToWatchExpressionsAction extends AbstractDebugAction { } } -export class RenameWatchExpressionAction extends AbstractDebugAction { - static ID = 'workbench.debug.viewlet.action.renameWatchExpression'; - static LABEL = nls.localize('renameWatchExpression', "Rename Expression"); +export class EditWatchExpressionAction extends AbstractDebugAction { + static ID = 'workbench.debug.viewlet.action.editWatchExpression'; + static LABEL = nls.localize('editWatchExpression', "Edit Expression"); constructor(id: string, label: string, private expression: model.Expression, @IDebugService debugService: IDebugService, @IKeybindingService keybindingService: IKeybindingService) { - super(id, label, 'debug-action rename', debugService, keybindingService); + super(id, label, 'debug-action editWatchExpression', debugService, keybindingService); } public run(): TPromise { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts index bbc20a775ba..69fc9bea6be 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts @@ -783,7 +783,7 @@ export class WatchExpressionsActionProvider implements renderer.IActionProvider if (element instanceof model.Expression) { const expression = element; actions.push(this.instantiationService.createInstance(debugactions.AddWatchExpressionAction, debugactions.AddWatchExpressionAction.ID, debugactions.AddWatchExpressionAction.LABEL)); - actions.push(this.instantiationService.createInstance(debugactions.RenameWatchExpressionAction, debugactions.RenameWatchExpressionAction.ID, debugactions.RenameWatchExpressionAction.LABEL, expression)); + actions.push(this.instantiationService.createInstance(debugactions.EditWatchExpressionAction, debugactions.EditWatchExpressionAction.ID, debugactions.EditWatchExpressionAction.LABEL, expression)); if (expression.reference === 0) { actions.push(this.instantiationService.createInstance(CopyValueAction, CopyValueAction.ID, CopyValueAction.LABEL, expression.value)); } From bbba181a0ccecd4ce8832dcc206f739844481c1d Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 24 Oct 2016 11:46:22 -0700 Subject: [PATCH 011/242] Uplevel pty.js Fixes #12260 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index e19f57e608b..01540a55ff9 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -334,8 +334,8 @@ }, "pty.js": { "version": "0.3.0", - "from": "https://github.com/Tyriar/pty.js/tarball/e42781661143541fa08309adc9b0091e7b8674d3", - "resolved": "https://github.com/Tyriar/pty.js/tarball/e42781661143541fa08309adc9b0091e7b8674d3", + "from": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", + "resolved": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", "dependencies": { "extend": { "version": "1.2.1", diff --git a/package.json b/package.json index 5ae70a24dfe..869478f8233 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "iconv-lite": "0.4.13", "minimist": "1.2.0", "native-keymap": "0.3.0", - "pty.js": "https://github.com/Tyriar/pty.js/tarball/e42781661143541fa08309adc9b0091e7b8674d3", + "pty.js": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", "semver": "4.3.6", "vscode-debugprotocol": "1.13.0", "vscode-textmate": "2.2.0", From 7bdc667cd47bebe6d9f382b9b26d46aeda9df693 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 24 Oct 2016 23:19:07 +0200 Subject: [PATCH 012/242] Change HTML grammar to be more precise (embedded modes). fixes #14295 --- extensions/html/syntaxes/html.json | 8 +-- .../test/colorize-results/12750_html.json | 28 ++++----- .../html/test/colorize-results/test_html.json | 60 +++++++++---------- .../test/colorize-results/test_md.json | 12 ++-- 4 files changed, 54 insertions(+), 54 deletions(-) diff --git a/extensions/html/syntaxes/html.json b/extensions/html/syntaxes/html.json index 51675318976..04a0769e752 100644 --- a/extensions/html/syntaxes/html.json +++ b/extensions/html/syntaxes/html.json @@ -152,7 +152,7 @@ } }, "end": "()(?:\\s*\\n)?", - "name": "source.css.embedded.html", + "contentName": "source.css.embedded.html", "patterns": [ { "include": "#tag-stuff" @@ -192,7 +192,7 @@ "name": "punctuation.definition.tag.html" } }, - "name": "source.js.embedded.html", + "contentName": "source.js.embedded.html", "patterns": [ { "include": "#tag-stuff" @@ -364,7 +364,7 @@ "python": { "begin": "(?:^\\s*)<\\?python(?!.*\\?>)", "end": "\\?>(?:\\s*$\\n)?", - "name": "source.python.embedded.html", + "contentName": "source.python.embedded.html", "patterns": [ { "include": "source.python" @@ -389,7 +389,7 @@ "begin": "{{|{", "disabled": 1, "end": "}}|}", - "name": "source.smarty.embedded.html", + "contentName": "source.smarty.embedded.html", "patterns": [ { "include": "source.smarty" diff --git a/extensions/html/test/colorize-results/12750_html.json b/extensions/html/test/colorize-results/12750_html.json index eb34f4be5c0..7a6e7685770 100644 --- a/extensions/html/test/colorize-results/12750_html.json +++ b/extensions/html/test/colorize-results/12750_html.json @@ -1,18 +1,18 @@ [ { "c": "<", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "script", - "t": "embedded.entity.html.js.name.script.source.tag", + "t": "entity.html.name.script.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)", @@ -232,29 +232,29 @@ }, { "c": ">", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "<", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "script", - "t": "embedded.entity.html.js.name.script.source.tag", + "t": "entity.html.name.script.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)", @@ -408,11 +408,11 @@ }, { "c": ">", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } diff --git a/extensions/html/test/colorize-results/test_html.json b/extensions/html/test/colorize-results/test_html.json index b783ff3377a..35649ba574f 100644 --- a/extensions/html/test/colorize-results/test_html.json +++ b/extensions/html/test/colorize-results/test_html.json @@ -441,7 +441,7 @@ }, { "c": "\t", - "t": "css.embedded.html.source", + "t": "", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -452,7 +452,7 @@ }, { "c": "<", - "t": "css.definition.embedded.html.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -463,7 +463,7 @@ }, { "c": "style", - "t": "css.embedded.entity.html.name.source.style.tag", + "t": "entity.html.name.style.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)", @@ -771,7 +771,7 @@ }, { "c": "", - "t": "css.definition.embedded.html.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1079,7 +1079,7 @@ }, { "c": "\t", - "t": "embedded.html.js.source", + "t": "", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1090,18 +1090,18 @@ }, { "c": "<", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "script", - "t": "embedded.entity.html.js.name.script.source.tag", + "t": "entity.html.name.script.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)", @@ -1200,18 +1200,18 @@ }, { "c": ">", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\t", - "t": "embedded.html.js.source", + "t": "", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1222,18 +1222,18 @@ }, { "c": "<", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "script", - "t": "embedded.entity.html.js.name.script.source.tag", + "t": "entity.html.name.script.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)", @@ -1332,18 +1332,18 @@ }, { "c": ">", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\t", - "t": "embedded.html.js.source", + "t": "", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1354,18 +1354,18 @@ }, { "c": "<", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "script", - "t": "embedded.entity.html.js.name.script.source.tag", + "t": "entity.html.name.script.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)", @@ -2179,11 +2179,11 @@ }, { "c": ">", - "t": "definition.embedded.html.js.punctuation.source.tag", + "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", "light_vs": ".vs .token rgb(0, 0, 0)", "hc_black": ".hc-black .token rgb(255, 255, 255)" } diff --git a/extensions/markdown/test/colorize-results/test_md.json b/extensions/markdown/test/colorize-results/test_md.json index b9292e60bf3..6f3a2ead6d6 100644 --- a/extensions/markdown/test/colorize-results/test_md.json +++ b/extensions/markdown/test/colorize-results/test_md.json @@ -1024,7 +1024,7 @@ }, { "c": " ", - "t": "css.embedded.html.markdown.meta.paragraph.source", + "t": "markdown.meta.paragraph", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1035,7 +1035,7 @@ }, { "c": "<", - "t": "css.definition.embedded.html.markdown.meta.paragraph.punctuation.source.tag", + "t": "definition.html.markdown.meta.paragraph.punctuation.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", @@ -1046,7 +1046,7 @@ }, { "c": "style", - "t": "css.embedded.entity.html.markdown.meta.name.paragraph.source.style.tag", + "t": "entity.html.markdown.meta.name.paragraph.style.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)", @@ -1222,7 +1222,7 @@ }, { "c": "", - "t": "css.definition.embedded.html.markdown.meta.paragraph.punctuation.source.tag", + "t": "definition.html.markdown.meta.paragraph.punctuation.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", From c6bdcb69d34cef89d810e4f777b324b1ef50ff23 Mon Sep 17 00:00:00 2001 From: Andre Weinand Date: Mon, 24 Oct 2016 23:35:07 +0200 Subject: [PATCH 013/242] update node-debug --- build/gulpfile.vscode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index a54b3b1f226..f26fd98163c 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -39,7 +39,7 @@ const nodeModules = ['electron', 'original-fs'] // Build const builtInExtensions = [ - { name: 'ms-vscode.node-debug', version: '1.7.5' }, + { name: 'ms-vscode.node-debug', version: '1.7.6' }, { name: 'ms-vscode.node-debug2', version: '0.1.1' } ]; From 3713d04ca63afc12a8f659c0fb1e672375bb9bce Mon Sep 17 00:00:00 2001 From: "bgashler1@users.noreply.github.com" Date: Mon, 24 Oct 2016 14:57:25 -0700 Subject: [PATCH 014/242] Fix logo that didn't recenter on small window size Regression from commit b59428701fb7e6d1c091c464b15fd9e5d9f24bfc --- src/vs/workbench/parts/watermark/browser/watermark.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/watermark/browser/watermark.css b/src/vs/workbench/parts/watermark/browser/watermark.css index 2f8f5ba1c65..7bdb8a71d31 100644 --- a/src/vs/workbench/parts/watermark/browser/watermark.css +++ b/src/vs/workbench/parts/watermark/browser/watermark.css @@ -52,7 +52,7 @@ .monaco-workbench > .part.editor.empty > .watermark { opacity: 0; } - .monaco-workbench .part.editor.empty { + .monaco-workbench .part.editor.empty.has-watermark { background-position-y: 50%; } } From e0f3e5134d7fceb216462fed1f1b142b71ed7f6d Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Mon, 24 Oct 2016 15:01:20 -0700 Subject: [PATCH 015/242] Uplevel xterm.js Fixes #11334 --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 01540a55ff9..6ce41f89798 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -334,8 +334,8 @@ }, "pty.js": { "version": "0.3.0", - "from": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", - "resolved": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", + "from": "https://github.com/Tyriar/pty.js/tarball/901d42fe43c37f38bf0375fb1e99279a16eb2738", + "resolved": "https://github.com/Tyriar/pty.js/tarball/901d42fe43c37f38bf0375fb1e99279a16eb2738", "dependencies": { "extend": { "version": "1.2.1", diff --git a/package.json b/package.json index 869478f8233..b15c1567003 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "iconv-lite": "0.4.13", "minimist": "1.2.0", "native-keymap": "0.3.0", - "pty.js": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", + "pty.js": "https://github.com/Tyriar/pty.js/tarball/901d42fe43c37f38bf0375fb1e99279a16eb2738", "semver": "4.3.6", "vscode-debugprotocol": "1.13.0", "vscode-textmate": "2.2.0", From cb732f8782fdce69f6df628fc4705aad0524120c Mon Sep 17 00:00:00 2001 From: "bgashler1@users.noreply.github.com" Date: Mon, 24 Oct 2016 15:43:27 -0700 Subject: [PATCH 016/242] Removes all animations from watermark and logo. Fixes #13529 --- .../parts/watermark/browser/watermark.css | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/vs/workbench/parts/watermark/browser/watermark.css b/src/vs/workbench/parts/watermark/browser/watermark.css index 7bdb8a71d31..2a3f68d291c 100644 --- a/src/vs/workbench/parts/watermark/browser/watermark.css +++ b/src/vs/workbench/parts/watermark/browser/watermark.css @@ -5,7 +5,6 @@ .monaco-workbench .part.editor.empty.has-watermark { background-position-y: calc(50% - 100px); - transition: background-position-y 1s; } .monaco-workbench > .part.editor > .watermark { @@ -28,29 +27,15 @@ border-spacing: 13px 17px; } -@keyframes watermarkfadein { - 0% { - opacity: 0; - } - 33% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - @media (min-height: 501px) { .monaco-workbench > .part.editor.empty > .watermark { - animation: watermarkfadein 2s; - opacity: 1; - transition: opacity 1s; + display: block; } } @media (max-height: 500px) { .monaco-workbench > .part.editor.empty > .watermark { - opacity: 0; + display: none; } .monaco-workbench .part.editor.empty.has-watermark { background-position-y: 50%; From f94ebcf2d00c95c976e761ba43ed73bd1d77023d Mon Sep 17 00:00:00 2001 From: kieferrm Date: Mon, 24 Oct 2016 17:10:08 -0700 Subject: [PATCH 017/242] enable automatic typings acquisition by default --- extensions/typescript/package.json | 2 +- extensions/typescript/src/typescriptServiceClient.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/typescript/package.json b/extensions/typescript/package.json index baf7c87a425..9c57acf978c 100644 --- a/extensions/typescript/package.json +++ b/extensions/typescript/package.json @@ -83,7 +83,7 @@ }, "typescript.experimentalAutomaticTypeAcquisition": { "type": "boolean", - "default": false, + "default": true, "description": "%typescript.experimentalAutomaticTypeAcquisition%" }, "typescript.check.workspaceVersion": { diff --git a/extensions/typescript/src/typescriptServiceClient.ts b/extensions/typescript/src/typescriptServiceClient.ts index 425bd95a837..0074c5bca37 100644 --- a/extensions/typescript/src/typescriptServiceClient.ts +++ b/extensions/typescript/src/typescriptServiceClient.ts @@ -456,7 +456,7 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient let args: string[] = []; if (this.apiVersion.has206Features()) { args.push('--useSingleInferredProject'); - if (!workspace.getConfiguration().get('typescript.experimentalAutomaticTypeAcquisition', false)) { + if (!workspace.getConfiguration().get('typescript.experimentalAutomaticTypeAcquisition', true)) { args.push('--disableAutomaticTypingAcquisition'); } } From adead789cb3164fa5a9dcf861514ef5d32d5563e Mon Sep 17 00:00:00 2001 From: roblou Date: Mon, 24 Oct 2016 17:46:30 -0700 Subject: [PATCH 018/242] Update node-debug2 --- build/gulpfile.vscode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index f26fd98163c..40a551bbb48 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -40,7 +40,7 @@ const nodeModules = ['electron', 'original-fs'] const builtInExtensions = [ { name: 'ms-vscode.node-debug', version: '1.7.6' }, - { name: 'ms-vscode.node-debug2', version: '0.1.1' } + { name: 'ms-vscode.node-debug2', version: '1.7.0' } ]; const vscodeEntryPoints = _.flatten([ From 54f9b3c5b0129020bd2046eba682f4a74b8ba693 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 06:28:03 +0200 Subject: [PATCH 019/242] Revert "Uplevel xterm.js" This reverts commit e0f3e5134d7fceb216462fed1f1b142b71ed7f6d. --- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 6ce41f89798..01540a55ff9 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -334,8 +334,8 @@ }, "pty.js": { "version": "0.3.0", - "from": "https://github.com/Tyriar/pty.js/tarball/901d42fe43c37f38bf0375fb1e99279a16eb2738", - "resolved": "https://github.com/Tyriar/pty.js/tarball/901d42fe43c37f38bf0375fb1e99279a16eb2738", + "from": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", + "resolved": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", "dependencies": { "extend": { "version": "1.2.1", diff --git a/package.json b/package.json index b15c1567003..869478f8233 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "iconv-lite": "0.4.13", "minimist": "1.2.0", "native-keymap": "0.3.0", - "pty.js": "https://github.com/Tyriar/pty.js/tarball/901d42fe43c37f38bf0375fb1e99279a16eb2738", + "pty.js": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", "semver": "4.3.6", "vscode-debugprotocol": "1.13.0", "vscode-textmate": "2.2.0", From 509b076e057301f868ea55c257302a94c405f6c3 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 06:36:07 +0200 Subject: [PATCH 020/242] less flashing background on closing editors --- src/vs/workbench/browser/parts/editor/media/sidebyside.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/media/sidebyside.css b/src/vs/workbench/browser/parts/editor/media/sidebyside.css index 8a27f727275..8ceec15877d 100644 --- a/src/vs/workbench/browser/parts/editor/media/sidebyside.css +++ b/src/vs/workbench/browser/parts/editor/media/sidebyside.css @@ -3,11 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -.vs .monaco-workbench > .editor:not(.empty) > .content { +.vs .monaco-workbench > .editor > .content.drag { background-color: #ECECEC; } -.vs-dark .monaco-workbench > .editor:not(.empty) > .content { +.vs-dark .monaco-workbench > .editor > .content.drag { background-color: #2D2D2D; } From 5bafcdb3d67b29b1f4667a3f497ac05a41dde667 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 07:38:19 +0200 Subject: [PATCH 021/242] update distro --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 869478f8233..92f491f6e18 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "code-oss-dev", "version": "1.7.0", "electronVersion": "1.3.8", - "distro": "d919533e6cd6a495abe667cb3d47bc6ac2a4846b", + "distro": "13c73e321237db10a15f0c09e17738aa32aec45f", "author": { "name": "Microsoft Corporation" }, From 91eb8b4b7c0da37ff9b3ba05ce4042e0b1e9cab0 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 25 Oct 2016 08:56:10 +0200 Subject: [PATCH 022/242] language --- .../browser/parts/editor/editorStatus.ts | 2 +- .../electron-browser/extensionsActions.ts | 25 +------------------ 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index 1d30cc96134..d355bfc414b 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -682,7 +682,7 @@ export class ShowLanguageExtensionsAction extends Action { @IViewletService private viewletService: IViewletService, @IExtensionGalleryService galleryService: IExtensionGalleryService ) { - super(ShowLanguageExtensionsAction.ID, nls.localize('showLanguageExtensions', "Search Gallery Extensions for '{0}'...", extension), null, true); + super(ShowLanguageExtensionsAction.ID, nls.localize('showLanguageExtensions', "Search Marketplace Extensions for '{0}'...", extension), null, true); this.enabled = galleryService.isEnabled(); } diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 91f0b3224ee..29ad2cfa81b 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -16,7 +16,7 @@ import { IContextMenuService } from 'vs/platform/contextview/browser/contextView import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { ReloadWindowAction } from 'vs/workbench/electron-browser/actions'; import { IExtension, ExtensionState, IExtensionsWorkbenchService, VIEWLET_ID, IExtensionsViewlet, ConfigurationKey } from '../common/extensions'; -import { LocalExtensionType, IExtensionGalleryService } from 'vs/platform/extensionManagement/common/extensionManagement'; +import { LocalExtensionType } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IMessageService } from 'vs/platform/message/common/message'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; @@ -685,29 +685,6 @@ export class ShowDisabledExtensionsAction extends Action { } } -export class ShowLanguageExtensionsAction extends Action { - - static ID = 'workbench.extensions.action.showLanguageExtensions'; - - constructor( - private extension: string, - @IViewletService private viewletService: IViewletService, - @IExtensionGalleryService galleryService: IExtensionGalleryService - ) { - super(ShowLanguageExtensionsAction.ID, localize('showLanguageExtensions', "Search Gallery Extensions for '{0}'...", extension), null, true); - this.enabled = galleryService.isEnabled(); - } - - run(): TPromise { - return this.viewletService.openViewlet(VIEWLET_ID, true) - .then(viewlet => viewlet as IExtensionsViewlet) - .then(viewlet => { - viewlet.search(`tag:__ext_${this.extension.replace(/^\./, '')}`); - viewlet.focus(); - }); - } -} - export class ClearExtensionsInputAction extends ShowInstalledExtensionsAction { static ID = 'workbench.extensions.action.clearExtensionsInput'; From 39f6fded66f6401b5cbda928e14bdcdd25c5c7b9 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 25 Oct 2016 10:58:50 +0200 Subject: [PATCH 023/242] fixedOverflowWidgets setting related to #13241 --- .../viewParts/contentWidgets/contentWidgets.ts | 18 ++++++++++-------- .../editor/browser/widget/diffEditorWidget.ts | 1 + .../editor/common/config/commonEditorConfig.ts | 1 + src/vs/editor/common/config/defaultConfig.ts | 1 + src/vs/editor/common/editorCommon.ts | 11 +++++++++++ .../browser/referencesWidget.ts | 3 ++- src/vs/monaco.d.ts | 7 +++++++ .../browser/parts/editor/textEditor.ts | 3 ++- .../parts/debug/electron-browser/repl.ts | 3 ++- 9 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts b/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts index 79c2c7fe106..55c0db61e71 100644 --- a/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts +++ b/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.ts @@ -154,7 +154,7 @@ export class ViewContentWidgets extends ViewPart { this._widgets[widget.getId()] = widgetData; let domNode = widget.getDomNode(); - domNode.style.position = 'fixed'; + domNode.style.position = this._context.configuration.editor.viewInfo.fixedOverflowWidgets ? 'fixed' : 'absolute'; StyleMutator.setMaxWidth(domNode, this._contentWidth); StyleMutator.setVisibility(domNode, 'hidden'); domNode.setAttribute('widgetId', widget.getId()); @@ -280,19 +280,21 @@ export class ViewContentWidgets extends ViewPart { if (absoluteLeft + width + 20 > INNER_WIDTH) { let delta = absoluteLeft - (INNER_WIDTH - width - 20); absoluteLeft -= delta; + left -= delta; } if (absoluteLeft < 0) { let delta = absoluteLeft; absoluteLeft -= delta; + left -= delta; } - return { - aboveTop: absoluteAboveTop, - fitsAbove: fitsAbove, - belowTop: absoluteBelowTop, - fitsBelow: fitsBelow, - left: absoluteLeft - }; + if (this._context.configuration.editor.viewInfo.fixedOverflowWidgets) { + aboveTop = absoluteAboveTop; + belowTop = absoluteBelowTop; + left = absoluteLeft; + } + + return { aboveTop, fitsAbove, belowTop, fitsBelow, left }; } private _prepareRenderWidgetAtExactPosition(position: Position, ctx: IRenderingContext): IMyWidgetRenderData { diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 776f914c1fd..5229ebc3ca3 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -849,6 +849,7 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif clonedOptions.scrollbar.vertical = 'visible'; clonedOptions.folding = false; clonedOptions.codeLens = false; + clonedOptions.fixedOverflowWidgets = true; return clonedOptions; } diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index d25e520f940..bd486c11379 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -296,6 +296,7 @@ class InternalEditorOptionsHelper { renderIndentGuides: toBoolean(opts.renderIndentGuides), renderLineHighlight: toBoolean(opts.renderLineHighlight), scrollbar: scrollbar, + fixedOverflowWidgets: toBoolean(opts.fixedOverflowWidgets) }); let contribInfo = new editorCommon.EditorContribOptions({ diff --git a/src/vs/editor/common/config/defaultConfig.ts b/src/vs/editor/common/config/defaultConfig.ts index 9225405950f..d608fddde27 100644 --- a/src/vs/editor/common/config/defaultConfig.ts +++ b/src/vs/editor/common/config/defaultConfig.ts @@ -56,6 +56,7 @@ class ConfigClass implements IConfiguration { verticalHasArrows: false, horizontalHasArrows: false }, + fixedOverflowWidgets: false, overviewRulerLanes: 2, cursorBlinking: 'blink', mouseWheelZoom: false, diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index f71e3355dbe..0074cbe6e8d 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -256,6 +256,11 @@ export interface IEditorOptions { * Control the behavior and rendering of the scrollbars. */ scrollbar?: IEditorScrollbarOptions; + /** + * Display overflow widgets as `fixed`. + * Defaults to `false`. + */ + fixedOverflowWidgets?: boolean; /** * The number of vertical lanes the overview ruler should render. * Defaults to 2. @@ -665,6 +670,7 @@ export class InternalEditorViewOptions { readonly renderIndentGuides: boolean; readonly renderLineHighlight: boolean; readonly scrollbar: InternalEditorScrollbarOptions; + readonly fixedOverflowWidgets: boolean; /** * @internal @@ -695,6 +701,7 @@ export class InternalEditorViewOptions { renderIndentGuides: boolean; renderLineHighlight: boolean; scrollbar: InternalEditorScrollbarOptions; + fixedOverflowWidgets: boolean; }) { this.theme = String(source.theme); this.canUseTranslate3d = Boolean(source.canUseTranslate3d); @@ -721,6 +728,7 @@ export class InternalEditorViewOptions { this.renderIndentGuides = Boolean(source.renderIndentGuides); this.renderLineHighlight = Boolean(source.renderLineHighlight); this.scrollbar = source.scrollbar.clone(); + this.fixedOverflowWidgets = Boolean(source.fixedOverflowWidgets); } private static _toSortedIntegerArray(source: any): number[] { @@ -781,6 +789,7 @@ export class InternalEditorViewOptions { && this.renderIndentGuides === other.renderIndentGuides && this.renderLineHighlight === other.renderLineHighlight && this.scrollbar.equals(other.scrollbar) + && this.fixedOverflowWidgets === other.fixedOverflowWidgets ); } @@ -814,6 +823,7 @@ export class InternalEditorViewOptions { renderIndentGuides: this.renderIndentGuides !== newOpts.renderIndentGuides, renderLineHighlight: this.renderLineHighlight !== newOpts.renderLineHighlight, scrollbar: (!this.scrollbar.equals(newOpts.scrollbar)), + fixedOverflowWidgets: this.fixedOverflowWidgets !== newOpts.fixedOverflowWidgets }; } @@ -851,6 +861,7 @@ export interface IViewConfigurationChangedEvent { readonly renderIndentGuides: boolean; readonly renderLineHighlight: boolean; readonly scrollbar: boolean; + readonly fixedOverflowWidgets: boolean; } export class EditorContribOptions { diff --git a/src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts b/src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts index de1f33ba1c0..f409b0614a2 100644 --- a/src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts +++ b/src/vs/editor/contrib/referenceSearch/browser/referencesWidget.ts @@ -556,7 +556,8 @@ export class ReferenceWidget extends PeekViewWidget { var options: editorCommon.IEditorOptions = { scrollBeyondLastLine: false, scrollbar: DefaultConfig.editor.scrollbar, - overviewRulerLanes: 2 + overviewRulerLanes: 2, + fixedOverflowWidgets: true }; this._preview = this._instantiationService.createInstance(EmbeddedCodeEditorWidget, div.getHTMLElement(), options, this.editor); diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 56fa422e026..0329b1eb5c0 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -1118,6 +1118,11 @@ declare module monaco.editor { * Control the behavior and rendering of the scrollbars. */ scrollbar?: IEditorScrollbarOptions; + /** + * Display overflow widgets as `fixed`. + * Defaults to `false`. + */ + fixedOverflowWidgets?: boolean; /** * The number of vertical lanes the overview ruler should render. * Defaults to 2. @@ -1420,6 +1425,7 @@ declare module monaco.editor { readonly renderIndentGuides: boolean; readonly renderLineHighlight: boolean; readonly scrollbar: InternalEditorScrollbarOptions; + readonly fixedOverflowWidgets: boolean; } export interface IViewConfigurationChangedEvent { @@ -1448,6 +1454,7 @@ declare module monaco.editor { readonly renderIndentGuides: boolean; readonly renderLineHighlight: boolean; readonly scrollbar: boolean; + readonly fixedOverflowWidgets: boolean; } export class EditorContribOptions { diff --git a/src/vs/workbench/browser/parts/editor/textEditor.ts b/src/vs/workbench/browser/parts/editor/textEditor.ts index aeebc684d6f..1c3e842e785 100644 --- a/src/vs/workbench/browser/parts/editor/textEditor.ts +++ b/src/vs/workbench/browser/parts/editor/textEditor.ts @@ -119,7 +119,8 @@ export abstract class BaseTextEditor extends BaseEditor { return { overviewRulerLanes: 3, lineNumbersMinChars: 3, - theme: this.themeService.getColorTheme() + theme: this.themeService.getColorTheme(), + fixedOverflowWidgets: true }; } diff --git a/src/vs/workbench/parts/debug/electron-browser/repl.ts b/src/vs/workbench/parts/debug/electron-browser/repl.ts index fadd4be2035..1e477563652 100644 --- a/src/vs/workbench/parts/debug/electron-browser/repl.ts +++ b/src/vs/workbench/parts/debug/electron-browser/repl.ts @@ -269,7 +269,8 @@ export class Repl extends Panel implements IPrivateReplService { lineDecorationsWidth: 0, scrollBeyondLastLine: false, theme: this.themeService.getColorTheme(), - renderLineHighlight: false + renderLineHighlight: false, + fixedOverflowWidgets: true }; } From fb210605a52c62f3b2d6d86f34e9c8d0ac14f202 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 25 Oct 2016 11:16:48 +0200 Subject: [PATCH 024/242] remove periods --- extensions/typescript/package.nls.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/typescript/package.nls.json b/extensions/typescript/package.nls.json index 79d48c77214..a096daeebfe 100644 --- a/extensions/typescript/package.nls.json +++ b/extensions/typescript/package.nls.json @@ -1,6 +1,6 @@ { - "typescript.reloadProjects.title": "Reload TypeScript Project.", - "javascript.reloadProjects.title": "Reload JavaScript Project.", + "typescript.reloadProjects.title": "Reload TypeScript Project", + "javascript.reloadProjects.title": "Reload JavaScript Project", "configuration.typescript": "TypeScript.", "typescript.useCodeSnippetsOnMethodSuggest.dec": "Complete functions with their parameter signature.", "typescript.tsdk.desc": "Specifies the folder path containing the tsserver and lib*.d.ts files to use.", From d3143b6f4b013889052af589f1b86c2ce4e12fa1 Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 25 Oct 2016 12:04:14 +0200 Subject: [PATCH 025/242] help menu add seperator --- src/vs/code/electron-main/menus.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/code/electron-main/menus.ts b/src/vs/code/electron-main/menus.ts index 993a7d65b20..f130651e774 100644 --- a/src/vs/code/electron-main/menus.ts +++ b/src/vs/code/electron-main/menus.ts @@ -700,6 +700,7 @@ export class VSCodeMenu { (product.documentationUrl || product.releaseNotesUrl) ? __separator__() : null, keyboardShortcutsUrl ? new MenuItem({ label: mnemonicLabel(nls.localize({ key: 'miKeyboardShortcuts', comment: ['&& denotes a mnemonic'] }, "&&Keyboard Shortcuts Reference")), click: () => this.openUrl(keyboardShortcutsUrl, 'openKeyboardShortcutsUrl') }) : null, product.introductoryVideosUrl ? new MenuItem({ label: mnemonicLabel(nls.localize({ key: 'miIntroductoryVideos', comment: ['&& denotes a mnemonic'] }, "Introductory &&Videos")), click: () => this.openUrl(product.introductoryVideosUrl, 'openIntroductoryVideosUrl') }) : null, + (product.introductoryVideosUrl || keyboardShortcutsUrl) ? __separator__() : null, product.twitterUrl ? new MenuItem({ label: mnemonicLabel(nls.localize({ key: 'miTwitter', comment: ['&& denotes a mnemonic'] }, "&&Join us on Twitter")), click: () => this.openUrl(product.twitterUrl, 'openTwitterUrl') }) : null, product.requestFeatureUrl ? new MenuItem({ label: mnemonicLabel(nls.localize({ key: 'miUserVoice', comment: ['&& denotes a mnemonic'] }, "&&Search Feature Requests")), click: () => this.openUrl(product.requestFeatureUrl, 'openUserVoiceUrl') }) : null, reportIssuesItem, From c703284069d33b848ec789fc663768f657de55e9 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 25 Oct 2016 12:10:57 +0200 Subject: [PATCH 026/242] use quotes for __ext_ search --- src/vs/workbench/browser/parts/editor/editorStatus.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index d355bfc414b..5251333b3b4 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -690,7 +690,7 @@ export class ShowLanguageExtensionsAction extends Action { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { - viewlet.search(`tag:__ext_${this.extension.replace(/^\./, '')}`); + viewlet.search(`tag:"__ext_${this.extension.replace(/^\./, '')}"`); viewlet.focus(); }); } From a8a3990f71697e691d227180628c9268752d6038 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 12:41:05 +0200 Subject: [PATCH 027/242] more output for flaky test (fixes #14377) --- .../node/configurationEditingService.test.ts | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts b/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts index 219ef322dd3..a4186bd02ba 100644 --- a/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts +++ b/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts @@ -67,7 +67,7 @@ class TestDirtyTextFileService extends TestTextFileService { suite('WorkspaceConfigurationEditingService - Node', () => { - function createWorkspace(callback: (workspaceDir: string, globalSettingsFile: string, cleanUp: (callback: () => void) => void) => void): void { + function createWorkspace(callback: (workspaceDir: string, globalSettingsFile: string, cleanUp: (done: () => void, error?: Error) => void) => void): void { const id = uuid.generateUuid(); const parentDir = path.join(os.tmpdir(), 'vsctests', id); const workspaceDir = path.join(parentDir, 'workspaceconfig', id); @@ -75,7 +75,15 @@ suite('WorkspaceConfigurationEditingService - Node', () => { const globalSettingsFile = path.join(workspaceDir, 'config.json'); extfs.mkdirp(workspaceSettingsDir, 493, (error) => { - callback(workspaceDir, globalSettingsFile, (callback) => extfs.del(parentDir, os.tmpdir(), () => { }, callback)); + callback(workspaceDir, globalSettingsFile, (done, error) => { + extfs.del(parentDir, os.tmpdir(), () => { }, () => { + if (error) { + assert.fail(error); + } + + done(); + }); + }); }); } @@ -124,7 +132,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -137,7 +145,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -150,7 +158,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -165,7 +173,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -178,7 +186,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -194,7 +202,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -215,7 +223,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -232,7 +240,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -255,7 +263,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -273,7 +281,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -295,7 +303,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); @@ -317,7 +325,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); }); \ No newline at end of file From 6ee465288712da682f19a22a54f9bbb6a632bb47 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 13:03:52 +0200 Subject: [PATCH 028/242] try to fix #14349 --- .../test/browser/fileEditorInput.test.ts | 42 +++++++++---------- .../textfile/test/textFileEditorModel.test.ts | 42 +++++++++---------- .../textfile/test/textFileService.test.ts | 31 ++++++++++++-- .../workbench/test/browser/services.test.ts | 12 +++--- 4 files changed, 76 insertions(+), 51 deletions(-) diff --git a/src/vs/workbench/parts/files/test/browser/fileEditorInput.test.ts b/src/vs/workbench/parts/files/test/browser/fileEditorInput.test.ts index bbed820b81a..c78b564e61c 100644 --- a/src/vs/workbench/parts/files/test/browser/fileEditorInput.test.ts +++ b/src/vs/workbench/parts/files/test/browser/fileEditorInput.test.ts @@ -17,7 +17,7 @@ import { ITextFileEditorModel, ITextFileService, LocalFileChangeEvent } from 'vs import { FileOperationResult, IFileOperationResult, FileChangesEvent, FileChangeType, EventType } from 'vs/platform/files/common/files'; function toResource(path) { - return URI.file(join('C:\\', path)); + return URI.file(join('C:\\', new Buffer(this.test.fullTitle()).toString('base64'), path)); } function toStat(resource: URI) { @@ -51,9 +51,9 @@ suite('Files - FileEditorInput', () => { }); test('Basics', function (done) { - let input = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/file.js'), void 0); - const otherInput = instantiationService.createInstance(FileEditorInput, toResource('foo/bar/otherfile.js'), void 0); - const otherInputSame = instantiationService.createInstance(FileEditorInput, toResource('foo/bar/file.js'), void 0); + let input = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/file.js'), void 0); + const otherInput = instantiationService.createInstance(FileEditorInput, toResource.call(this, 'foo/bar/otherfile.js'), void 0); + const otherInputSame = instantiationService.createInstance(FileEditorInput, toResource.call(this, 'foo/bar/file.js'), void 0); assert(input.matches(input)); assert(input.matches(otherInputSame)); @@ -65,13 +65,13 @@ suite('Files - FileEditorInput', () => { assert.strictEqual('file.js', input.getName()); - assert.strictEqual(toResource('/foo/bar/file.js').fsPath, input.getResource().fsPath); + assert.strictEqual(toResource.call(this, '/foo/bar/file.js').fsPath, input.getResource().fsPath); assert(input.getResource() instanceof URI); - input = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar.html'), void 0); + input = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar.html'), void 0); - const inputToResolve: any = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/file.js'), void 0); - const sameOtherInput = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/file.js'), void 0); + const inputToResolve: any = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/file.js'), void 0); + const sameOtherInput = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/file.js'), void 0); return accessor.editorService.resolveEditorModel(inputToResolve, true).then(resolved => { const resolvedModelA = resolved; @@ -113,8 +113,8 @@ suite('Files - FileEditorInput', () => { }); test('matches', function () { - const input1 = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/updatefile.js'), void 0); - const input2 = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/updatefile.js'), void 0); + const input1 = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/updatefile.js'), void 0); + const input2 = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/updatefile.js'), void 0); assert.strictEqual(input1.matches(null), false); assert.strictEqual(input1.matches(input1), true); @@ -122,7 +122,7 @@ suite('Files - FileEditorInput', () => { }); test('getEncoding/setEncoding', function (done) { - const input = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/updatefile.js'), void 0); + const input = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/updatefile.js'), void 0); input.setEncoding('utf16', EncodingMode.Encode); assert.equal(input.getEncoding(), 'utf16'); @@ -137,7 +137,7 @@ suite('Files - FileEditorInput', () => { }); test('save', function (done) { - const input = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/updatefile.js'), void 0); + const input = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/updatefile.js'), void 0); return accessor.editorService.resolveEditorModel(input, true).then((resolved: ITextFileEditorModel) => { resolved.textEditorModel.setValue('changed'); @@ -154,7 +154,7 @@ suite('Files - FileEditorInput', () => { }); test('revert', function (done) { - const input = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/updatefile.js'), void 0); + const input = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/updatefile.js'), void 0); return accessor.editorService.resolveEditorModel(input, true).then((resolved: ITextFileEditorModel) => { resolved.textEditorModel.setValue('changed'); @@ -171,7 +171,7 @@ suite('Files - FileEditorInput', () => { }); test('resolve handles binary files', function (done) { - const input = instantiationService.createInstance(FileEditorInput, toResource('/foo/bar/updatefile.js'), void 0); + const input = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/foo/bar/updatefile.js'), void 0); accessor.textFileService.setResolveTextContentErrorOnce({ message: 'error', @@ -188,8 +188,8 @@ suite('Files - FileEditorInput', () => { }); test('disposes when resource gets deleted - local file changes', function () { - const parent = toResource('/foo/bar'); - const resource = toResource('/foo/bar/updatefile.js'); + const parent = toResource.call(this, '/foo/bar'); + const resource = toResource.call(this, '/foo/bar/updatefile.js'); let input = instantiationService.createInstance(FileEditorInput, resource, void 0); assert.ok(!input.isDisposed()); @@ -199,7 +199,7 @@ suite('Files - FileEditorInput', () => { input = instantiationService.createInstance(FileEditorInput, resource, void 0); - const other = toResource('/foo/barfoo'); + const other = toResource.call(this, '/foo/barfoo'); accessor.eventService.emit('files.internal:fileChanged', new LocalFileChangeEvent(toStat(other))); assert.ok(!input.isDisposed()); @@ -208,14 +208,14 @@ suite('Files - FileEditorInput', () => { assert.ok(input.isDisposed()); // Move - const to = toResource('/foo/barfoo/change.js'); + const to = toResource.call(this, '/foo/barfoo/change.js'); accessor.eventService.emit('files.internal:fileChanged', new LocalFileChangeEvent(toStat(resource), toStat(to))); assert.ok(input.isDisposed()); }); test('disposes when resource gets deleted - remote file changes', function () { - const parent = toResource('/foo/bar'); - const resource = toResource('/foo/bar/updatefile.js'); + const parent = toResource.call(this, '/foo/bar'); + const resource = toResource.call(this, '/foo/bar/updatefile.js'); let input = instantiationService.createInstance(FileEditorInput, resource, void 0); assert.ok(!input.isDisposed()); @@ -225,7 +225,7 @@ suite('Files - FileEditorInput', () => { input = instantiationService.createInstance(FileEditorInput, resource, void 0); - const other = toResource('/foo/barfoo'); + const other = toResource.call(this, '/foo/barfoo'); accessor.eventService.emit(EventType.FILE_CHANGES, new FileChangesEvent([{ resource: other, type: FileChangeType.DELETED }])); assert.ok(!input.isDisposed()); diff --git a/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts b/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts index ae52b218a63..db4410bb4fe 100644 --- a/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts @@ -20,7 +20,7 @@ import { FileOperationResult, IFileOperationResult } from 'vs/platform/files/com import { IModelService } from 'vs/editor/common/services/modelService'; function toResource(path) { - return URI.file(paths.join('C:\\', path)); + return URI.file(paths.join('C:\\', new Buffer(this.test.fullTitle()).toString('base64'), path)); } class ServiceAccessor { @@ -44,7 +44,7 @@ suite('Files - TextFileEditorModel', () => { }); test('Save', function (done) { - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.load().then(() => { model.textEditorModel.setValue('bar'); @@ -63,7 +63,7 @@ suite('Files - TextFileEditorModel', () => { }); test('setEncoding - encode', function () { - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.setEncoding('utf8', EncodingMode.Encode); // no-op assert.equal(model.getLastModifiedTime(), -1); @@ -76,7 +76,7 @@ suite('Files - TextFileEditorModel', () => { }); test('setEncoding - decode', function () { - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.setEncoding('utf16', EncodingMode.Decode); @@ -86,7 +86,7 @@ suite('Files - TextFileEditorModel', () => { }); test('disposes when underlying model is destroyed', function (done) { - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.load().then(() => { model.textEditorModel.destroy(); @@ -98,7 +98,7 @@ suite('Files - TextFileEditorModel', () => { }); test('Load does not trigger save', function (done) { - const model = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index.txt'), 'utf8'); + const model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index.txt'), 'utf8'); assert.equal(model.getState(), ModelState.SAVED); accessor.eventService.addListener2('files:internalFileChanged', () => { @@ -121,7 +121,7 @@ suite('Files - TextFileEditorModel', () => { }); test('Load returns dirty model as long as model is dirty', function (done) { - const model = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.load().then(() => { model.textEditorModel.setValue('foo'); @@ -142,7 +142,7 @@ suite('Files - TextFileEditorModel', () => { let eventCounter = 0; - const model = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.onDidStateChange(e => { if (e === StateChange.REVERTED) { @@ -168,7 +168,7 @@ suite('Files - TextFileEditorModel', () => { }); test('File not modified error is handled gracefully', function (done) { - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.load().then(() => { const mtime = model.getLastModifiedTime(); @@ -188,7 +188,7 @@ suite('Files - TextFileEditorModel', () => { }); test('Conflict Resolution Mode', function (done) { - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.load().then(() => { model.setConflictResolutionMode(); @@ -215,7 +215,7 @@ suite('Files - TextFileEditorModel', () => { test('Auto Save triggered when model changes', function (done) { let eventCounter = 0; - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index.txt'), 'utf8'); (model).autoSaveAfterMillies = 10; (model).autoSaveAfterMilliesEnabled = true; @@ -243,8 +243,8 @@ suite('Files - TextFileEditorModel', () => { }); test('save() and isDirty() - proper with check for mtimes', function (done) { - const input1 = createFileInput(instantiationService, toResource('/path/index_async2.txt')); - const input2 = createFileInput(instantiationService, toResource('/path/index_async.txt')); + const input1 = createFileInput(instantiationService, toResource.call(this, '/path/index_async2.txt')); + const input2 = createFileInput(instantiationService, toResource.call(this, '/path/index_async.txt')); input1.resolve().then((model1: TextFileEditorModel) => { input2.resolve().then((model2: TextFileEditorModel) => { @@ -256,16 +256,16 @@ suite('Files - TextFileEditorModel', () => { assert.ok(m2Mtime > 0); assert.ok(accessor.textFileService.isDirty()); - assert.ok(accessor.textFileService.isDirty(toResource('/path/index_async2.txt'))); - assert.ok(!accessor.textFileService.isDirty(toResource('/path/index_async.txt'))); + assert.ok(accessor.textFileService.isDirty(toResource.call(this, '/path/index_async2.txt'))); + assert.ok(!accessor.textFileService.isDirty(toResource.call(this, '/path/index_async.txt'))); model2.textEditorModel.setValue('foo'); - assert.ok(accessor.textFileService.isDirty(toResource('/path/index_async.txt'))); + assert.ok(accessor.textFileService.isDirty(toResource.call(this, '/path/index_async.txt'))); return TPromise.timeout(10).then(() => { accessor.textFileService.saveAll().then(() => { - assert.ok(!accessor.textFileService.isDirty(toResource('/path/index_async.txt'))); - assert.ok(!accessor.textFileService.isDirty(toResource('/path/index_async2.txt'))); + assert.ok(!accessor.textFileService.isDirty(toResource.call(this, '/path/index_async.txt'))); + assert.ok(!accessor.textFileService.isDirty(toResource.call(this, '/path/index_async2.txt'))); assert.ok(model1.getLastModifiedTime() > m1Mtime); assert.ok(model2.getLastModifiedTime() > m2Mtime); assert.ok(model1.getLastSaveAttemptTime() > m1Mtime); @@ -283,7 +283,7 @@ suite('Files - TextFileEditorModel', () => { test('Save Participant', function (done) { let eventCounter = 0; - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); model.onDidStateChange(e => { if (e === StateChange.SAVED) { @@ -318,7 +318,7 @@ suite('Files - TextFileEditorModel', () => { test('Save Participant, async participant', function () { - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); TextFileEditorModel.setSaveParticipant({ participate: (model) => { @@ -338,7 +338,7 @@ suite('Files - TextFileEditorModel', () => { test('Save Participant, bad participant', function () { - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); TextFileEditorModel.setSaveParticipant({ participate: (model) => { diff --git a/src/vs/workbench/services/textfile/test/textFileService.test.ts b/src/vs/workbench/services/textfile/test/textFileService.test.ts index 3b1a12f2b03..e4969c6d466 100644 --- a/src/vs/workbench/services/textfile/test/textFileService.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileService.test.ts @@ -19,7 +19,7 @@ import { UntitledEditorModel } from 'vs/workbench/common/editor/untitledEditorMo import { TextFileEditorModelManager } from 'vs/workbench/services/textfile/common/textFileEditorModelManager'; function toResource(path) { - return URI.file(paths.join('C:\\', path)); + return URI.file(paths.join('C:\\', new Buffer(this.test.fullTitle()).toString('base64'), path)); } class ServiceAccessor { @@ -49,8 +49,6 @@ suite('Files - TextFileService', () => { setup(() => { instantiationService = workbenchInstantiationService(); accessor = instantiationService.createInstance(ServiceAccessor); - model = instantiationService.createInstance(TextFileEditorModel, toResource('/path/file.txt'), 'utf8'); - (accessor.textFileService.models).add(model.getResource(), model); }); teardown(() => { @@ -61,6 +59,9 @@ suite('Files - TextFileService', () => { }); test('confirm onWillShutdown - no veto', function () { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const event = new ShutdownEventImpl(); accessor.lifecycleService.fireWillShutdown(event); @@ -68,6 +69,9 @@ suite('Files - TextFileService', () => { }); test('confirm onWillShutdown - veto if user cancels', function (done) { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const service = accessor.textFileService; service.setConfirmResult(ConfirmResult.CANCEL); @@ -86,6 +90,9 @@ suite('Files - TextFileService', () => { }); test('confirm onWillShutdown - no veto if user does not want to save', function (done) { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const service = accessor.textFileService; service.setConfirmResult(ConfirmResult.DONT_SAVE); @@ -104,6 +111,9 @@ suite('Files - TextFileService', () => { }); test('confirm onWillShutdown - save', function (done) { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const service = accessor.textFileService; service.setConfirmResult(ConfirmResult.SAVE); @@ -125,6 +135,9 @@ suite('Files - TextFileService', () => { }); test('isDirty/getDirty - files and untitled', function (done) { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const service = accessor.textFileService; model.load().then(() => { assert.ok(!service.isDirty(model.getResource())); @@ -150,6 +163,9 @@ suite('Files - TextFileService', () => { }); test('save - file', function (done) { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const service = accessor.textFileService; model.load().then(() => { @@ -167,6 +183,9 @@ suite('Files - TextFileService', () => { }); test('saveAll - file', function (done) { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const service = accessor.textFileService; model.load().then(() => { @@ -186,6 +205,9 @@ suite('Files - TextFileService', () => { }); test('saveAs - file', function (done) { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const service = accessor.textFileService; service.setPromptPath(model.getResource().fsPath); @@ -204,6 +226,9 @@ suite('Files - TextFileService', () => { }); test('revert - file', function (done) { + model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/file.txt'), 'utf8'); + (accessor.textFileService.models).add(model.getResource(), model); + const service = accessor.textFileService; service.setPromptPath(model.getResource().fsPath); diff --git a/src/vs/workbench/test/browser/services.test.ts b/src/vs/workbench/test/browser/services.test.ts index 2a651ef71a7..0f9593655e6 100644 --- a/src/vs/workbench/test/browser/services.test.ts +++ b/src/vs/workbench/test/browser/services.test.ts @@ -40,7 +40,7 @@ let openedEditorOptions; let openedEditorPosition; function toResource(path) { - return URI.file(paths.join('C:\\', path)); + return URI.file(paths.join('C:\\', new Buffer(this.test.fullTitle()).toString('base64'), path)); } class TestEditorPart implements IEditorPart { @@ -272,7 +272,7 @@ suite('Workbench UI Services', () => { test('WorkbenchEditorService', function () { let instantiationService = workbenchInstantiationService(); - let activeInput: EditorInput = instantiationService.createInstance(FileEditorInput, toResource('/something.js'), void 0); + let activeInput: EditorInput = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/something.js'), void 0); let testEditorPart = new TestEditorPart(); testEditorPart.setActiveEditorInput(activeInput); @@ -299,12 +299,12 @@ suite('Workbench UI Services', () => { }); // Open Untyped Input - service.openEditor({ resource: toResource('/index.html'), options: { selection: { startLineNumber: 1, startColumn: 1 } } }).then((editor) => { + service.openEditor({ resource: toResource.call(this, '/index.html'), options: { selection: { startLineNumber: 1, startColumn: 1 } } }).then((editor) => { assert.strictEqual(editor, activeEditor); assert(openedEditorInput instanceof FileEditorInput); let contentInput = openedEditorInput; - assert.strictEqual(contentInput.getResource().fsPath, toResource('/index.html').fsPath); + assert.strictEqual(contentInput.getResource().fsPath, toResource.call(this, '/index.html').fsPath); assert(openedEditorOptions instanceof TextEditorOptions); let textEditorOptions = openedEditorOptions; @@ -326,14 +326,14 @@ suite('Workbench UI Services', () => { }); // Resolve Editor Model (Untyped Input) - service.resolveEditorModel({ resource: toResource('/index.html') }, true).then((model) => { + service.resolveEditorModel({ resource: toResource.call(this, '/index.html') }, true).then((model) => { assert(model instanceof TextFileEditorModel); }); }); test('DelegatingWorkbenchEditorService', function () { let instantiationService = workbenchInstantiationService(); - let activeInput: EditorInput = instantiationService.createInstance(FileEditorInput, toResource('/something.js'), void 0); + let activeInput: EditorInput = instantiationService.createInstance(FileEditorInput, toResource.call(this, '/something.js'), void 0); let testEditorPart = new TestEditorPart(); testEditorPart.setActiveEditorInput(activeInput); From fd2f794b847d9f8f371be9e253c7c726cc095305 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Tue, 25 Oct 2016 14:13:35 +0200 Subject: [PATCH 029/242] Fixes #14360: OutputPanel disables `renderLineHighlight` --- src/vs/workbench/parts/output/browser/outputPanel.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/workbench/parts/output/browser/outputPanel.ts b/src/vs/workbench/parts/output/browser/outputPanel.ts index f1a52cc4d2c..4447939aef2 100644 --- a/src/vs/workbench/parts/output/browser/outputPanel.ts +++ b/src/vs/workbench/parts/output/browser/outputPanel.ts @@ -87,6 +87,7 @@ export class OutputPanel extends StringEditor { options.rulers = []; options.folding = false; options.scrollBeyondLastLine = false; + options.renderLineHighlight = false; const channel = this.outputService.getActiveChannel(); options.ariaLabel = channel ? nls.localize('outputPanelWithInputAriaLabel', "{0}, Output panel", channel.label) : nls.localize('outputPanelAriaLabel', "Output panel"); From 556410c703da2514a5e57302ca720e54a045558c Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 14:50:46 +0200 Subject: [PATCH 030/242] Freezes when Chrome generates userDataDir in workspace (fixes #14301) --- .../services/configuration/node/configurationService.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/services/configuration/node/configurationService.ts b/src/vs/workbench/services/configuration/node/configurationService.ts index 47b11bd9344..85fdda3659f 100644 --- a/src/vs/workbench/services/configuration/node/configurationService.ts +++ b/src/vs/workbench/services/configuration/node/configurationService.ts @@ -212,7 +212,10 @@ export class WorkspaceConfigurationService implements IWorkspaceConfigurationSer } // outside my folder or not a *.json file - if (paths.extname(workspacePath) !== '.json' || !paths.isEqualOrParent(workspacePath, this.workspaceSettingsRootFolder)) { + if ( + paths.extname(workspacePath) !== '.json' || // we only care about *.json files + paths.dirname(workspacePath) !== this.workspaceSettingsRootFolder // which are top level in .vscode + ) { continue; } From 9d812a031ec8629b2bc0d81ecdd66528583dcabf Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 14:58:08 +0200 Subject: [PATCH 031/242] Ctrl+Alt+ keybindings should not be used (fixes #13567) --- .../workbench/parts/files/browser/fileActions.contribution.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/files/browser/fileActions.contribution.ts b/src/vs/workbench/parts/files/browser/fileActions.contribution.ts index fe0417f3471..c966dc136d2 100644 --- a/src/vs/workbench/parts/files/browser/fileActions.contribution.ts +++ b/src/vs/workbench/parts/files/browser/fileActions.contribution.ts @@ -163,7 +163,7 @@ const category = nls.localize('filesCategory', "Files"); const registry = Registry.as(ActionExtensions.WorkbenchActions); registry.registerWorkbenchAction(new SyncActionDescriptor(SaveFileAction, SaveFileAction.ID, SaveFileAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_S }), 'Files: Save', category); -registry.registerWorkbenchAction(new SyncActionDescriptor(SaveAllAction, SaveAllAction.ID, SaveAllAction.LABEL, { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_S }), 'Files: Save All', category); +registry.registerWorkbenchAction(new SyncActionDescriptor(SaveAllAction, SaveAllAction.ID, SaveAllAction.LABEL, { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_S, win: { primary: KeyChord(KeyMod.CtrlCmd | KeyCode.KEY_K, KeyCode.KEY_S) } }), 'Files: Save All', category); registry.registerWorkbenchAction(new SyncActionDescriptor(SaveFilesAction, SaveFilesAction.ID, null /* only for programmatic trigger */), null); registry.registerWorkbenchAction(new SyncActionDescriptor(RevertFileAction, RevertFileAction.ID, RevertFileAction.LABEL), 'Files: Revert File', category); registry.registerWorkbenchAction(new SyncActionDescriptor(GlobalNewFileAction, GlobalNewFileAction.ID, GlobalNewFileAction.LABEL), 'Files: New File', category); From 0c8a8db93f3594f1969525067cb5790c25773540 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 14:59:43 +0200 Subject: [PATCH 032/242] Middle vs Center labels (fixes #14383) --- src/vs/workbench/browser/parts/editor/editorPart.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/editor/editorPart.ts b/src/vs/workbench/browser/parts/editor/editorPart.ts index c34f2ed9b12..39f47cce016 100644 --- a/src/vs/workbench/browser/parts/editor/editorPart.ts +++ b/src/vs/workbench/browser/parts/editor/editorPart.ts @@ -77,7 +77,7 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService private static GROUP_CENTER = nls.localize('groupTwoVertical', "Center"); private static GROUP_RIGHT = nls.localize('groupThreeVertical', "Right"); private static GROUP_TOP = nls.localize('groupOneHorizontal', "Top"); - private static GROUP_MIDDLE = nls.localize('groupTwoHorizontal', "Middle"); + private static GROUP_MIDDLE = nls.localize('groupTwoHorizontal', "Center"); private static GROUP_BOTTOM = nls.localize('groupThreeHorizontal', "Bottom"); private static EDITOR_PART_UI_STATE_STORAGE_KEY = 'editorpart.uiState'; From 01d0139a140c2f8e5d3abdc13e865c41714d60fb Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 15:01:17 +0200 Subject: [PATCH 033/242] 'defaultSideBySideLayout' naming (fixes #14387) --- .../workbench/browser/parts/editor/sideBySideEditorControl.ts | 2 +- src/vs/workbench/common/editor.ts | 2 +- src/vs/workbench/electron-browser/main.contribution.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts index 50ca1e9fb79..f35bb4e0252 100644 --- a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts +++ b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts @@ -212,7 +212,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti if (config.workbench && config.workbench.editor) { this.showTabs = config.workbench.editor.showTabs; this.showIcons = config.workbench.editor.showIcons; - this.defaultEditorGroupOrientation = (config.workbench.editor.defaultSideBySideLayout === 'horizontal') ? 'horizontal' : 'vertical'; + this.defaultEditorGroupOrientation = (config.workbench.editor.defaultEditorGroupLayout === 'horizontal') ? 'horizontal' : 'vertical'; } else { this.showTabs = true; this.showIcons = false; diff --git a/src/vs/workbench/common/editor.ts b/src/vs/workbench/common/editor.ts index 58c1e15ed54..7a549008eca 100644 --- a/src/vs/workbench/common/editor.ts +++ b/src/vs/workbench/common/editor.ts @@ -861,7 +861,7 @@ export interface IWorkbenchEditorConfiguration { enablePreview: boolean; enablePreviewFromQuickOpen: boolean; openPositioning: 'left' | 'right' | 'first' | 'last'; - defaultSideBySideLayout: GroupOrientation; + defaultEditorGroupLayout: GroupOrientation; } }; } diff --git a/src/vs/workbench/electron-browser/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts index 40f783aa57b..295a61af2ac 100644 --- a/src/vs/workbench/electron-browser/main.contribution.ts +++ b/src/vs/workbench/electron-browser/main.contribution.ts @@ -74,11 +74,11 @@ configurationRegistry.registerConfiguration({ 'title': nls.localize('workbenchConfigurationTitle', "Workbench"), 'type': 'object', 'properties': { - 'workbench.editor.defaultSideBySideLayout': { + 'workbench.editor.defaultEditorGroupLayout': { 'type': 'string', 'enum': ['vertical', 'horizontal'], 'default': 'vertical', - 'description': nls.localize('defaultSideBySideLayout', "Controls how multiple side by side editors should layout by default if no other user choice has been made.") + 'description': nls.localize('defaultEditorGroupLayout', "Controls how multiple editor groups should layout by default if no other user choice has been made.") }, 'workbench.editor.showTabs': { 'type': 'boolean', From 207d45f1618c9a93c09d044311d74b14d65484a2 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Tue, 25 Oct 2016 15:09:57 +0200 Subject: [PATCH 034/242] Fixes #14410: Rename experimentalAutomaticTypeAcquisition to disableAutomaticTypingAcquisition --- extensions/typescript/package.json | 6 +++--- extensions/typescript/package.nls.json | 2 +- extensions/typescript/src/typescriptServiceClient.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/typescript/package.json b/extensions/typescript/package.json index 9c57acf978c..1b5284b5e53 100644 --- a/extensions/typescript/package.json +++ b/extensions/typescript/package.json @@ -81,10 +81,10 @@ "default": null, "description": "%typescript.tsdk.desc%" }, - "typescript.experimentalAutomaticTypeAcquisition": { + "typescript.disableAutomaticTypeAcquisition": { "type": "boolean", - "default": true, - "description": "%typescript.experimentalAutomaticTypeAcquisition%" + "default": false, + "description": "%typescript.disableAutomaticTypeAcquisition%" }, "typescript.check.workspaceVersion": { "type": "boolean", diff --git a/extensions/typescript/package.nls.json b/extensions/typescript/package.nls.json index a096daeebfe..5ff951eea40 100644 --- a/extensions/typescript/package.nls.json +++ b/extensions/typescript/package.nls.json @@ -5,7 +5,7 @@ "typescript.useCodeSnippetsOnMethodSuggest.dec": "Complete functions with their parameter signature.", "typescript.tsdk.desc": "Specifies the folder path containing the tsserver and lib*.d.ts files to use.", "typescript.tsdk_version.desc": "Specifies the version of the tsserver. Only necessary if the tsserver is not installed using npm.", - "typescript.experimentalAutomaticTypeAcquisition": "Enable automatic type acquisition. Requires TypeScript >= 2.0.6 and a restart after changing it.", + "typescript.disableAutomaticTypeAcquisition": "Disables automatic type acquisition. Requires TypeScript >= 2.0.6 and a restart after changing it.", "typescript.check.workspaceVersion": "Check if a TypeScript version is available in the workspace.", "typescript.check.tscVersion": "Check if a global install TypeScript compiler (e.g. tsc) differs from the used TypeScript language service.", "typescript.tsserver.trace": "Enables tracing of messages send to the TS server.", diff --git a/extensions/typescript/src/typescriptServiceClient.ts b/extensions/typescript/src/typescriptServiceClient.ts index 0074c5bca37..594fd043608 100644 --- a/extensions/typescript/src/typescriptServiceClient.ts +++ b/extensions/typescript/src/typescriptServiceClient.ts @@ -456,7 +456,7 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient let args: string[] = []; if (this.apiVersion.has206Features()) { args.push('--useSingleInferredProject'); - if (!workspace.getConfiguration().get('typescript.experimentalAutomaticTypeAcquisition', true)) { + if (workspace.getConfiguration().get('typescript.disableAutomaticTypeAcquisition', false)) { args.push('--disableAutomaticTypingAcquisition'); } } From 6e44c83e261fdd6a174807557b08ced378cef8d9 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 15:18:15 +0200 Subject: [PATCH 035/242] Too many editor group layout actions (fixes #14382) --- .../browser/actions/toggleEditorLayout.ts | 51 ++++--------------- 1 file changed, 10 insertions(+), 41 deletions(-) diff --git a/src/vs/workbench/browser/actions/toggleEditorLayout.ts b/src/vs/workbench/browser/actions/toggleEditorLayout.ts index a9667ba7ca8..f326bc89a6b 100644 --- a/src/vs/workbench/browser/actions/toggleEditorLayout.ts +++ b/src/vs/workbench/browser/actions/toggleEditorLayout.ts @@ -14,11 +14,13 @@ import { IWorkbenchActionRegistry, Extensions } from 'vs/workbench/common/action import { KeyMod, KeyCode } from 'vs/base/common/keyCodes'; import { IEditorGroupService, GroupOrientation } from 'vs/workbench/services/group/common/groupService'; import { dispose, IDisposable } from 'vs/base/common/lifecycle'; +import { CommandsRegistry } from 'vs/platform/commands/common/commands'; +import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; export class ToggleEditorLayoutAction extends Action { public static ID = 'workbench.action.toggleEditorGroupLayout'; - public static LABEL = nls.localize('toggleEditorGroupLayout', "Toggle Editor Group Layout"); + public static LABEL = nls.localize('toggleEditorGroupLayout', "Toggle Editor Group Vertical/Horizontal Layout"); private toDispose: IDisposable[]; @@ -68,48 +70,15 @@ export class ToggleEditorLayoutAction extends Action { } } -export class SwitchToVerticalEditorGroupLayoutAction extends Action { +CommandsRegistry.registerCommand('_workbench.editor.setGroupOrientation', function (accessor: ServicesAccessor, args: [GroupOrientation]) { + const editorGroupService = accessor.get(IEditorGroupService); + const [orientation] = args; - public static ID = 'workbench.action.verticalEditorGroupLayout'; - public static LABEL = nls.localize('verticalEditorGroupLayout', "Switch to Vertical Editor Group Layout"); + editorGroupService.setGroupOrientation(orientation); - constructor( - id: string, - label: string, - @IEditorGroupService private editorGroupService: IEditorGroupService - ) { - super(id, label); - } - - public run(): TPromise { - this.editorGroupService.setGroupOrientation('vertical'); - - return TPromise.as(null); - } -} - -export class SwitchToHorizontalEditorGroupLayoutAction extends Action { - - public static ID = 'workbench.action.horizontalEditorGroupLayout'; - public static LABEL = nls.localize('horizontalEditorGroupLayout', "Switch to Horizontal Editor Group Layout"); - - constructor( - id: string, - label: string, - @IEditorGroupService private editorGroupService: IEditorGroupService - ) { - super(id, label); - } - - public run(): TPromise { - this.editorGroupService.setGroupOrientation('horizontal'); - - return TPromise.as(null); - } -} + return TPromise.as(null); +}); const registry = Registry.as(Extensions.WorkbenchActions); const group = nls.localize('view', "View"); -registry.registerWorkbenchAction(new SyncActionDescriptor(ToggleEditorLayoutAction, ToggleEditorLayoutAction.ID, ToggleEditorLayoutAction.LABEL, { primary: KeyMod.Shift | KeyMod.Alt | KeyCode.KEY_1, mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_1 } }), 'View: Toggle Vertical/Horizontal Layout', group); -registry.registerWorkbenchAction(new SyncActionDescriptor(SwitchToVerticalEditorGroupLayoutAction, SwitchToVerticalEditorGroupLayoutAction.ID, SwitchToVerticalEditorGroupLayoutAction.LABEL, { primary: KeyMod.Shift | KeyMod.Alt | KeyCode.KEY_2, mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_2 } }), 'View: Switch to Vertical Editor Group Layout', group); -registry.registerWorkbenchAction(new SyncActionDescriptor(SwitchToHorizontalEditorGroupLayoutAction, SwitchToHorizontalEditorGroupLayoutAction.ID, SwitchToHorizontalEditorGroupLayoutAction.LABEL, { primary: KeyMod.Shift | KeyMod.Alt | KeyCode.KEY_3, mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_3 } }), 'View: Switch to Horizontal Editor Group Layout', group); \ No newline at end of file +registry.registerWorkbenchAction(new SyncActionDescriptor(ToggleEditorLayoutAction, ToggleEditorLayoutAction.ID, ToggleEditorLayoutAction.LABEL, { primary: KeyMod.Shift | KeyMod.Alt | KeyCode.KEY_1, mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_1 } }), 'View: Toggle Editor Group Vertical/Horizontal Layout', group); \ No newline at end of file From 5ff76dca8594f13e265eca3604a326c88b915083 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 15:32:26 +0200 Subject: [PATCH 036/242] Open in background hotkey should only activate if cursor is at end of line (fixes #14350) --- .../quickopen/browser/quickOpenWidget.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts index 1f3b578f1e3..a1192053e05 100644 --- a/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts +++ b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts @@ -152,6 +152,7 @@ export class QuickOpenWidget implements IModelProvider { DOM.addDisposableListener(this.inputBox.inputElement, DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => { const keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e); + const shouldOpenInBackground = this.shouldOpenInBackground(keyboardEvent); // Do not handle Tab: It is used to navigate between elements without mouse if (keyboardEvent.keyCode === KeyCode.Tab) { @@ -165,13 +166,13 @@ export class QuickOpenWidget implements IModelProvider { this.navigateInTree(keyboardEvent.keyCode, keyboardEvent.shiftKey); } - // Select element on Enter - else if (keyboardEvent.keyCode === KeyCode.Enter || keyboardEvent.keyCode === KeyCode.RightArrow) { + // Select element on Enter or on Arrow-Right if we are at the end of the input + else if (keyboardEvent.keyCode === KeyCode.Enter || shouldOpenInBackground) { DOM.EventHelper.stop(e, true); const focus = this.tree.getFocus(); if (focus) { - this.elementSelected(focus, e, keyboardEvent.keyCode === KeyCode.RightArrow ? Mode.OPEN_IN_BACKGROUND : Mode.OPEN); + this.elementSelected(focus, e, shouldOpenInBackground ? Mode.OPEN_IN_BACKGROUND : Mode.OPEN); } } @@ -304,6 +305,18 @@ export class QuickOpenWidget implements IModelProvider { return this.builder.getHTMLElement(); } + private shouldOpenInBackground(e: StandardKeyboardEvent): boolean { + if (e.keyCode !== KeyCode.RightArrow) { + return false; // only for right arrow + } + + if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) { + return false; // no modifiers allowed + } + + return this.inputBox.inputElement.selectionStart === this.inputBox.value.length; // only when cursor is at the end of the input field value + } + private onType(): void { const value = this.inputBox.value; From 8f1ea9b37ed3fb5f7b1f5b035a300ff4f3c15a63 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 25 Oct 2016 15:45:36 +0200 Subject: [PATCH 037/242] go to next signature help provider when previous didn't yield a result, #13924 update jsdoc, #13924 --- .../browser/parameterHintsWidget.ts | 22 ++++++++++++------- .../parameterHints/common/parameterHints.ts | 22 ++++++++++++++----- src/vs/vscode.d.ts | 4 ++-- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts b/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts index 97223d0987d..456d23279c5 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts @@ -118,16 +118,22 @@ export class ParameterHintsModel extends Disposable { return; } - const support = SignatureHelpProviderRegistry.ordered(model)[0]; - if (!support) { - return; + const allTriggerCharacters: string[] = []; + for (const support of SignatureHelpProviderRegistry.ordered(model)) { + if (Array.isArray(support.signatureHelpTriggerCharacters)) { + allTriggerCharacters.push(...support.signatureHelpTriggerCharacters); + } } - this.triggerCharactersListeners = support.signatureHelpTriggerCharacters.map((ch) => { - return this.editor.addTypingListener(ch, () => { - this.trigger(); - }); - }); + allTriggerCharacters.sort(); + this.triggerCharactersListeners.length = 0; + let lastCh: string; + for (const ch of allTriggerCharacters) { + if (ch !== lastCh) { + lastCh = ch; + this.triggerCharactersListeners.push(this.editor.addTypingListener(ch, () => this.trigger())); + } + } } private onCursorChange(e: ICursorSelectionChangedEvent): void { diff --git a/src/vs/editor/contrib/parameterHints/common/parameterHints.ts b/src/vs/editor/contrib/parameterHints/common/parameterHints.ts index 6d919521de2..569aec7ce40 100644 --- a/src/vs/editor/contrib/parameterHints/common/parameterHints.ts +++ b/src/vs/editor/contrib/parameterHints/common/parameterHints.ts @@ -6,10 +6,11 @@ 'use strict'; import { TPromise } from 'vs/base/common/winjs.base'; +import { onUnexpectedError } from 'vs/base/common/errors'; import { IReadOnlyModel } from 'vs/editor/common/editorCommon'; import { CommonEditorRegistry } from 'vs/editor/common/editorCommonExtensions'; import { SignatureHelp, SignatureHelpProviderRegistry } from 'vs/editor/common/modes'; -import { asWinJsPromise } from 'vs/base/common/async'; +import { asWinJsPromise, sequence } from 'vs/base/common/async'; import { Position } from 'vs/editor/common/core/position'; import { RawContextKey } from 'vs/platform/contextkey/common/contextkey'; @@ -19,13 +20,22 @@ export const Context = { }; export function provideSignatureHelp(model: IReadOnlyModel, position: Position): TPromise { - const support = SignatureHelpProviderRegistry.ordered(model)[0]; - if (!support) { - return TPromise.as(undefined); - } + const supports = SignatureHelpProviderRegistry.ordered(model); + let result: SignatureHelp; - return asWinJsPromise(token => support.provideSignatureHelp(model, position, token)); + return sequence(supports.map(support => () => { + + if (result) { + // stop when there is a result + return; + } + + return asWinJsPromise(token => support.provideSignatureHelp(model, position, token)).then(thisResult => { + result = thisResult; + }, onUnexpectedError); + + })).then(() => result); } CommonEditorRegistry.registerDefaultLanguageCommand('_executeSignatureHelpProvider', provideSignatureHelp); \ No newline at end of file diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index eaa245745a5..538ad400800 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -4107,8 +4107,8 @@ declare module 'vscode' { * Register a signature help provider. * * Multiple providers can be registered for a language. In that case providers are sorted - * by their [score](#languages.match) and the best-matching provider is used. Failure - * of the selected provider will cause a failure of the whole operation. + * by their [score](#languages.match) and called sequentially until a provider returns a + * valid result. * * @param selector A selector that defines the documents this provider is applicable to. * @param provider A signature help provider. From e51139409d8d8c5533376d0f22f6d60c6a687d55 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 25 Oct 2016 15:52:23 +0200 Subject: [PATCH 038/242] update tests for #13924 --- .../node/api/extHostLanguageFeatures.test.ts | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/test/node/api/extHostLanguageFeatures.test.ts b/src/vs/workbench/test/node/api/extHostLanguageFeatures.test.ts index 864d2eb757b..18b8f3667d1 100644 --- a/src/vs/workbench/test/node/api/extHostLanguageFeatures.test.ts +++ b/src/vs/workbench/test/node/api/extHostLanguageFeatures.test.ts @@ -743,6 +743,27 @@ suite('ExtHostLanguageFeatures', function () { // --- parameter hints + test('Parameter Hints, order', function () { + + disposables.push(extHost.registerSignatureHelpProvider(defaultSelector, { + provideSignatureHelp(): any { + return undefined; + } + }, [])); + + disposables.push(extHost.registerSignatureHelpProvider(defaultSelector, { + provideSignatureHelp(): vscode.SignatureHelp { + return new types.SignatureHelp(); + } + }, [])); + + return threadService.sync().then(() => { + + return provideSignatureHelp(model, new EditorPosition(1, 1)).then(value => { + assert.ok(value); + }); + }); + }); test('Parameter Hints, evil provider', function () { disposables.push(extHost.registerSignatureHelpProvider(defaultSelector, { @@ -754,9 +775,7 @@ suite('ExtHostLanguageFeatures', function () { return threadService.sync().then(() => { return provideSignatureHelp(model, new EditorPosition(1, 1)).then(value => { - throw new Error('error expeted'); - }, err => { - assert.equal(err.message, 'evil'); + assert.equal(value, undefined); }); }); }); From 016df96eb026ed936483f30ff09060ad4565905a Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 25 Oct 2016 15:53:01 +0200 Subject: [PATCH 039/242] debug: no need to set initializing state when attaching, it will be done inside the createProcess fixes #14417 --- src/vs/workbench/parts/debug/electron-browser/debugService.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 834ada45019..57ebf85efcd 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -750,7 +750,6 @@ export class DebugService implements debug.IDebugService { return session.attach({ port }); } - this.setStateAndEmit(session.getId(), debug.State.Initializing); return this.configurationManager.getConfiguration(this.viewModel.selectedConfigurationName).then((configuration: debug.IExtHostConfig) => this.doCreateProcess({ type: configuration.type, From 9f3640fe5d286f18740f68a965f1747a47eff9e1 Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 25 Oct 2016 16:01:17 +0200 Subject: [PATCH 040/242] Debug: inform user how to enable expression/hit-count breakpoint fixes #14361 --- src/vs/workbench/parts/debug/browser/breakpointWidget.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/debug/browser/breakpointWidget.ts b/src/vs/workbench/parts/debug/browser/breakpointWidget.ts index 71ca7ad5960..054aad23dac 100644 --- a/src/vs/workbench/parts/debug/browser/breakpointWidget.ts +++ b/src/vs/workbench/parts/debug/browser/breakpointWidget.ts @@ -26,9 +26,9 @@ import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; const $ = dom.$; const CONTEXT_BREAKPOINT_WIDGET_VISIBLE = new RawContextKey('breakpointWidgetVisible', false); const CLOSE_BREAKPOINT_WIDGET_COMMAND_ID = 'closeBreakpointWidget'; -const EXPRESSION_PLACEHOLDER = nls.localize('breakpointWidgetExpressionPlaceholder', "Break when expression evaluates to true"); +const EXPRESSION_PLACEHOLDER = nls.localize('breakpointWidgetExpressionPlaceholder', "Break when expression evaluates to true. 'Enter' to accept, 'esc' to cancel."); const EXPRESSION_ARIA_LABEL = nls.localize('breakpointWidgetAriaLabel', "The program will only stop here if this condition is true. Press Enter to accept or Escape to cancel."); -const HIT_COUNT_PLACEHOLDER = nls.localize('breakpointWidgetHitCountPlaceholder', "Break when hit count condition is met"); +const HIT_COUNT_PLACEHOLDER = nls.localize('breakpointWidgetHitCountPlaceholder', "Break when hit count condition is met. 'Enter' to accept, 'esc' to cancel."); const HIT_COUNT_ARIA_LABEL = nls.localize('breakpointWidgetHitCountAriaLabel', "The program will only stop here if the hit count is met. Press Enter to accept or Escape to cancel."); export class BreakpointWidget extends ZoneWidget { From 708655e3f28073e094794c3a941ae9cb0de8f2d2 Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 25 Oct 2016 16:03:09 +0200 Subject: [PATCH 041/242] debug: improve setting wording fixes #14356 --- .../parts/debug/electron-browser/debug.contribution.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts b/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts index 97cbde99299..65e40fde857 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts @@ -165,12 +165,12 @@ configurationRegistry.registerConfiguration({ properties: { 'debug.allowBreakpointsEverywhere': { type: 'boolean', - description: nls.localize('allowBreakpointsEverywhere', "Allows setting breakpoints for all files, no matter the extension."), + description: nls.localize('allowBreakpointsEverywhere', "Allows setting breakpoint in any file"), default: false }, 'debug.openExplorerOnEnd': { type: 'boolean', - description: nls.localize('openExplorerOnEnd', "Automatically open explorer viewlet on the end of a debug session."), + description: nls.localize('openExplorerOnEnd', "Automatically open explorer viewlet on the end of a debug session"), default: false } } From 847f3426b99a40d33556b58f318b75f15f3ac12a Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 25 Oct 2016 16:15:52 +0200 Subject: [PATCH 042/242] do not use disconnect action for extension host debugging fixes #14355 --- src/vs/workbench/parts/debug/browser/debugActionsWidget.ts | 3 ++- src/vs/workbench/parts/debug/common/debug.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/browser/debugActionsWidget.ts b/src/vs/workbench/parts/debug/browser/debugActionsWidget.ts index dd686efefb8..3802fa674a6 100644 --- a/src/vs/workbench/parts/debug/browser/debugActionsWidget.ts +++ b/src/vs/workbench/parts/debug/browser/debugActionsWidget.ts @@ -5,6 +5,7 @@ import lifecycle = require('vs/base/common/lifecycle'); import errors = require('vs/base/common/errors'); +import * as strings from 'vs/base/common/strings'; import severity from 'vs/base/common/severity'; import builder = require('vs/base/browser/builder'); import dom = require('vs/base/browser/dom'); @@ -185,7 +186,7 @@ export class DebugActionsWidget implements wbext.IWorkbenchContribution { this.actions[0] = state === debug.State.Running ? this.pauseAction : this.continueAction; const process = this.debugService.getViewModel().focusedProcess; - this.actions[5] = process && process.session.requestType === debug.SessionRequestType.ATTACH ? this.disconnectAction : this.stopAction; + this.actions[5] = (process && !strings.equalsIgnoreCase(process.session.configuration.type, 'extensionHost') && process.session.requestType === debug.SessionRequestType.ATTACH) ? this.disconnectAction : this.stopAction; if (process && process.session.configuration.capabilities.supportsStepBack) { if (!this.stepBackAction) { diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index cadd6efb32b..5f6b557f15a 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -72,6 +72,7 @@ export enum SessionRequestType { } export interface ISession { + // TODO@Isidor consider removing this - feels ugly requestType: SessionRequestType; stackTrace(args: DebugProtocol.StackTraceArguments): TPromise; scopes(args: DebugProtocol.ScopesArguments): TPromise; From a0473636de40e951c5a4b6cf9409bad85a3903a1 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 25 Oct 2016 16:20:34 +0200 Subject: [PATCH 043/242] update distro --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 92f491f6e18..ab21bfb4951 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "code-oss-dev", "version": "1.7.0", "electronVersion": "1.3.8", - "distro": "13c73e321237db10a15f0c09e17738aa32aec45f", + "distro": "d0dac3a2a226f976eb5922a930734dd5450d1d17", "author": { "name": "Microsoft Corporation" }, From 2affb9001fb14fcbef8e379cc1fa8fa3cc477ddf Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 25 Oct 2016 16:24:30 +0200 Subject: [PATCH 044/242] fixes #14251 --- src/vs/workbench/parts/git/browser/gitServices.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/git/browser/gitServices.ts b/src/vs/workbench/parts/git/browser/gitServices.ts index fa7a0931bbe..4c2b2987bf0 100644 --- a/src/vs/workbench/parts/git/browser/gitServices.ts +++ b/src/vs/workbench/parts/git/browser/gitServices.ts @@ -351,7 +351,8 @@ export class AutoFetcher implements IAutoFetcher, IDisposable { private loop(): void { this._state = AutoFetcherState.Fetching; - const remotes = this.gitService.getModel().getRemotes(); + const model = this.gitService.getModel(); + const remotes = model ? model.getRemotes() : []; if (remotes.length === 0) { this.timeout = AutoFetcher.MIN_TIMEOUT; From 49b8f747fcee4773d64582ffe8996d2a77330ace Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Tue, 25 Oct 2016 16:31:31 +0200 Subject: [PATCH 045/242] fixes #14354 --- src/vs/workbench/browser/parts/editor/editorStatus.ts | 2 +- .../extensions/electron-browser/extensionsViewlet.ts | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index 5251333b3b4..6d69148db2f 100644 --- a/src/vs/workbench/browser/parts/editor/editorStatus.ts +++ b/src/vs/workbench/browser/parts/editor/editorStatus.ts @@ -690,7 +690,7 @@ export class ShowLanguageExtensionsAction extends Action { return this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) .then(viewlet => { - viewlet.search(`tag:"__ext_${this.extension.replace(/^\./, '')}"`); + viewlet.search(`ext:${this.extension.replace(/^\./, '')}`); viewlet.focus(); }); } diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts index 78b9751230e..249c6404c6d 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts @@ -270,8 +270,12 @@ export class ExtensionsViewlet extends Viewlet implements IExtensionsViewlet { return this.getRecommendationsModel(query, options); } - if (query.value) { - options = assign(options, { text: query.value.substr(0, 200) }); + const text = value = query.value + .replace(/\bext:([^\s]+)\b/g, 'tag:"__ext_$1"') + .substr(0, 200); + + if (text) { + options = assign(options, { text }); } return this.extensionsWorkbenchService.queryGallery(options) From d8743b53e8f24ab37f6807499ee5035a9c6fc0c7 Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 25 Oct 2016 16:43:20 +0200 Subject: [PATCH 046/242] debug: always use the first configuration even if none is chosen fixes #14403 --- src/vs/workbench/parts/debug/common/debug.ts | 15 +++++++++++++++ .../parts/debug/electron-browser/debugService.ts | 2 +- .../parts/debug/node/debugConfigurationManager.ts | 5 +++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 5f6b557f15a..5d3a43932da 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -338,9 +338,24 @@ export interface IRawBreakpointContribution { } export interface IConfigurationManager { + + /** + * Returns a resolved debug configuration. + * If nameOrConfig is null resolves the first configuration and returns it. + */ getConfiguration(nameOrConfig: string | IConfig): TPromise; + + /** + * Opens the launch.json file + */ openConfigFile(sideBySide: boolean): TPromise; + + // TODO@Isidor remove this from the interface loadLaunchConfig(): TPromise; + + /** + * Returns true if breakpoints can be set for a given editor model. Depends on mode. + */ canSetBreakpointsIn(model: editor.IModel): boolean; } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 57ebf85efcd..0bc8171f468 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -111,7 +111,7 @@ export class DebugService implements debug.IDebugService { this.model = new model.Model(this.loadBreakpoints(), this.storageService.getBoolean(DEBUG_BREAKPOINTS_ACTIVATED_KEY, StorageScope.WORKSPACE, true), this.loadFunctionBreakpoints(), this.loadExceptionBreakpoints(), this.loadWatchExpressions()); this.toDispose.push(this.model); - this.viewModel = new viewmodel.ViewModel(this.storageService.get(DEBUG_SELECTED_CONFIG_NAME_KEY, StorageScope.WORKSPACE, 'null')); + this.viewModel = new viewmodel.ViewModel(this.storageService.get(DEBUG_SELECTED_CONFIG_NAME_KEY, StorageScope.WORKSPACE, null)); this.registerListeners(eventService, lifecycleService); } diff --git a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts index 527ff5e75b6..e4d0b451d4f 100644 --- a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts @@ -261,9 +261,10 @@ export class ConfigurationManager implements debug.IConfigurationManager { return result; } // if the configuration name is not set yet, take the first launch config (can happen if debug viewlet has not been opened yet). - const filtered = nameOrConfig ? config.configurations.filter(cfg => cfg.name === nameOrConfig) : [config.configurations[0]]; + const filtered = config.configurations.filter(cfg => cfg.name === nameOrConfig); - result = filtered.length === 1 ? objects.deepClone(filtered[0]) : null; + result = filtered.length === 1 ? filtered[0] : config.configurations[0]; + result = objects.deepClone(result); if (config && result) { result.debugServer = config.debugServer; } From 49fb2f88b5b858b8bf2b11c517b072038c47d949 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Tue, 25 Oct 2016 16:50:08 +0200 Subject: [PATCH 047/242] Fixes #14431: Render combining marks with other representative chars --- src/vs/base/common/charCode.ts | 185 ++++++++++++++++++ .../electron-browser/nativeKeymap.ts | 84 ++++++-- 2 files changed, 255 insertions(+), 14 deletions(-) diff --git a/src/vs/base/common/charCode.ts b/src/vs/base/common/charCode.ts index 4989d37e56c..51307984559 100644 --- a/src/vs/base/common/charCode.ts +++ b/src/vs/base/common/charCode.ts @@ -222,12 +222,197 @@ export const enum CharCode { */ Tilde = 126, + U_Combining_Grave_Accent = 0x0300, // U+0300 Combining Grave Accent + U_Combining_Acute_Accent = 0x0301, // U+0301 Combining Acute Accent + U_Combining_Circumflex_Accent = 0x0302, // U+0302 Combining Circumflex Accent + U_Combining_Tilde = 0x0303, // U+0303 Combining Tilde + U_Combining_Macron = 0x0304, // U+0304 Combining Macron + U_Combining_Overline = 0x0305, // U+0305 Combining Overline + U_Combining_Breve = 0x0306, // U+0306 Combining Breve + U_Combining_Dot_Above = 0x0307, // U+0307 Combining Dot Above + U_Combining_Diaeresis = 0x0308, // U+0308 Combining Diaeresis + U_Combining_Hook_Above = 0x0309, // U+0309 Combining Hook Above + U_Combining_Ring_Above = 0x030A, // U+030A Combining Ring Above + U_Combining_Double_Acute_Accent = 0x030B, // U+030B Combining Double Acute Accent + U_Combining_Caron = 0x030C, // U+030C Combining Caron + U_Combining_Vertical_Line_Above = 0x030D, // U+030D Combining Vertical Line Above + U_Combining_Double_Vertical_Line_Above = 0x030E, // U+030E Combining Double Vertical Line Above + U_Combining_Double_Grave_Accent = 0x030F, // U+030F Combining Double Grave Accent + U_Combining_Candrabindu = 0x0310, // U+0310 Combining Candrabindu + U_Combining_Inverted_Breve = 0x0311, // U+0311 Combining Inverted Breve + U_Combining_Turned_Comma_Above = 0x0312, // U+0312 Combining Turned Comma Above + U_Combining_Comma_Above = 0x0313, // U+0313 Combining Comma Above + U_Combining_Reversed_Comma_Above = 0x0314, // U+0314 Combining Reversed Comma Above + U_Combining_Comma_Above_Right = 0x0315, // U+0315 Combining Comma Above Right + U_Combining_Grave_Accent_Below = 0x0316, // U+0316 Combining Grave Accent Below + U_Combining_Acute_Accent_Below = 0x0317, // U+0317 Combining Acute Accent Below + U_Combining_Left_Tack_Below = 0x0318, // U+0318 Combining Left Tack Below + U_Combining_Right_Tack_Below = 0x0319, // U+0319 Combining Right Tack Below + U_Combining_Left_Angle_Above = 0x031A, // U+031A Combining Left Angle Above + U_Combining_Horn = 0x031B, // U+031B Combining Horn + U_Combining_Left_Half_Ring_Below = 0x031C, // U+031C Combining Left Half Ring Below + U_Combining_Up_Tack_Below = 0x031D, // U+031D Combining Up Tack Below + U_Combining_Down_Tack_Below = 0x031E, // U+031E Combining Down Tack Below + U_Combining_Plus_Sign_Below = 0x031F, // U+031F Combining Plus Sign Below + U_Combining_Minus_Sign_Below = 0x0320, // U+0320 Combining Minus Sign Below + U_Combining_Palatalized_Hook_Below = 0x0321, // U+0321 Combining Palatalized Hook Below + U_Combining_Retroflex_Hook_Below = 0x0322, // U+0322 Combining Retroflex Hook Below + U_Combining_Dot_Below = 0x0323, // U+0323 Combining Dot Below + U_Combining_Diaeresis_Below = 0x0324, // U+0324 Combining Diaeresis Below + U_Combining_Ring_Below = 0x0325, // U+0325 Combining Ring Below + U_Combining_Comma_Below = 0x0326, // U+0326 Combining Comma Below + U_Combining_Cedilla = 0x0327, // U+0327 Combining Cedilla + U_Combining_Ogonek = 0x0328, // U+0328 Combining Ogonek + U_Combining_Vertical_Line_Below = 0x0329, // U+0329 Combining Vertical Line Below + U_Combining_Bridge_Below = 0x032A, // U+032A Combining Bridge Below + U_Combining_Inverted_Double_Arch_Below = 0x032B, // U+032B Combining Inverted Double Arch Below + U_Combining_Caron_Below = 0x032C, // U+032C Combining Caron Below + U_Combining_Circumflex_Accent_Below = 0x032D, // U+032D Combining Circumflex Accent Below + U_Combining_Breve_Below = 0x032E, // U+032E Combining Breve Below + U_Combining_Inverted_Breve_Below = 0x032F, // U+032F Combining Inverted Breve Below + U_Combining_Tilde_Below = 0x0330, // U+0330 Combining Tilde Below + U_Combining_Macron_Below = 0x0331, // U+0331 Combining Macron Below + U_Combining_Low_Line = 0x0332, // U+0332 Combining Low Line + U_Combining_Double_Low_Line = 0x0333, // U+0333 Combining Double Low Line + U_Combining_Tilde_Overlay = 0x0334, // U+0334 Combining Tilde Overlay + U_Combining_Short_Stroke_Overlay = 0x0335, // U+0335 Combining Short Stroke Overlay + U_Combining_Long_Stroke_Overlay = 0x0336, // U+0336 Combining Long Stroke Overlay + U_Combining_Short_Solidus_Overlay = 0x0337, // U+0337 Combining Short Solidus Overlay + U_Combining_Long_Solidus_Overlay = 0x0338, // U+0338 Combining Long Solidus Overlay + U_Combining_Right_Half_Ring_Below = 0x0339, // U+0339 Combining Right Half Ring Below + U_Combining_Inverted_Bridge_Below = 0x033A, // U+033A Combining Inverted Bridge Below + U_Combining_Square_Below = 0x033B, // U+033B Combining Square Below + U_Combining_Seagull_Below = 0x033C, // U+033C Combining Seagull Below + U_Combining_X_Above = 0x033D, // U+033D Combining X Above + U_Combining_Vertical_Tilde = 0x033E, // U+033E Combining Vertical Tilde + U_Combining_Double_Overline = 0x033F, // U+033F Combining Double Overline + U_Combining_Grave_Tone_Mark = 0x0340, // U+0340 Combining Grave Tone Mark + U_Combining_Acute_Tone_Mark = 0x0341, // U+0341 Combining Acute Tone Mark + U_Combining_Greek_Perispomeni = 0x0342, // U+0342 Combining Greek Perispomeni + U_Combining_Greek_Koronis = 0x0343, // U+0343 Combining Greek Koronis + U_Combining_Greek_Dialytika_Tonos = 0x0344, // U+0344 Combining Greek Dialytika Tonos + U_Combining_Greek_Ypogegrammeni = 0x0345, // U+0345 Combining Greek Ypogegrammeni + U_Combining_Bridge_Above = 0x0346, // U+0346 Combining Bridge Above + U_Combining_Equals_Sign_Below = 0x0347, // U+0347 Combining Equals Sign Below + U_Combining_Double_Vertical_Line_Below = 0x0348, // U+0348 Combining Double Vertical Line Below + U_Combining_Left_Angle_Below = 0x0349, // U+0349 Combining Left Angle Below + U_Combining_Not_Tilde_Above = 0x034A, // U+034A Combining Not Tilde Above + U_Combining_Homothetic_Above = 0x034B, // U+034B Combining Homothetic Above + U_Combining_Almost_Equal_To_Above = 0x034C, // U+034C Combining Almost Equal To Above + U_Combining_Left_Right_Arrow_Below = 0x034D, // U+034D Combining Left Right Arrow Below + U_Combining_Upwards_Arrow_Below = 0x034E, // U+034E Combining Upwards Arrow Below + U_Combining_Grapheme_Joiner = 0x034F, // U+034F Combining Grapheme Joiner + U_Combining_Right_Arrowhead_Above = 0x0350, // U+0350 Combining Right Arrowhead Above + U_Combining_Left_Half_Ring_Above = 0x0351, // U+0351 Combining Left Half Ring Above + U_Combining_Fermata = 0x0352, // U+0352 Combining Fermata + U_Combining_X_Below = 0x0353, // U+0353 Combining X Below + U_Combining_Left_Arrowhead_Below = 0x0354, // U+0354 Combining Left Arrowhead Below + U_Combining_Right_Arrowhead_Below = 0x0355, // U+0355 Combining Right Arrowhead Below + U_Combining_Right_Arrowhead_And_Up_Arrowhead_Below = 0x0356, // U+0356 Combining Right Arrowhead And Up Arrowhead Below + U_Combining_Right_Half_Ring_Above = 0x0357, // U+0357 Combining Right Half Ring Above + U_Combining_Dot_Above_Right = 0x0358, // U+0358 Combining Dot Above Right + U_Combining_Asterisk_Below = 0x0359, // U+0359 Combining Asterisk Below + U_Combining_Double_Ring_Below = 0x035A, // U+035A Combining Double Ring Below + U_Combining_Zigzag_Above = 0x035B, // U+035B Combining Zigzag Above + U_Combining_Double_Breve_Below = 0x035C, // U+035C Combining Double Breve Below + U_Combining_Double_Breve = 0x035D, // U+035D Combining Double Breve + U_Combining_Double_Macron = 0x035E, // U+035E Combining Double Macron + U_Combining_Double_Macron_Below = 0x035F, // U+035F Combining Double Macron Below + U_Combining_Double_Tilde = 0x0360, // U+0360 Combining Double Tilde + U_Combining_Double_Inverted_Breve = 0x0361, // U+0361 Combining Double Inverted Breve + U_Combining_Double_Rightwards_Arrow_Below = 0x0362, // U+0362 Combining Double Rightwards Arrow Below + U_Combining_Latin_Small_Letter_A = 0x0363, // U+0363 Combining Latin Small Letter A + U_Combining_Latin_Small_Letter_E = 0x0364, // U+0364 Combining Latin Small Letter E + U_Combining_Latin_Small_Letter_I = 0x0365, // U+0365 Combining Latin Small Letter I + U_Combining_Latin_Small_Letter_O = 0x0366, // U+0366 Combining Latin Small Letter O + U_Combining_Latin_Small_Letter_U = 0x0367, // U+0367 Combining Latin Small Letter U + U_Combining_Latin_Small_Letter_C = 0x0368, // U+0368 Combining Latin Small Letter C + U_Combining_Latin_Small_Letter_D = 0x0369, // U+0369 Combining Latin Small Letter D + U_Combining_Latin_Small_Letter_H = 0x036A, // U+036A Combining Latin Small Letter H + U_Combining_Latin_Small_Letter_M = 0x036B, // U+036B Combining Latin Small Letter M + U_Combining_Latin_Small_Letter_R = 0x036C, // U+036C Combining Latin Small Letter R + U_Combining_Latin_Small_Letter_T = 0x036D, // U+036D Combining Latin Small Letter T + U_Combining_Latin_Small_Letter_V = 0x036E, // U+036E Combining Latin Small Letter V + U_Combining_Latin_Small_Letter_X = 0x036F, // U+036F Combining Latin Small Letter X + /** * Unicode Character 'LINE SEPARATOR' (U+2028) * http://www.fileformat.info/info/unicode/char/2028/index.htm */ LINE_SEPARATOR_2028 = 8232, + // http://www.fileformat.info/info/unicode/category/Sk/list.htm + U_CIRCUMFLEX = 0x005E, // U+005E CIRCUMFLEX + U_GRAVE_ACCENT = 0x0060, // U+0060 GRAVE ACCENT + U_DIAERESIS = 0x00A8, // U+00A8 DIAERESIS + U_MACRON = 0x00AF, // U+00AF MACRON + U_ACUTE_ACCENT = 0x00B4, // U+00B4 ACUTE ACCENT + U_CEDILLA = 0x00B8, // U+00B8 CEDILLA + U_MODIFIER_LETTER_LEFT_ARROWHEAD = 0x02C2, // U+02C2 MODIFIER LETTER LEFT ARROWHEAD + U_MODIFIER_LETTER_RIGHT_ARROWHEAD = 0x02C3, // U+02C3 MODIFIER LETTER RIGHT ARROWHEAD + U_MODIFIER_LETTER_UP_ARROWHEAD = 0x02C4, // U+02C4 MODIFIER LETTER UP ARROWHEAD + U_MODIFIER_LETTER_DOWN_ARROWHEAD = 0x02C5, // U+02C5 MODIFIER LETTER DOWN ARROWHEAD + U_MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING = 0x02D2, // U+02D2 MODIFIER LETTER CENTRED RIGHT HALF RING + U_MODIFIER_LETTER_CENTRED_LEFT_HALF_RING = 0x02D3, // U+02D3 MODIFIER LETTER CENTRED LEFT HALF RING + U_MODIFIER_LETTER_UP_TACK = 0x02D4, // U+02D4 MODIFIER LETTER UP TACK + U_MODIFIER_LETTER_DOWN_TACK = 0x02D5, // U+02D5 MODIFIER LETTER DOWN TACK + U_MODIFIER_LETTER_PLUS_SIGN = 0x02D6, // U+02D6 MODIFIER LETTER PLUS SIGN + U_MODIFIER_LETTER_MINUS_SIGN = 0x02D7, // U+02D7 MODIFIER LETTER MINUS SIGN + U_BREVE = 0x02D8, // U+02D8 BREVE + U_DOT_ABOVE = 0x02D9, // U+02D9 DOT ABOVE + U_RING_ABOVE = 0x02DA, // U+02DA RING ABOVE + U_OGONEK = 0x02DB, // U+02DB OGONEK + U_SMALL_TILDE = 0x02DC, // U+02DC SMALL TILDE + U_DOUBLE_ACUTE_ACCENT = 0x02DD, // U+02DD DOUBLE ACUTE ACCENT + U_MODIFIER_LETTER_RHOTIC_HOOK = 0x02DE, // U+02DE MODIFIER LETTER RHOTIC HOOK + U_MODIFIER_LETTER_CROSS_ACCENT = 0x02DF, // U+02DF MODIFIER LETTER CROSS ACCENT + U_MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR = 0x02E5, // U+02E5 MODIFIER LETTER EXTRA-HIGH TONE BAR + U_MODIFIER_LETTER_HIGH_TONE_BAR = 0x02E6, // U+02E6 MODIFIER LETTER HIGH TONE BAR + U_MODIFIER_LETTER_MID_TONE_BAR = 0x02E7, // U+02E7 MODIFIER LETTER MID TONE BAR + U_MODIFIER_LETTER_LOW_TONE_BAR = 0x02E8, // U+02E8 MODIFIER LETTER LOW TONE BAR + U_MODIFIER_LETTER_EXTRA_LOW_TONE_BAR = 0x02E9, // U+02E9 MODIFIER LETTER EXTRA-LOW TONE BAR + U_MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK = 0x02EA, // U+02EA MODIFIER LETTER YIN DEPARTING TONE MARK + U_MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK = 0x02EB, // U+02EB MODIFIER LETTER YANG DEPARTING TONE MARK + U_MODIFIER_LETTER_UNASPIRATED = 0x02ED, // U+02ED MODIFIER LETTER UNASPIRATED + U_MODIFIER_LETTER_LOW_DOWN_ARROWHEAD = 0x02EF, // U+02EF MODIFIER LETTER LOW DOWN ARROWHEAD + U_MODIFIER_LETTER_LOW_UP_ARROWHEAD = 0x02F0, // U+02F0 MODIFIER LETTER LOW UP ARROWHEAD + U_MODIFIER_LETTER_LOW_LEFT_ARROWHEAD = 0x02F1, // U+02F1 MODIFIER LETTER LOW LEFT ARROWHEAD + U_MODIFIER_LETTER_LOW_RIGHT_ARROWHEAD = 0x02F2, // U+02F2 MODIFIER LETTER LOW RIGHT ARROWHEAD + U_MODIFIER_LETTER_LOW_RING = 0x02F3, // U+02F3 MODIFIER LETTER LOW RING + U_MODIFIER_LETTER_MIDDLE_GRAVE_ACCENT = 0x02F4, // U+02F4 MODIFIER LETTER MIDDLE GRAVE ACCENT + U_MODIFIER_LETTER_MIDDLE_DOUBLE_GRAVE_ACCENT = 0x02F5, // U+02F5 MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT + U_MODIFIER_LETTER_MIDDLE_DOUBLE_ACUTE_ACCENT = 0x02F6, // U+02F6 MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT + U_MODIFIER_LETTER_LOW_TILDE = 0x02F7, // U+02F7 MODIFIER LETTER LOW TILDE + U_MODIFIER_LETTER_RAISED_COLON = 0x02F8, // U+02F8 MODIFIER LETTER RAISED COLON + U_MODIFIER_LETTER_BEGIN_HIGH_TONE = 0x02F9, // U+02F9 MODIFIER LETTER BEGIN HIGH TONE + U_MODIFIER_LETTER_END_HIGH_TONE = 0x02FA, // U+02FA MODIFIER LETTER END HIGH TONE + U_MODIFIER_LETTER_BEGIN_LOW_TONE = 0x02FB, // U+02FB MODIFIER LETTER BEGIN LOW TONE + U_MODIFIER_LETTER_END_LOW_TONE = 0x02FC, // U+02FC MODIFIER LETTER END LOW TONE + U_MODIFIER_LETTER_SHELF = 0x02FD, // U+02FD MODIFIER LETTER SHELF + U_MODIFIER_LETTER_OPEN_SHELF = 0x02FE, // U+02FE MODIFIER LETTER OPEN SHELF + U_MODIFIER_LETTER_LOW_LEFT_ARROW = 0x02FF, // U+02FF MODIFIER LETTER LOW LEFT ARROW + U_GREEK_LOWER_NUMERAL_SIGN = 0x0375, // U+0375 GREEK LOWER NUMERAL SIGN + U_GREEK_TONOS = 0x0384, // U+0384 GREEK TONOS + U_GREEK_DIALYTIKA_TONOS = 0x0385, // U+0385 GREEK DIALYTIKA TONOS + U_GREEK_KORONIS = 0x1FBD, // U+1FBD GREEK KORONIS + U_GREEK_PSILI = 0x1FBF, // U+1FBF GREEK PSILI + U_GREEK_PERISPOMENI = 0x1FC0, // U+1FC0 GREEK PERISPOMENI + U_GREEK_DIALYTIKA_AND_PERISPOMENI = 0x1FC1, // U+1FC1 GREEK DIALYTIKA AND PERISPOMENI + U_GREEK_PSILI_AND_VARIA = 0x1FCD, // U+1FCD GREEK PSILI AND VARIA + U_GREEK_PSILI_AND_OXIA = 0x1FCE, // U+1FCE GREEK PSILI AND OXIA + U_GREEK_PSILI_AND_PERISPOMENI = 0x1FCF, // U+1FCF GREEK PSILI AND PERISPOMENI + U_GREEK_DASIA_AND_VARIA = 0x1FDD, // U+1FDD GREEK DASIA AND VARIA + U_GREEK_DASIA_AND_OXIA = 0x1FDE, // U+1FDE GREEK DASIA AND OXIA + U_GREEK_DASIA_AND_PERISPOMENI = 0x1FDF, // U+1FDF GREEK DASIA AND PERISPOMENI + U_GREEK_DIALYTIKA_AND_VARIA = 0x1FED, // U+1FED GREEK DIALYTIKA AND VARIA + U_GREEK_DIALYTIKA_AND_OXIA = 0x1FEE, // U+1FEE GREEK DIALYTIKA AND OXIA + U_GREEK_VARIA = 0x1FEF, // U+1FEF GREEK VARIA + U_GREEK_OXIA = 0x1FFD, // U+1FFD GREEK OXIA + U_GREEK_DASIA = 0x1FFE, // U+1FFE GREEK DASIA + + + U_OVERLINE = 0x203E, // Unicode Character 'OVERLINE' + /** * UTF-8 BOM * Unicode Character 'ZERO WIDTH NO-BREAK SPACE' (U+FEFF) diff --git a/src/vs/workbench/services/keybinding/electron-browser/nativeKeymap.ts b/src/vs/workbench/services/keybinding/electron-browser/nativeKeymap.ts index 3c120f45772..c985edf48b2 100644 --- a/src/vs/workbench/services/keybinding/electron-browser/nativeKeymap.ts +++ b/src/vs/workbench/services/keybinding/electron-browser/nativeKeymap.ts @@ -6,6 +6,7 @@ import * as nativeKeymap from 'native-keymap'; import { KeyCode, KeyCodeUtils } from 'vs/base/common/keyCodes'; +import { CharCode } from 'vs/base/common/charCode'; import { IKeyBindingLabelProvider, MacUIKeyLabelProvider, ClassicUIKeyLabelProvider, AriaKeyLabelProvider } from 'vs/base/common/keybinding'; import { lookupKeyCode, setExtractKeyCode } from 'vs/base/browser/keyboardEvent'; import Platform = require('vs/base/common/platform'); @@ -355,8 +356,61 @@ export function getNativeLabelProvider(): IKeyBindingLabelProvider { return nativeLabelProvider; } -let nativeLabelRemaps: string[] = null; -function getNativeLabelProviderRemaps(): string[] { +class NativeLabel { + + public static Empty = new NativeLabel('', '', '', ''); + + private readonly _rendered: string; + + constructor(value: string, withShift: string, withAltGr: string, withShiftAltGr: string) { + this._rendered = value || withShift; + this._rendered = NativeLabel._massageRenderedKey(this._rendered); + } + + /** + * Very often, keyboards generate combining diacritical marks + * They reside in the range 0300..036F + * See ftp://ftp.unicode.org/Public/UNIDATA/Blocks.txt + * See https://en.wikipedia.org/wiki/Combining_Diacritical_Marks + */ + private static _massageRenderedKey(str: string): string { + if (str.length !== 1) { + return str; + } + + return String.fromCharCode(this._combiningToRegular(str.charCodeAt(0))); + } + + /** + * Attempt to map a combining character to a regular one that renders the same way. + * + * To the brave person following me: Good Luck! + * https://www.compart.com/en/unicode/bidiclass/NSM + */ + private static _combiningToRegular(charCode: number): number { + switch (charCode) { + case CharCode.U_Combining_Grave_Accent: return CharCode.U_GRAVE_ACCENT; + case CharCode.U_Combining_Acute_Accent: return CharCode.U_ACUTE_ACCENT; + case CharCode.U_Combining_Circumflex_Accent: return CharCode.U_CIRCUMFLEX; + case CharCode.U_Combining_Tilde: return CharCode.U_SMALL_TILDE; + case CharCode.U_Combining_Macron: return CharCode.U_MACRON; + case CharCode.U_Combining_Overline: return CharCode.U_OVERLINE; + case CharCode.U_Combining_Breve: return CharCode.U_BREVE; + case CharCode.U_Combining_Dot_Above: return CharCode.U_DOT_ABOVE; + case CharCode.U_Combining_Diaeresis: return CharCode.U_DIAERESIS; + case CharCode.U_Combining_Ring_Above: return CharCode.U_RING_ABOVE; + case CharCode.U_Combining_Double_Acute_Accent: return CharCode.U_DOUBLE_ACUTE_ACCENT; + } + return charCode; + } + + public render(): string { + return this._rendered; + } +} + +let nativeLabelRemaps: NativeLabel[] = null; +function getNativeLabelProviderRemaps(): NativeLabel[] { if (!nativeLabelRemaps) { // See https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx // See https://github.com/Microsoft/node-native-keymap/blob/master/deps/chromium/keyboard_codes_win.h @@ -387,12 +441,14 @@ function getNativeLabelProviderRemaps(): string[] { let nativeMapping = nativeMappings[i]; if (interestingKeyCodes[nativeMapping.key_code]) { - let newValue = nativeMapping.value || nativeMapping.withShift; - if (newValue.length > 0) { + if (nativeMapping.value.length > 0 || nativeMapping.withShift.length > 0) { hadRemap = true; - nativeLabelRemaps[NATIVE_KEY_CODE_TO_KEY_CODE[nativeMapping.key_code]] = newValue; - } else { - // console.warn('invalid remap for ', nativeMapping); + nativeLabelRemaps[NATIVE_KEY_CODE_TO_KEY_CODE[nativeMapping.key_code]] = new NativeLabel( + nativeMapping.value, + nativeMapping.withShift, + nativeMapping.withAltGr, + nativeMapping.withShiftAltGr + ); } } } @@ -401,7 +457,7 @@ function getNativeLabelProviderRemaps(): string[] { for (let interestingKeyCode in interestingKeyCodes) { if (interestingKeyCodes.hasOwnProperty(interestingKeyCode)) { let keyCode = NATIVE_KEY_CODE_TO_KEY_CODE[interestingKeyCode]; - nativeLabelRemaps[keyCode] = nativeLabelRemaps[keyCode] || ''; + nativeLabelRemaps[keyCode] = nativeLabelRemaps[keyCode] || NativeLabel.Empty; } } } @@ -411,39 +467,39 @@ function getNativeLabelProviderRemaps(): string[] { } class NativeMacUIKeyLabelProvider extends MacUIKeyLabelProvider { - constructor(private remaps: string[]) { + constructor(private remaps: NativeLabel[]) { super(); } public getLabelForKey(keyCode: KeyCode): string { if (this.remaps[keyCode] !== null) { - return this.remaps[keyCode]; + return this.remaps[keyCode].render(); } return super.getLabelForKey(keyCode); } } class NativeClassicUIKeyLabelProvider extends ClassicUIKeyLabelProvider { - constructor(private remaps: string[]) { + constructor(private remaps: NativeLabel[]) { super(); } public getLabelForKey(keyCode: KeyCode): string { if (this.remaps[keyCode] !== null) { - return this.remaps[keyCode]; + return this.remaps[keyCode].render(); } return super.getLabelForKey(keyCode); } } class NativeAriaKeyLabelProvider extends AriaKeyLabelProvider { - constructor(private remaps: string[]) { + constructor(private remaps: NativeLabel[]) { super(); } public getLabelForKey(keyCode: KeyCode): string { if (this.remaps[keyCode] !== null) { - return this.remaps[keyCode]; + return this.remaps[keyCode].render(); } return super.getLabelForKey(keyCode); } From 937e83ffc4ef78767f087b579ad8eba55d5a3480 Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 25 Oct 2016 16:50:48 +0200 Subject: [PATCH 048/242] loc clarification fixes #14302 --- .../parts/debug/electron-browser/debug.contribution.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts b/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts index 65e40fde857..1b560aed48e 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts @@ -165,12 +165,12 @@ configurationRegistry.registerConfiguration({ properties: { 'debug.allowBreakpointsEverywhere': { type: 'boolean', - description: nls.localize('allowBreakpointsEverywhere', "Allows setting breakpoint in any file"), + description: nls.localize({ comment: ['This is the description for a setting'], key: 'allowBreakpointsEverywhere' }, "Allows setting breakpoint in any file"), default: false }, 'debug.openExplorerOnEnd': { type: 'boolean', - description: nls.localize('openExplorerOnEnd', "Automatically open explorer viewlet on the end of a debug session"), + description: nls.localize({ comment: ['This is the description for a setting'], key: 'openExplorerOnEnd' }, "Automatically open explorer viewlet on the end of a debug session"), default: false } } From 1504c8beef1f7f9838000b9e11161496703558eb Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 25 Oct 2016 17:00:07 +0200 Subject: [PATCH 049/242] fixes #14254 --- .../debug/electron-browser/debugService.ts | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 0bc8171f468..bcb6278f211 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -261,29 +261,32 @@ export class DebugService implements debug.IDebugService { return; } - const thread = response.body.threads.filter(t => t.id === threadId).pop(); + const rawThread = response.body.threads.filter(t => t.id === threadId).pop(); this.model.rawUpdate({ sessionId: session.getId(), - thread, + thread: rawThread, threadId, stoppedDetails: event.body, allThreadsStopped: event.body.allThreadsStopped }); const process = this.model.getProcesses().filter(p => p.getId() === session.getId()).pop(); - process.getThread(threadId).getCallStack().then(callStack => { - if (callStack.length > 0) { - // focus first stack frame from top that has source location - const stackFrameToFocus = arrays.first(callStack, sf => sf.source && sf.source.available, callStack[0]); - this.setFocusedStackFrameAndEvaluate(stackFrameToFocus).done(null, errors.onUnexpectedError); - this.windowService.getWindow().focus(); - aria.alert(nls.localize('debuggingPaused', "Debugging paused, reason {0}, {1} {2}", event.body.reason, stackFrameToFocus.source ? stackFrameToFocus.source.name : '', stackFrameToFocus.lineNumber)); + const thread = process && process.getThread(threadId); + if (thread) { + thread.getCallStack().then(callStack => { + if (callStack.length > 0) { + // focus first stack frame from top that has source location + const stackFrameToFocus = arrays.first(callStack, sf => sf.source && sf.source.available, callStack[0]); + this.setFocusedStackFrameAndEvaluate(stackFrameToFocus).done(null, errors.onUnexpectedError); + this.windowService.getWindow().focus(); + aria.alert(nls.localize('debuggingPaused', "Debugging paused, reason {0}, {1} {2}", event.body.reason, stackFrameToFocus.source ? stackFrameToFocus.source.name : '', stackFrameToFocus.lineNumber)); - return this.openOrRevealSource(stackFrameToFocus.source, stackFrameToFocus.lineNumber, false, false); - } else { - this.setFocusedStackFrameAndEvaluate(null).done(null, errors.onUnexpectedError); - } - }); + return this.openOrRevealSource(stackFrameToFocus.source, stackFrameToFocus.lineNumber, false, false); + } else { + this.setFocusedStackFrameAndEvaluate(null).done(null, errors.onUnexpectedError); + } + }); + } }, errors.onUnexpectedError); })); From b6b7bfe4fb91736993ab03f56db1f58f24322867 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Tue, 25 Oct 2016 17:05:41 +0200 Subject: [PATCH 050/242] Fixes #14427: Add null guard --- src/vs/editor/browser/viewParts/lines/viewLine.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vs/editor/browser/viewParts/lines/viewLine.ts b/src/vs/editor/browser/viewParts/lines/viewLine.ts index ff9a1f01482..3350b3587aa 100644 --- a/src/vs/editor/browser/viewParts/lines/viewLine.ts +++ b/src/vs/editor/browser/viewParts/lines/viewLine.ts @@ -159,6 +159,9 @@ export class ViewLine implements IVisibleLineData { // --- end IVisibleLineData public getWidth(): number { + if (!this._renderedViewLine) { + return 0; + } return this._renderedViewLine.getWidth(); } From 492fda671665d921516528ac3e36a34fb974fdb7 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 25 Oct 2016 17:22:53 +0200 Subject: [PATCH 051/242] escape from old rewrite logic by adding a stupid comment, #14378 --- src/vs/vscode.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 538ad400800..0dfe0335a68 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -declare module 'vscode' { +declare module 'vscode' { // /** * The version of the editor. From 988968870172253522e61e63a3811fd660021676 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 25 Oct 2016 17:26:20 +0200 Subject: [PATCH 052/242] Revert "escape from old rewrite logic by adding a stupid comment, #14378" This reverts commit 492fda671665d921516528ac3e36a34fb974fdb7. --- src/vs/vscode.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 0dfe0335a68..538ad400800 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -declare module 'vscode' { // +declare module 'vscode' { /** * The version of the editor. From b68f19c7bc96f2dfed039694c4ab90be47b939f5 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 25 Oct 2016 17:41:17 +0200 Subject: [PATCH 053/242] don't wrap error messages, fixes #14407 --- src/vs/editor/contrib/gotoError/browser/gotoError.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/contrib/gotoError/browser/gotoError.css b/src/vs/editor/contrib/gotoError/browser/gotoError.css index df43c3ebdd9..39de1f8fa7b 100644 --- a/src/vs/editor/contrib/gotoError/browser/gotoError.css +++ b/src/vs/editor/contrib/gotoError/browser/gotoError.css @@ -9,6 +9,7 @@ background-color: white; overflow: hidden; text-overflow: ellipsis; + white-space: nowrap; } .monaco-editor.vs-dark .marker-widget { @@ -36,5 +37,5 @@ } .monaco-editor .marker-widget .descriptioncontainer { - white-space: pre-wrap; + white-space: pre; } From 264a178cc23335ac193a8477e9dc81f8fa3ff851 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Tue, 25 Oct 2016 17:53:33 +0200 Subject: [PATCH 054/242] property set overwriteBefore, fixes #14445 --- src/vs/editor/common/services/editorSimpleWorker.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/common/services/editorSimpleWorker.ts b/src/vs/editor/common/services/editorSimpleWorker.ts index 131bdbd3e3d..c246970f62a 100644 --- a/src/vs/editor/common/services/editorSimpleWorker.ts +++ b/src/vs/editor/common/services/editorSimpleWorker.ts @@ -265,7 +265,8 @@ export abstract class BaseEditorSimpleWorker { type: 'text', label: word, insertText: word, - noAutoAccept: true + noAutoAccept: true, + overwriteBefore: currentWord.length }; }); From bdd1a312855ef9ca1bc221fb5fb611421b0766ae Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Tue, 25 Oct 2016 18:02:40 +0200 Subject: [PATCH 055/242] Fixes #14253: Uncaught TypeError: Cannot read property 'getLineLastNonWhitespaceColumn' of null --- src/vs/editor/browser/widget/diffEditorWidget.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 5229ebc3ca3..f6f7c2191f0 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -825,6 +825,9 @@ export class DiffEditorWidget extends EventEmitter implements editorBrowser.IDif } private _updateDecorations(): void { + if (!this.originalEditor.getModel() || !this.modifiedEditor.getModel()) { + return; + } var lineChanges = this._lineChanges || []; var foreignOriginal = this._originalEditorState.getForeignViewZones(this.originalEditor.getWhitespaces()); From 43e003762a1c77803486b381b6b3ad009fb2d1dd Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 18:45:36 +0200 Subject: [PATCH 056/242] #14379 ExtensionsView: Move secondary actions to context menu --- .../electron-browser/extensionsActions.ts | 179 +++++++++++++++--- .../electron-browser/extensionsList.ts | 26 ++- .../media/extensionActions.css | 15 ++ .../electron-browser/media/manage-inverse.svg | 1 + .../electron-browser/media/manage.svg | 1 + 5 files changed, 185 insertions(+), 37 deletions(-) create mode 100644 src/vs/workbench/parts/extensions/electron-browser/media/manage-inverse.svg create mode 100644 src/vs/workbench/parts/extensions/electron-browser/media/manage.svg diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 29ad2cfa81b..fe57d3c015c 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -11,7 +11,7 @@ import * as DOM from 'vs/base/browser/dom'; import severity from 'vs/base/common/severity'; import paths = require('vs/base/common/paths'); import Event from 'vs/base/common/event'; -import { ActionItem, IActionItem } from 'vs/base/browser/ui/actionbar/actionbar'; +import { ActionItem, IActionItem, Separator } from 'vs/base/browser/ui/actionbar/actionbar'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { ReloadWindowAction } from 'vs/workbench/electron-browser/actions'; @@ -282,7 +282,7 @@ export class DropDownMenuActionItem extends ActionItem { private disposables: IDisposable[] = []; private _extension: IExtension; - constructor(action: IAction, private menuActions: IExtensionAction[], private contextMenuService: IContextMenuService) { + constructor(action: IAction, private menuActions: IAction[], private contextMenuService: IContextMenuService) { super(null, action, { icon: true, label: true }); this.disposables = [...menuActions]; } @@ -292,16 +292,19 @@ export class DropDownMenuActionItem extends ActionItem { set extension(extension: IExtension) { this._extension = extension; for (const menuAction of this.menuActions) { - menuAction.extension = extension; + if (!(menuAction instanceof Separator)) { + (menuAction).extension = extension; + } } } public showMenu(): void { + const actions = this.menuActions.filter(a => a instanceof Separator || a.enabled); let elementPosition = DOM.getDomNodePagePosition(this.builder.getHTMLElement()); const anchor = { x: elementPosition.left, y: elementPosition.top + elementPosition.height + 10 }; this.contextMenuService.showContextMenu({ getAnchor: () => anchor, - getActions: () => TPromise.wrap(this.menuActions), + getActions: () => TPromise.wrap(actions) }); } @@ -311,45 +314,130 @@ export class DropDownMenuActionItem extends ActionItem { } } +export class ManageExtensionActionItem extends DropDownMenuActionItem { + constructor( + action: IAction, + @IInstantiationService instantiationService: IInstantiationService, + @IContextMenuService contextMenuService: IContextMenuService) { + super(action, [instantiationService.createInstance(EnableForWorkspaceAction, localize('enableForWorkspaceAction.label', "Enable (Workspace)")), instantiationService.createInstance(EnableGloballyAction, localize('enableAlwaysAction.label', "Enable")), + instantiationService.createInstance(DisableForWorkspaceAction, localize('disableForWorkspaceAction.label', "Disable (Workspace)")), instantiationService.createInstance(DisableGloballyAction, localize('disableAlwaysAction.label', "Disable")), new Separator(), instantiationService.createInstance(UninstallAction)], contextMenuService); + } +} + +export class ManageExtensionAction extends Action { + + static ID = 'extensions.manage'; + + private static Class = 'extension-action manage'; + private static NoExtensionClass = `${ManageExtensionAction.Class} no-extension`; + + private _actionItem: EnableActionItem; + get actionItem(): IActionItem { return this._actionItem; } + + private disposables: IDisposable[] = []; + private _extension: IExtension; + get extension(): IExtension { return this._extension; } + set extension(extension: IExtension) { this._extension = extension; this._actionItem.extension = extension; this.update(); } + + constructor( + @IWorkspaceContextService private workspaceContextService: IWorkspaceContextService, + @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService, + @IExtensionsRuntimeService private extensionRuntimeService: IExtensionsRuntimeService, + @IInstantiationService private instantiationService: IInstantiationService + ) { + super(ManageExtensionAction.ID); + + this._actionItem = this.instantiationService.createInstance(ManageExtensionActionItem, this); + this.disposables.push(this._actionItem); + + this.disposables.push(this.extensionsWorkbenchService.onChange(() => this.update())); + this.update(); + } + + private update(): void { + this.class = ManageExtensionAction.NoExtensionClass; + this.enabled = false; + if (this.extension) { + this.class = ManageExtensionAction.Class; + this.enabled = ExtensionState.Uninstalled !== this.extension.state; + } + } + + public run(): TPromise { + this._actionItem.showMenu(); + return TPromise.wrap(null); + } + + dispose(): void { + super.dispose(); + this.disposables = dispose(this.disposables); + } +} + export class EnableForWorkspaceAction extends Action { + static ID = 'extensions.enableForWorkspace'; + static LABEL = localize('enableForWorkspaceAction', "Workspace"); + + private disposables: IDisposable[] = []; + private _extension: IExtension; get extension(): IExtension { return this._extension; } set extension(extension: IExtension) { this._extension = extension; this.update(); } - constructor( + constructor(label: string, @IWorkspaceContextService private workspaceContextService: IWorkspaceContextService, @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService, - @IExtensionsRuntimeService private extensionsRuntimeService: IExtensionsRuntimeService + @IExtensionsRuntimeService private extensionsRuntimeService: IExtensionsRuntimeService, + @IInstantiationService private instantiationService: IInstantiationService ) { - super('extensions.enableForWorkspace', localize('enableForWorkspaceAction', "Workspace"), '', !!workspaceContextService.getWorkspace()); + super(EnableForWorkspaceAction.ID, label); + + this.disposables.push(this.extensionsWorkbenchService.onChange(() => this.update())); + this.update(); } private update(): void { + this.enabled = false; if (this.extension && this.workspaceContextService.getWorkspace()) { - this.enabled = !this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier); + this.enabled = ExtensionState.Disabled === this.extension.state && !this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier); } } run(): TPromise { return this.extensionsWorkbenchService.setEnablement(this.extension, true, true); } + + dispose(): void { + super.dispose(); + this.disposables = dispose(this.disposables); + } } export class EnableGloballyAction extends Action { + static ID = 'extensions.enableGlobally'; + static LABEL = localize('enableGloballyAction', "Always"); + + private disposables: IDisposable[] = []; + private _extension: IExtension; get extension(): IExtension { return this._extension; } set extension(extension: IExtension) { this._extension = extension; this.update(); } - constructor( + constructor(label: string, @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService, - @IExtensionsRuntimeService private extensionsRuntimeService: IExtensionsRuntimeService + @IExtensionsRuntimeService private extensionsRuntimeService: IExtensionsRuntimeService, + @IInstantiationService private instantiationService: IInstantiationService ) { - super('extensions.enableGlobally', localize('enableGloballyAction', "Always"), '', false); + super(EnableGloballyAction.ID, label); + + this.disposables.push(this.extensionsWorkbenchService.onChange(() => this.update())); + this.update(); } private update(): void { + this.enabled = false; if (this.extension) { this.enabled = this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier); } @@ -358,6 +446,11 @@ export class EnableGloballyAction extends Action { run(): TPromise { return this.extensionsWorkbenchService.setEnablement(this.extension, true, false); } + + dispose(): void { + super.dispose(); + this.disposables = dispose(this.disposables); + } } export class EnableAction extends Action { @@ -415,37 +508,79 @@ export class EnableAction extends Action { export class DisableForWorkspaceAction extends Action { + static ID = 'extensions.disableForWorkspace'; + static LABEL = localize('disableForWorkspaceAction', "Workspace"); + + private disposables: IDisposable[] = []; + private _extension: IExtension; get extension(): IExtension { return this._extension; } - set extension(extension: IExtension) { this._extension = extension; } + set extension(extension: IExtension) { this._extension = extension; this.update(); } - constructor( + constructor(label: string, @IWorkspaceContextService private workspaceContextService: IWorkspaceContextService, - @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService + @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService, + @IInstantiationService private instantiationService: IInstantiationService ) { - super('extensions.disableForWorkspace', localize('disableForWorkspaceAction', "Workspace"), '', !!workspaceContextService.getWorkspace()); + super(DisableForWorkspaceAction.ID, label); + + this.disposables.push(this.extensionsWorkbenchService.onChange(() => this.update())); + this.update(); + } + + private update(): void { + this.enabled = false; + if (this.extension && this.workspaceContextService.getWorkspace()) { + this.enabled = ExtensionState.Enabled === this.extension.state; + } } run(): TPromise { return this.extensionsWorkbenchService.setEnablement(this.extension, false, true); } + + dispose(): void { + super.dispose(); + this.disposables = dispose(this.disposables); + } } export class DisableGloballyAction extends Action { + static ID = 'extensions.disableGlobally'; + static LABEL = localize('disableGloballyAction', "Always"); + + private disposables: IDisposable[] = []; + private _extension: IExtension; get extension(): IExtension { return this._extension; } - set extension(extension: IExtension) { this._extension = extension; } + set extension(extension: IExtension) { this._extension = extension; this.update(); } - constructor( - @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService + constructor(label: string, + @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService, + @IInstantiationService private instantiationService: IInstantiationService ) { - super('extensions.disableGlobally', localize('disableGloballyAction', "Always"), '', true); + super(DisableGloballyAction.ID, label); + + this.disposables.push(this.extensionsWorkbenchService.onChange(() => this.update())); + this.update(); + } + + private update(): void { + this.enabled = false; + if (this.extension) { + this.enabled = ExtensionState.Enabled === this.extension.state; + } } run(): TPromise { return this.extensionsWorkbenchService.setEnablement(this.extension, false, false); } + + dispose(): void { + super.dispose(); + this.disposables = dispose(this.disposables); + } } export class DisableAction extends Action { @@ -503,7 +638,7 @@ export class EnableActionItem extends DropDownMenuActionItem { action: IAction, @IInstantiationService instantiationService: IInstantiationService, @IContextMenuService contextMenuService: IContextMenuService) { - super(action, [instantiationService.createInstance(EnableForWorkspaceAction), instantiationService.createInstance(EnableGloballyAction)], contextMenuService); + super(action, [instantiationService.createInstance(EnableForWorkspaceAction, EnableForWorkspaceAction.LABEL), instantiationService.createInstance(EnableGloballyAction, EnableGloballyAction.LABEL)], contextMenuService); } } @@ -512,7 +647,7 @@ export class DisableActionItem extends DropDownMenuActionItem { action: IAction, @IInstantiationService instantiationService: IInstantiationService, @IContextMenuService contextMenuService: IContextMenuService) { - super(action, [instantiationService.createInstance(DisableForWorkspaceAction), instantiationService.createInstance(DisableGloballyAction)], contextMenuService); + super(action, [instantiationService.createInstance(DisableForWorkspaceAction, DisableForWorkspaceAction.LABEL), instantiationService.createInstance(DisableGloballyAction, DisableGloballyAction.LABEL)], contextMenuService); } } @@ -1118,4 +1253,4 @@ export class EnableAllWorkpsaceAction extends Action { super.dispose(); this.disposables = dispose(this.disposables); } -} +} \ No newline at end of file diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts index 9206c40f3b3..f4ce644eb7f 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts @@ -16,9 +16,10 @@ import { IPagedRenderer } from 'vs/base/browser/ui/list/listPaging'; import { once } from 'vs/base/common/event'; import { domEvent } from 'vs/base/browser/event'; import { IExtension, ExtensionState } from '../common/extensions'; -import { CombinedInstallAction, UpdateAction, EnableAction, DisableAction, BuiltinStatusLabelAction, ReloadAction } from './extensionsActions'; +import { InstallAction, UpdateAction, BuiltinStatusLabelAction, ReloadAction, ManageExtensionAction } from './extensionsActions'; import { Label, RatingsWidget, InstallWidget } from './extensionsWidgets'; import { EventType } from 'vs/base/common/events'; +import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; export interface ITemplateData { element: HTMLElement; @@ -44,6 +45,7 @@ export class Renderer implements IPagedRenderer { constructor( @IInstantiationService private instantiationService: IInstantiationService, + @IContextMenuService private contextMenuService: IContextMenuService, @IMessageService private messageService: IMessageService ) { } @@ -65,16 +67,12 @@ export class Renderer implements IPagedRenderer { const actionbar = new ActionBar(footer, { animated: false, actionItemProvider: (action: Action) => { - if (action.id === EnableAction.ID) { - return (action).actionItem; - } - if (action.id === DisableAction.ID) { - return (action).actionItem; + if (action.id === ManageExtensionAction.ID) { + return (action).actionItem; } return null; } }); - actionbar.addListener2(EventType.RUN, ({ error }) => error && this.messageService.show(Severity.Error, error)); const versionWidget = this.instantiationService.createInstance(Label, version, e => e.version); @@ -82,14 +80,13 @@ export class Renderer implements IPagedRenderer { const ratingsWidget = this.instantiationService.createInstance(RatingsWidget, ratings, { small: true }); const builtinStatusAction = this.instantiationService.createInstance(BuiltinStatusLabelAction); - const combinedInstallAction = this.instantiationService.createInstance(CombinedInstallAction); + const installAction = this.instantiationService.createInstance(InstallAction); const updateAction = this.instantiationService.createInstance(UpdateAction); - const enableAction = this.instantiationService.createInstance(EnableAction); - const disableAction = this.instantiationService.createInstance(DisableAction); const reloadAction = this.instantiationService.createInstance(ReloadAction); + const manageAction = this.instantiationService.createInstance(ManageExtensionAction); - actionbar.push([enableAction, updateAction, disableAction, reloadAction, combinedInstallAction, builtinStatusAction], actionOptions); - const disposables = [versionWidget, installCountWidget, ratingsWidget, combinedInstallAction, builtinStatusAction, updateAction, enableAction, disableAction, reloadAction, actionbar]; + actionbar.push([updateAction, reloadAction, installAction, builtinStatusAction, manageAction], actionOptions); + const disposables = [versionWidget, installCountWidget, ratingsWidget, builtinStatusAction, updateAction, reloadAction, manageAction, actionbar]; return { element, icon, name, installCount, ratings, author, description, disposables, @@ -99,11 +96,10 @@ export class Renderer implements IPagedRenderer { installCountWidget.extension = extension; ratingsWidget.extension = extension; builtinStatusAction.extension = extension; - combinedInstallAction.extension = extension; + installAction.extension = extension; updateAction.extension = extension; - enableAction.extension = extension; - disableAction.extension = extension; reloadAction.extension = extension; + manageAction.extension = extension; } }; } diff --git a/src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css b/src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css index d4b29f06451..fa9e94e525e 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css +++ b/src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css @@ -104,4 +104,19 @@ .extension-editor > .header > .details > .actions > .monaco-action-bar .action-item .action-label.extension-action.built-in-status { font-weight: normal; +} + +.extensions-viewlet > .extensions .extension > .details > .footer > .monaco-action-bar .action-item .action-label.extension-action.manage.no-extension { + display: none; +} + +.extensions-viewlet > .extensions .extension > .details > .footer > .monaco-action-bar .action-item .action-label.extension-action.manage { + height: 18px; + width: 10px; + border: none; + background: url('manage.svg') center center no-repeat; +} + +.vs-dark .extensions-viewlet > .extensions .extension > .details > .footer > .monaco-action-bar .action-item .action-label.extension-action.manage { + background: url('manage-inverse.svg') center center no-repeat; } \ No newline at end of file diff --git a/src/vs/workbench/parts/extensions/electron-browser/media/manage-inverse.svg b/src/vs/workbench/parts/extensions/electron-browser/media/manage-inverse.svg new file mode 100644 index 00000000000..61baaea2b8b --- /dev/null +++ b/src/vs/workbench/parts/extensions/electron-browser/media/manage-inverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/vs/workbench/parts/extensions/electron-browser/media/manage.svg b/src/vs/workbench/parts/extensions/electron-browser/media/manage.svg new file mode 100644 index 00000000000..3dec2ba50fd --- /dev/null +++ b/src/vs/workbench/parts/extensions/electron-browser/media/manage.svg @@ -0,0 +1 @@ + \ No newline at end of file From 7fb10d178eeb6b0565f6d1c0d3871f4ab270eb8a Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 18:59:52 +0200 Subject: [PATCH 057/242] fix #14409 --- .../extensionManagement/node/extensionManagementService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts index d706f3bc5ea..369914fbd65 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts @@ -243,9 +243,9 @@ export class ExtensionManagementService implements IExtensionManagementService { } private rollback(localExtension: ILocalExtension, dependecies: IGalleryExtension[]): TPromise { - return this.uninstall(localExtension) + return this.doUninstall(localExtension.id) .then(() => this.filterOutUninstalled(dependecies)) - .then(installed => TPromise.join(installed.map((i) => this.uninstall(i)))) + .then(installed => TPromise.join(installed.map((i) => this.doUninstall(i.id)))) .then(() => null); } From 314af2435dc2c9d6360f42f620a2a93015e824f5 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 19:04:11 +0200 Subject: [PATCH 058/242] Fix #14386 --- .../parts/extensions/electron-browser/extensionsList.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts index f4ce644eb7f..b1b8d37e986 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts @@ -85,7 +85,7 @@ export class Renderer implements IPagedRenderer { const reloadAction = this.instantiationService.createInstance(ReloadAction); const manageAction = this.instantiationService.createInstance(ManageExtensionAction); - actionbar.push([updateAction, reloadAction, installAction, builtinStatusAction, manageAction], actionOptions); + actionbar.push([reloadAction, updateAction, installAction, builtinStatusAction, manageAction], actionOptions); const disposables = [versionWidget, installCountWidget, ratingsWidget, builtinStatusAction, updateAction, reloadAction, manageAction, actionbar]; return { From 7428885a0f433984091422e525a40701ccbec0bc Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 19:21:15 +0200 Subject: [PATCH 059/242] Fix #14414 --- .../node/extensionManagementService.ts | 19 +++++++++++++++++-- .../electron-browser/extensionsActions.ts | 4 ---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts index 369914fbd65..8f5d2d32f32 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts @@ -323,7 +323,7 @@ export class ExtensionManagementService implements IExtensionManagementService { private checkForDependenciesAndUninstall(extension: ILocalExtension, installed: ILocalExtension[]): TPromise { return this.preUninstallExtension(extension.id) - .then(() => this.hasDependencies(extension, installed) ? this.promptAndUninstall(extension, installed) : this.uninstallWithDependencies(extension, [], installed)) + .then(() => this.hasDependencies(extension, installed) ? this.promptForDependenciesAndUninstall(extension, installed) : this.promptAndUninstall(extension, installed)) .then(() => this.postUninstallExtension(extension.id), error => { this.postUninstallExtension(extension.id, error); @@ -338,7 +338,7 @@ export class ExtensionManagementService implements IExtensionManagementService { return false; } - private promptAndUninstall(extension: ILocalExtension, installed: ILocalExtension[]): TPromise { + private promptForDependenciesAndUninstall(extension: ILocalExtension, installed: ILocalExtension[]): TPromise { const message = nls.localize('uninstallDependeciesConfirmation', "Would you like to uninstall '{0}' only or its dependencies also?", extension.manifest.displayName || extension.manifest.name); const options = [ nls.localize('uninstallOnly', "Only"), @@ -358,6 +358,21 @@ export class ExtensionManagementService implements IExtensionManagementService { }, error => TPromise.wrapError(errors.canceled())); } + private promptAndUninstall(extension: ILocalExtension, installed: ILocalExtension[]): TPromise { + const message = nls.localize('uninstallConfirmation', "Are you sure you want to uninstall '{0}'?", extension.manifest.displayName || extension.manifest.name); + const options = [ + nls.localize('ok', "Ok"), + nls.localize('cancel', "Cancel") + ]; + return this.choiceService.choose(Severity.Info, message, options) + .then(value => { + if (value === 0) { + return this.uninstallWithDependencies(extension, [], installed); + } + return TPromise.wrapError(errors.canceled()); + }, error => TPromise.wrapError(errors.canceled())); + } + private uninstallWithDependencies(extension: ILocalExtension, dependencies: ILocalExtension[], installed: ILocalExtension[]): TPromise { const dependenciesToUninstall = this.filterDependents(extension, dependencies, installed); let dependents = this.getDependents(extension, installed).filter(dependent => dependenciesToUninstall.indexOf(dependent) === -1); diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index fe57d3c015c..9089ab52e11 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -138,10 +138,6 @@ export class UninstallAction extends Action { } run(): TPromise { - if (!window.confirm(localize('deleteSure', "Are you sure you want to uninstall '{0}'?", this.extension.displayName))) { - return TPromise.as(null); - } - return this.extensionsWorkbenchService.uninstall(this.extension); } From fd2b36937e6aaddc7e4b54b939f5afc3e25994ef Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 19:25:04 +0200 Subject: [PATCH 060/242] #14379 Disable manage button while installing / uninstalling --- .../parts/extensions/electron-browser/extensionsActions.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 9089ab52e11..d259ff96e70 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -355,7 +355,8 @@ export class ManageExtensionAction extends Action { this.enabled = false; if (this.extension) { this.class = ManageExtensionAction.Class; - this.enabled = ExtensionState.Uninstalled !== this.extension.state; + const state = this.extension.state; + this.enabled = ExtensionState.Uninstalled !== state && ExtensionState.Installing !== state && ExtensionState.Uninstalling !== state; } } From c91ce67a2c306307121d8dabffeedb9600abcec2 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 19:46:55 +0200 Subject: [PATCH 061/242] Fix #14381 --- .../extensions/electron-browser/extensions.ts | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/vs/workbench/services/extensions/electron-browser/extensions.ts b/src/vs/workbench/services/extensions/electron-browser/extensions.ts index a653f3b15ad..ff33be2e2ef 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensions.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensions.ts @@ -76,30 +76,33 @@ export class ExtensionsRuntimeService implements IExtensionsRuntimeService { } public setEnablement(identifier: string, enable: boolean, workspace: boolean = false): TPromise { - const disabled = this.environmentService.disableExtensions || this.getDisabledExtensionsFromStorage().indexOf(identifier) !== -1; - if (!enable === disabled) { - return TPromise.wrap(false); - } - - if (enable && !this.canEnable(identifier)) { - return TPromise.wrap(false); - } - if (workspace && !this.workspace) { return TPromise.wrapError(localize('noWorkspace', "No workspace.")); } + if (this.environmentService.disableExtensions) { + return TPromise.wrap(false); + } + + if (this.isDisabled(identifier) === !enable) { + return TPromise.wrap(false); + } + if (enable) { if (workspace) { - return this.enableExtension(identifier, StorageScope.WORKSPACE); + this.enableExtension(identifier, StorageScope.WORKSPACE); + } else { + this.enableExtension(identifier, StorageScope.GLOBAL); } - return this.enableExtension(identifier, StorageScope.GLOBAL); } else { if (workspace) { - return this.disableExtension(identifier, StorageScope.WORKSPACE); + this.disableExtension(identifier, StorageScope.WORKSPACE); + } else { + this.disableExtension(identifier, StorageScope.GLOBAL); } - return this.disableExtension(identifier, StorageScope.GLOBAL); } + + return TPromise.wrap(true); } private getDisabledExtensions(): string[] { From b326ba713a251a8b51d5ade827b6d106e641b780 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 19:52:21 +0200 Subject: [PATCH 062/242] #14379 Check for user extensions and canEnable --- .../extensions/electron-browser/extensionsActions.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index d259ff96e70..f659f2a691a 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -397,7 +397,8 @@ export class EnableForWorkspaceAction extends Action { private update(): void { this.enabled = false; if (this.extension && this.workspaceContextService.getWorkspace()) { - this.enabled = ExtensionState.Disabled === this.extension.state && !this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier); + this.enabled = this.extension.type !== LocalExtensionType.System && ExtensionState.Disabled === this.extension.state + && !this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier) && this.extensionsRuntimeService.canEnable(this.extension.identifier); } } @@ -436,7 +437,7 @@ export class EnableGloballyAction extends Action { private update(): void { this.enabled = false; if (this.extension) { - this.enabled = this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier); + this.enabled = this.extension.type !== LocalExtensionType.System && this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier) && this.extensionsRuntimeService.canEnable(this.extension.identifier); } } @@ -528,7 +529,7 @@ export class DisableForWorkspaceAction extends Action { private update(): void { this.enabled = false; if (this.extension && this.workspaceContextService.getWorkspace()) { - this.enabled = ExtensionState.Enabled === this.extension.state; + this.enabled = this.extension.type !== LocalExtensionType.System && ExtensionState.Enabled === this.extension.state; } } @@ -566,7 +567,7 @@ export class DisableGloballyAction extends Action { private update(): void { this.enabled = false; if (this.extension) { - this.enabled = ExtensionState.Enabled === this.extension.state; + this.enabled = this.extension.type !== LocalExtensionType.System && ExtensionState.Enabled === this.extension.state; } } From f5992a036731e796631dad824ccdaad50792e108 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 20:22:20 +0200 Subject: [PATCH 063/242] Fix #14380 --- src/vs/workbench/electron-browser/shell.ts | 9 ++++--- .../extensionsWorkbenchService.ts | 1 - .../extensions/electron-browser/extensions.ts | 25 +++++++++++++++++-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index 7b70edcd88a..258ffbab5d3 100644 --- a/src/vs/workbench/electron-browser/shell.ts +++ b/src/vs/workbench/electron-browser/shell.ts @@ -288,8 +288,13 @@ export class WorkbenchShell { this.toUnbind.push(lifecycleService.onShutdown(() => disposables.dispose())); serviceCollection.set(ILifecycleService, lifecycleService); + const extensionManagementChannel = getDelayedChannel(sharedProcess.then(c => c.getChannel('extensions'))); + const extensionManagementChannelClient = new ExtensionManagementChannelClient(extensionManagementChannel); + serviceCollection.set(IExtensionManagementService, extensionManagementChannelClient); + const extensionsRuntimeService = instantiationService.createInstance(ExtensionsRuntimeService); serviceCollection.set(IExtensionsRuntimeService, extensionsRuntimeService); + disposables.add(extensionsRuntimeService); const extensionHostProcessWorker = this.startExtensionHost(instantiationService); this.threadService = instantiationService.createInstance(MainThreadService, extensionHostProcessWorker.messagingProtocol); @@ -333,10 +338,6 @@ export class WorkbenchShell { const integrityService = instantiationService.createInstance(IntegrityServiceImpl); serviceCollection.set(IIntegrityService, integrityService); - const extensionManagementChannel = getDelayedChannel(sharedProcess.then(c => c.getChannel('extensions'))); - const extensionManagementChannelClient = new ExtensionManagementChannelClient(extensionManagementChannel); - serviceCollection.set(IExtensionManagementService, extensionManagementChannelClient); - const urlChannel = mainProcessClient.getChannel('url'); const urlChannelClient = new URLChannelClient(urlChannel, this.windowService.getWindowId()); serviceCollection.set(IURLService, urlChannelClient); diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts index 575549dafc5..594e5047227 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts @@ -627,7 +627,6 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { if (!error) { this.unInstalled.push(uninstalling.extension); - this.extensionsRuntimeService.setEnablement(uninstalling.extension.identifier, true); uninstalling.extension.needsReload = !newlyInstalled; this.reportTelemetry(uninstalling, true); } diff --git a/src/vs/workbench/services/extensions/electron-browser/extensions.ts b/src/vs/workbench/services/extensions/electron-browser/extensions.ts index ff33be2e2ef..c57b12fb2e4 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensions.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensions.ts @@ -9,7 +9,9 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { distinct } from 'vs/base/common/arrays'; import * as paths from 'vs/base/common/paths'; import URI from 'vs/base/common/uri'; +import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { ExtensionScanner, MessagesCollector } from 'vs/workbench/node/extensionPoints'; +import { IExtensionManagementService, DidUninstallExtensionEvent } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IWorkspaceContextService, IWorkspace } from 'vs/platform/workspace/common/workspace'; import { IExtensionsRuntimeService, IExtensionDescription, IMessage } from 'vs/platform/extensions/common/extensions'; import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; @@ -29,17 +31,20 @@ export class ExtensionsRuntimeService implements IExtensionsRuntimeService { private workspace: IWorkspace; private installedExtensions: TPromise; - private _globalDisabledExtensions: string[]; private _workspaceDisabledExtensions: string[]; + private disposables: IDisposable[] = []; + constructor( @IStorageService private storageService: IStorageService, @IWorkspaceContextService contextService: IWorkspaceContextService, @IMessageService private messageService: IMessageService, - @IEnvironmentService private environmentService: IEnvironmentService + @IEnvironmentService private environmentService: IEnvironmentService, + @IExtensionManagementService private extensionManagementService: IExtensionManagementService ) { this.workspace = contextService.getWorkspace(); + extensionManagementService.onDidUninstallExtension(this.onDidUninstallExtension, this, this.disposables); } public getExtensions(includeDisabled: boolean = false): TPromise { @@ -163,6 +168,14 @@ export class ExtensionsRuntimeService implements IExtensionsRuntimeService { } } + private onDidUninstallExtension({id, error}: DidUninstallExtensionEvent): void { + if (!error) { + id = stripVersion(id); + this.enableExtension(id, StorageScope.WORKSPACE); + this.enableExtension(id, StorageScope.GLOBAL); + } + } + private scanExtensions(): TPromise { const collector = new MessagesCollector(); const version = pkg.version; @@ -226,4 +239,12 @@ export class ExtensionsRuntimeService implements IExtensionsRuntimeService { } } } + + dispose(): void { + this.disposables = dispose(this.disposables); + } +} + +function stripVersion(id: string): string { + return id.replace(/-\d+\.\d+\.\d+$/, ''); } \ No newline at end of file From 1eed576ab0fa1784932b725c32dfa153ca825bd8 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 20:55:37 +0200 Subject: [PATCH 064/242] Fix #14376 --- .../electron-browser/extensionsActions.ts | 37 +++++++++---------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index f659f2a691a..167b37839e3 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -681,31 +681,28 @@ export class ReloadAction extends Action { const state = this.extension.state; this.enabled = state !== ExtensionState.Installing && state !== ExtensionState.Uninstalling && (this.extension.reload || /* Following is needed due to extension is stale */this.extension.state === ExtensionState.Installed); this.class = this.enabled ? ReloadAction.EnabledClass : ReloadAction.DisabledClass; + this.tooltip = this.getMessage(true); } run(): TPromise { - return this.getReloadMessage().then(message => { - if (window.confirm(message)) { - this.instantiationService.createInstance(ReloadWindowAction, ReloadWindowAction.ID, localize('reloadNow', "Reload Now")).run(); - } - return null; - }); + if (window.confirm(this.getMessage(false))) { + this.instantiationService.createInstance(ReloadWindowAction, ReloadWindowAction.ID, localize('reloadNow', "Reload Now")).run(); + } + return TPromise.wrap(null); } - private getReloadMessage(): TPromise { - return this.extensionsRuntimeService.getExtensions(true).then(extensionDescriptions => { - const state = this.extension.state; - if (state === ExtensionState.Installed) { - return localize('postInstallMessage', "Reload this window to activate '{0}' extension?", this.extension.displayName); - } - if (state === ExtensionState.Disabled) { - return localize('postEnableMessage', "Reload this window to enable '{0}' extension?", this.extension.displayName); - } - if (state === ExtensionState.Enabled) { - return localize('postDisableMessage', "Reload this window to disable '{0}' extension?", this.extension.displayName); - } - return localize('postUninstallMessage', "Reload this window to deactivate '{0}' extension?", this.extension.displayName); - }); + private getMessage(tooltip: boolean): string { + const state = this.extension.state; + if (state === ExtensionState.Installed) { + return tooltip ? localize('postInstallTooltip', "Reload to activate") : localize('postInstallMessage', "Reload this window to activate '{0}' extension?", this.extension.displayName); + } + if (state === ExtensionState.Disabled) { + return tooltip ? localize('postEnableTooltip', "Reload to enable") : localize('postEnableMessage', "Reload this window to enable '{0}' extension?", this.extension.displayName); + } + if (state === ExtensionState.Enabled) { + return tooltip ? localize('postDisableTooltip', "Reload to disable") : localize('postDisableMessage', "Reload this window to disable '{0}' extension?", this.extension.displayName); + } + return tooltip ? localize('postUninstallTooltip', "Reload to deactivate") : localize('postUninstallMessage', "Reload this window to deactivate '{0}' extension?", this.extension.displayName); } } From c5d6e9e9147e941ab11638af461c98eebf0e3764 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Tue, 25 Oct 2016 21:18:06 +0200 Subject: [PATCH 065/242] Down indicator for dropdown --- .../extensions/electron-browser/media/extensionActions.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css b/src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css index fa9e94e525e..02cfd1f0bab 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css +++ b/src/vs/workbench/parts/extensions/electron-browser/media/extensionActions.css @@ -82,6 +82,12 @@ background: url('clear-inverse.svg') center center no-repeat; } +.monaco-action-bar .action-item .action-label.extension-action.enable:after, +.monaco-action-bar .action-item .action-label.extension-action.disable:after { + content: '▼'; + padding-left: 2px; + font-size: 80%; +} .monaco-action-bar .action-item.disabled .action-label.extension-action.install:not(.installing), .monaco-action-bar .action-item.disabled .action-label.extension-action.uninstall:not(.uninstalling), From 7d4940faa4805edc4566b96aeb3fe8c59ed4ca24 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Tue, 25 Oct 2016 12:48:50 -0700 Subject: [PATCH 066/242] Update to VSCode-Textmate 2.3 Bumps vscode-textmate to 2.3 in order to pick up this work: https://github.com/Microsoft/vscode-textmate/pull/26 Closes #14294 --- npm-shrinkwrap.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 01540a55ff9..854955f84bd 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -410,9 +410,9 @@ "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.13.0.tgz" }, "vscode-textmate": { - "version": "2.2.0", - "from": "vscode-textmate@2.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-2.2.0.tgz" + "version": "2.3.0", + "from": "vscode-textmate@2.3.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-2.3.0.tgz" }, "windows-foreground-love": { "version": "0.1.0", diff --git a/package.json b/package.json index ab21bfb4951..f05d55430f4 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "pty.js": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", "semver": "4.3.6", "vscode-debugprotocol": "1.13.0", - "vscode-textmate": "2.2.0", + "vscode-textmate": "2.3.0", "winreg": "1.2.0", "xterm": "git+https://github.com/Tyriar/xterm.js.git#vscode-release/1.7", "yauzl": "2.3.1" From 889c720db5e83f4649ba1317fc8fdd3387cbf975 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Oct 2016 08:37:13 +0200 Subject: [PATCH 067/242] Updating due to build failure --- src/vs/monaco.d.ts | 9542 ++++++++++++++++++++++---------------------- 1 file changed, 4771 insertions(+), 4771 deletions(-) diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 0329b1eb5c0..9b94ad7c2f4 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -1,4822 +1,4822 @@ declare module monaco { - interface Thenable { - /** - * Attaches callbacks for the resolution and/or rejection of the Promise. - * @param onfulfilled The callback to execute when the Promise is resolved. - * @param onrejected The callback to execute when the Promise is rejected. - * @returns A Promise for the completion of which ever callback is executed. - */ - then(onfulfilled?: (value: T) => TResult | Thenable, onrejected?: (reason: any) => TResult | Thenable): Thenable; - then(onfulfilled?: (value: T) => TResult | Thenable, onrejected?: (reason: any) => void): Thenable; - } +interface Thenable { +/** +* Attaches callbacks for the resolution and/or rejection of the Promise. +* @param onfulfilled The callback to execute when the Promise is resolved. +* @param onrejected The callback to execute when the Promise is rejected. +* @returns A Promise for the completion of which ever callback is executed. +*/ +then(onfulfilled?: (value: T) => TResult|Thenable,onrejected?: (reason: any) => TResult|Thenable): Thenable; +then(onfulfilled?: (value: T) => TResult|Thenable,onrejected?: (reason: any) => void): Thenable; +} - export interface IDisposable { - dispose(): void; - } +export interface IDisposable { +dispose(): void; +} - export interface IEvent { - (listener: (e: T) => any, thisArg?: any): IDisposable; - } +export interface IEvent { +(listener: (e: T) => any,thisArg?: any): IDisposable; +} - /** - * A helper that allows to emit and listen to typed events - */ - export class Emitter { - constructor(); - readonly event: IEvent; - fire(event?: T): void; - dispose(): void; - } +/** +* A helper that allows to emit and listen to typed events +*/ +export class Emitter { +constructor(); +readonly event: IEvent; +fire(event?: T): void; +dispose(): void; +} - export enum Severity { - Ignore = 0, - Info = 1, - Warning = 2, - Error = 3, - } +export enum Severity { +Ignore=0, +Info=1, +Warning=2, +Error=3, +} - /** - * The value callback to complete a promise - */ - export interface TValueCallback { - (value: T): void; - } +/** +* The value callback to complete a promise +*/ +export interface TValueCallback { +(value: T): void; +} - export interface ProgressCallback { - (progress: any): any; - } +export interface ProgressCallback { +(progress: any): any; +} - /** - * A Promise implementation that supports progress and cancelation. - */ - export class Promise { +/** +* A Promise implementation that supports progress and cancelation. +*/ +export class Promise { - constructor(init: (complete: TValueCallback, error: (err: any) => void, progress: ProgressCallback) => void, oncancel?: any); +constructor(init: (complete: TValueCallback,error: (err: any) => void,progress: ProgressCallback) => void,oncancel?: any); - public then(success?: (value: V) => Promise, error?: (err: any) => Promise, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => Promise, error?: (err: any) => Promise | U, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => Promise, error?: (err: any) => U, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => Promise, error?: (err: any) => void, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => Promise | U, error?: (err: any) => Promise, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => Promise | U, error?: (err: any) => Promise | U, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => Promise | U, error?: (err: any) => U, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => Promise | U, error?: (err: any) => void, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => U, error?: (err: any) => Promise, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => U, error?: (err: any) => Promise | U, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => U, error?: (err: any) => U, progress?: ProgressCallback): Promise; - public then(success?: (value: V) => U, error?: (err: any) => void, progress?: ProgressCallback): Promise; +public then(success?: (value: V) => Promise,error?: (err: any) => Promise,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => Promise,error?: (err: any) => Promise|U,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => Promise,error?: (err: any) => U,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => Promise,error?: (err: any) => void,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => Promise|U,error?: (err: any) => Promise,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => Promise|U,error?: (err: any) => Promise|U,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => Promise|U,error?: (err: any) => U,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => Promise|U,error?: (err: any) => void,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => U,error?: (err: any) => Promise,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => U,error?: (err: any) => Promise|U,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => U,error?: (err: any) => U,progress?: ProgressCallback): Promise; +public then(success?: (value: V) => U,error?: (err: any) => void,progress?: ProgressCallback): Promise; - public done(success?: (value: V) => void, error?: (err: any) => any, progress?: ProgressCallback): void; - public cancel(): void; +public done(success?: (value: V) => void,error?: (err: any) => any,progress?: ProgressCallback): void; +public cancel(): void; - public static as(value: ValueType): Promise; - public static is(value: any): value is Thenable; - public static timeout(delay: number): Promise; - public static join(promises: Promise[]): Promise; - public static join(promises: Thenable[]): Thenable; - public static join(promises: { [n: string]: Promise }): Promise<{ [n: string]: ValueType }>; - public static any(promises: Promise[]): Promise<{ key: string; value: Promise; }>; +public static as(value: ValueType): Promise; +public static is(value: any): value is Thenable; +public static timeout(delay: number): Promise; +public static join(promises: Promise[]): Promise; +public static join(promises: Thenable[]): Thenable; +public static join(promises: { [n: string]: Promise }): Promise<{ [n: string]: ValueType }>; +public static any(promises: Promise[]): Promise<{ key: string; value: Promise; }>; - public static wrap(value: Thenable): Promise; - public static wrap(value: ValueType): Promise; +public static wrap(value: Thenable): Promise; +public static wrap(value: ValueType): Promise; - public static wrapError(error: any): Promise; - } +public static wrapError(error: any): Promise; +} - export class CancellationTokenSource { - readonly token: CancellationToken; - cancel(): void; - dispose(): void; - } +export class CancellationTokenSource { +readonly token: CancellationToken; +cancel(): void; +dispose(): void; +} - export interface CancellationToken { - readonly isCancellationRequested: boolean; - /** - * An event emitted when cancellation is requested - * @event - */ - readonly onCancellationRequested: IEvent; - } - /** - * Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986. - * This class is a simple parser which creates the basic component paths - * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation - * and encoding. - * - * foo://example.com:8042/over/there?name=ferret#nose - * \_/ \______________/\_________/ \_________/ \__/ - * | | | | | - * scheme authority path query fragment - * | _____________________|__ - * / \ / \ - * urn:example:animal:ferret:nose - * - * - */ - export class Uri { - static isUri(thing: any): thing is Uri; - protected constructor(); - /** - * scheme is the 'http' part of 'http://www.msft.com/some/path?query#fragment'. - * The part before the first colon. - */ - readonly scheme: string; - /** - * authority is the 'www.msft.com' part of 'http://www.msft.com/some/path?query#fragment'. - * The part between the first double slashes and the next slash. - */ - readonly authority: string; - /** - * path is the '/some/path' part of 'http://www.msft.com/some/path?query#fragment'. - */ - readonly path: string; - /** - * query is the 'query' part of 'http://www.msft.com/some/path?query#fragment'. - */ - readonly query: string; - /** - * fragment is the 'fragment' part of 'http://www.msft.com/some/path?query#fragment'. - */ - readonly fragment: string; - /** - * Returns a string representing the corresponding file system path of this Uri. - * Will handle UNC paths and normalize windows drive letters to lower-case. Also - * uses the platform specific path separator. Will *not* validate the path for - * invalid characters and semantics. Will *not* look at the scheme of this Uri. - */ - readonly fsPath: string; - with(change: { - scheme?: string; - authority?: string; - path?: string; - query?: string; - fragment?: string; - }): Uri; - static parse(value: string): Uri; - static file(path: string): Uri; - static from(components: { - scheme?: string; - authority?: string; - path?: string; - query?: string; - fragment?: string; - }): Uri; - /** - * - * @param skipEncoding Do not encode the result, default is `false` - */ - toString(skipEncoding?: boolean): string; - toJSON(): any; - static revive(data: any): Uri; - } +export interface CancellationToken { +readonly isCancellationRequested: boolean; +/** +* An event emitted when cancellation is requested +* @event +*/ +readonly onCancellationRequested: IEvent; +} +/** +* Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986. +* This class is a simple parser which creates the basic component paths +* (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation +* and encoding. +* +* foo://example.com:8042/over/there?name=ferret#nose +* \_/ \______________/\_________/ \_________/ \__/ +* | | | | | +* scheme authority path query fragment +* | _____________________|__ +* / \ / \ +* urn:example:animal:ferret:nose +* +* +*/ +export class Uri { +static isUri(thing: any): thing is Uri; +protected constructor(); +/** +* scheme is the 'http' part of 'http://www.msft.com/some/path?query#fragment'. +* The part before the first colon. +*/ +readonly scheme: string; +/** +* authority is the 'www.msft.com' part of 'http://www.msft.com/some/path?query#fragment'. +* The part between the first double slashes and the next slash. +*/ +readonly authority: string; +/** +* path is the '/some/path' part of 'http://www.msft.com/some/path?query#fragment'. +*/ +readonly path: string; +/** +* query is the 'query' part of 'http://www.msft.com/some/path?query#fragment'. +*/ +readonly query: string; +/** +* fragment is the 'fragment' part of 'http://www.msft.com/some/path?query#fragment'. +*/ +readonly fragment: string; +/** +* Returns a string representing the corresponding file system path of this Uri. +* Will handle UNC paths and normalize windows drive letters to lower-case. Also +* uses the platform specific path separator. Will *not* validate the path for +* invalid characters and semantics. Will *not* look at the scheme of this Uri. +*/ +readonly fsPath: string; +with(change: { +scheme?: string; +authority?: string; +path?: string; +query?: string; +fragment?: string; +}): Uri; +static parse(value: string): Uri; +static file(path: string): Uri; +static from(components: { +scheme?: string; +authority?: string; +path?: string; +query?: string; +fragment?: string; +}): Uri; +/** +* +* @param skipEncoding Do not encode the result, default is `false` +*/ +toString(skipEncoding?: boolean): string; +toJSON(): any; +static revive(data: any): Uri; +} - /** - * Virtual Key Codes, the value does not hold any inherent meaning. - * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx - * But these are "more general", as they should work across browsers & OS`s. - */ - export enum KeyCode { - /** - * Placed first to cover the 0 value of the enum. - */ - Unknown = 0, - Backspace = 1, - Tab = 2, - Enter = 3, - Shift = 4, - Ctrl = 5, - Alt = 6, - PauseBreak = 7, - CapsLock = 8, - Escape = 9, - Space = 10, - PageUp = 11, - PageDown = 12, - End = 13, - Home = 14, - LeftArrow = 15, - UpArrow = 16, - RightArrow = 17, - DownArrow = 18, - Insert = 19, - Delete = 20, - KEY_0 = 21, - KEY_1 = 22, - KEY_2 = 23, - KEY_3 = 24, - KEY_4 = 25, - KEY_5 = 26, - KEY_6 = 27, - KEY_7 = 28, - KEY_8 = 29, - KEY_9 = 30, - KEY_A = 31, - KEY_B = 32, - KEY_C = 33, - KEY_D = 34, - KEY_E = 35, - KEY_F = 36, - KEY_G = 37, - KEY_H = 38, - KEY_I = 39, - KEY_J = 40, - KEY_K = 41, - KEY_L = 42, - KEY_M = 43, - KEY_N = 44, - KEY_O = 45, - KEY_P = 46, - KEY_Q = 47, - KEY_R = 48, - KEY_S = 49, - KEY_T = 50, - KEY_U = 51, - KEY_V = 52, - KEY_W = 53, - KEY_X = 54, - KEY_Y = 55, - KEY_Z = 56, - Meta = 57, - ContextMenu = 58, - F1 = 59, - F2 = 60, - F3 = 61, - F4 = 62, - F5 = 63, - F6 = 64, - F7 = 65, - F8 = 66, - F9 = 67, - F10 = 68, - F11 = 69, - F12 = 70, - F13 = 71, - F14 = 72, - F15 = 73, - F16 = 74, - F17 = 75, - F18 = 76, - F19 = 77, - NumLock = 78, - ScrollLock = 79, - /** - * Used for miscellaneous characters; it can vary by keyboard. - * For the US standard keyboard, the ';:' key - */ - US_SEMICOLON = 80, - /** - * For any country/region, the '+' key - * For the US standard keyboard, the '=+' key - */ - US_EQUAL = 81, - /** - * For any country/region, the ',' key - * For the US standard keyboard, the ',<' key - */ - US_COMMA = 82, - /** - * For any country/region, the '-' key - * For the US standard keyboard, the '-_' key - */ - US_MINUS = 83, - /** - * For any country/region, the '.' key - * For the US standard keyboard, the '.>' key - */ - US_DOT = 84, - /** - * Used for miscellaneous characters; it can vary by keyboard. - * For the US standard keyboard, the '/?' key - */ - US_SLASH = 85, - /** - * Used for miscellaneous characters; it can vary by keyboard. - * For the US standard keyboard, the '`~' key - */ - US_BACKTICK = 86, - /** - * Used for miscellaneous characters; it can vary by keyboard. - * For the US standard keyboard, the '[{' key - */ - US_OPEN_SQUARE_BRACKET = 87, - /** - * Used for miscellaneous characters; it can vary by keyboard. - * For the US standard keyboard, the '\|' key - */ - US_BACKSLASH = 88, - /** - * Used for miscellaneous characters; it can vary by keyboard. - * For the US standard keyboard, the ']}' key - */ - US_CLOSE_SQUARE_BRACKET = 89, - /** - * Used for miscellaneous characters; it can vary by keyboard. - * For the US standard keyboard, the ''"' key - */ - US_QUOTE = 90, - /** - * Used for miscellaneous characters; it can vary by keyboard. - */ - OEM_8 = 91, - /** - * Either the angle bracket key or the backslash key on the RT 102-key keyboard. - */ - OEM_102 = 92, - NUMPAD_0 = 93, - NUMPAD_1 = 94, - NUMPAD_2 = 95, - NUMPAD_3 = 96, - NUMPAD_4 = 97, - NUMPAD_5 = 98, - NUMPAD_6 = 99, - NUMPAD_7 = 100, - NUMPAD_8 = 101, - NUMPAD_9 = 102, - NUMPAD_MULTIPLY = 103, - NUMPAD_ADD = 104, - NUMPAD_SEPARATOR = 105, - NUMPAD_SUBTRACT = 106, - NUMPAD_DECIMAL = 107, - NUMPAD_DIVIDE = 108, - /** - * Placed last to cover the length of the enum. - * Please do not depend on this value! - */ - MAX_VALUE = 109, - } +/** +* Virtual Key Codes, the value does not hold any inherent meaning. +* Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx +* But these are "more general", as they should work across browsers & OS`s. +*/ +export enum KeyCode { +/** +* Placed first to cover the 0 value of the enum. +*/ +Unknown=0, +Backspace=1, +Tab=2, +Enter=3, +Shift=4, +Ctrl=5, +Alt=6, +PauseBreak=7, +CapsLock=8, +Escape=9, +Space=10, +PageUp=11, +PageDown=12, +End=13, +Home=14, +LeftArrow=15, +UpArrow=16, +RightArrow=17, +DownArrow=18, +Insert=19, +Delete=20, +KEY_0=21, +KEY_1=22, +KEY_2=23, +KEY_3=24, +KEY_4=25, +KEY_5=26, +KEY_6=27, +KEY_7=28, +KEY_8=29, +KEY_9=30, +KEY_A=31, +KEY_B=32, +KEY_C=33, +KEY_D=34, +KEY_E=35, +KEY_F=36, +KEY_G=37, +KEY_H=38, +KEY_I=39, +KEY_J=40, +KEY_K=41, +KEY_L=42, +KEY_M=43, +KEY_N=44, +KEY_O=45, +KEY_P=46, +KEY_Q=47, +KEY_R=48, +KEY_S=49, +KEY_T=50, +KEY_U=51, +KEY_V=52, +KEY_W=53, +KEY_X=54, +KEY_Y=55, +KEY_Z=56, +Meta=57, +ContextMenu=58, +F1=59, +F2=60, +F3=61, +F4=62, +F5=63, +F6=64, +F7=65, +F8=66, +F9=67, +F10=68, +F11=69, +F12=70, +F13=71, +F14=72, +F15=73, +F16=74, +F17=75, +F18=76, +F19=77, +NumLock=78, +ScrollLock=79, +/** +* Used for miscellaneous characters; it can vary by keyboard. +* For the US standard keyboard, the ';:' key +*/ +US_SEMICOLON=80, +/** +* For any country/region, the '+' key +* For the US standard keyboard, the '=+' key +*/ +US_EQUAL=81, +/** +* For any country/region, the ',' key +* For the US standard keyboard, the ',<' key +*/ +US_COMMA=82, +/** +* For any country/region, the '-' key +* For the US standard keyboard, the '-_' key +*/ +US_MINUS=83, +/** +* For any country/region, the '.' key +* For the US standard keyboard, the '.>' key +*/ +US_DOT=84, +/** +* Used for miscellaneous characters; it can vary by keyboard. +* For the US standard keyboard, the '/?' key +*/ +US_SLASH=85, +/** +* Used for miscellaneous characters; it can vary by keyboard. +* For the US standard keyboard, the '`~' key +*/ +US_BACKTICK=86, +/** +* Used for miscellaneous characters; it can vary by keyboard. +* For the US standard keyboard, the '[{' key +*/ +US_OPEN_SQUARE_BRACKET=87, +/** +* Used for miscellaneous characters; it can vary by keyboard. +* For the US standard keyboard, the '\|' key +*/ +US_BACKSLASH=88, +/** +* Used for miscellaneous characters; it can vary by keyboard. +* For the US standard keyboard, the ']}' key +*/ +US_CLOSE_SQUARE_BRACKET=89, +/** +* Used for miscellaneous characters; it can vary by keyboard. +* For the US standard keyboard, the ''"' key +*/ +US_QUOTE=90, +/** +* Used for miscellaneous characters; it can vary by keyboard. +*/ +OEM_8=91, +/** +* Either the angle bracket key or the backslash key on the RT 102-key keyboard. +*/ +OEM_102=92, +NUMPAD_0=93, +NUMPAD_1=94, +NUMPAD_2=95, +NUMPAD_3=96, +NUMPAD_4=97, +NUMPAD_5=98, +NUMPAD_6=99, +NUMPAD_7=100, +NUMPAD_8=101, +NUMPAD_9=102, +NUMPAD_MULTIPLY=103, +NUMPAD_ADD=104, +NUMPAD_SEPARATOR=105, +NUMPAD_SUBTRACT=106, +NUMPAD_DECIMAL=107, +NUMPAD_DIVIDE=108, +/** +* Placed last to cover the length of the enum. +* Please do not depend on this value! +*/ +MAX_VALUE=109, +} - export class KeyMod { - static readonly CtrlCmd: number; - static readonly Shift: number; - static readonly Alt: number; - static readonly WinCtrl: number; - static chord(firstPart: number, secondPart: number): number; - } - /** - * MarkedString can be used to render human readable text. It is either a markdown string - * or a code-block that provides a language and a code snippet. Note that - * markdown strings will be sanitized - that means html will be escaped. - */ - export type MarkedString = string | { - readonly language: string; - readonly value: string; - }; +export class KeyMod { +static readonly CtrlCmd: number; +static readonly Shift: number; +static readonly Alt: number; +static readonly WinCtrl: number; +static chord(firstPart: number,secondPart: number): number; +} +/** +* MarkedString can be used to render human readable text. It is either a markdown string +* or a code-block that provides a language and a code snippet. Note that +* markdown strings will be sanitized - that means html will be escaped. +*/ +export type MarkedString=string|{ +readonly language: string; +readonly value: string; +}; - export interface IKeyboardEvent { - readonly browserEvent: KeyboardEvent; - readonly target: HTMLElement; - readonly ctrlKey: boolean; - readonly shiftKey: boolean; - readonly altKey: boolean; - readonly metaKey: boolean; - readonly keyCode: KeyCode; - asKeybinding(): number; - equals(keybinding: number): boolean; - preventDefault(): void; - stopPropagation(): void; - } - export interface IMouseEvent { - readonly browserEvent: MouseEvent; - readonly leftButton: boolean; - readonly middleButton: boolean; - readonly rightButton: boolean; - readonly target: HTMLElement; - readonly detail: number; - readonly posx: number; - readonly posy: number; - readonly ctrlKey: boolean; - readonly shiftKey: boolean; - readonly altKey: boolean; - readonly metaKey: boolean; - readonly timestamp: number; - preventDefault(): void; - stopPropagation(): void; - } +export interface IKeyboardEvent { +readonly browserEvent: KeyboardEvent; +readonly target: HTMLElement; +readonly ctrlKey: boolean; +readonly shiftKey: boolean; +readonly altKey: boolean; +readonly metaKey: boolean; +readonly keyCode: KeyCode; +asKeybinding(): number; +equals(keybinding: number): boolean; +preventDefault(): void; +stopPropagation(): void; +} +export interface IMouseEvent { +readonly browserEvent: MouseEvent; +readonly leftButton: boolean; +readonly middleButton: boolean; +readonly rightButton: boolean; +readonly target: HTMLElement; +readonly detail: number; +readonly posx: number; +readonly posy: number; +readonly ctrlKey: boolean; +readonly shiftKey: boolean; +readonly altKey: boolean; +readonly metaKey: boolean; +readonly timestamp: number; +preventDefault(): void; +stopPropagation(): void; +} - export interface IScrollEvent { - readonly scrollTop: number; - readonly scrollLeft: number; - readonly scrollWidth: number; - readonly scrollHeight: number; - readonly scrollTopChanged: boolean; - readonly scrollLeftChanged: boolean; - readonly scrollWidthChanged: boolean; - readonly scrollHeightChanged: boolean; - } +export interface IScrollEvent { +readonly scrollTop: number; +readonly scrollLeft: number; +readonly scrollWidth: number; +readonly scrollHeight: number; +readonly scrollTopChanged: boolean; +readonly scrollLeftChanged: boolean; +readonly scrollWidthChanged: boolean; +readonly scrollHeightChanged: boolean; +} - /** - * A position in the editor. This interface is suitable for serialization. - */ - export interface IPosition { - /** - * line number (starts at 1) - */ - readonly lineNumber: number; - /** - * column (the first character in a line is between column 1 and column 2) - */ - readonly column: number; - } +/** +* A position in the editor. This interface is suitable for serialization. +*/ +export interface IPosition { +/** +* line number (starts at 1) +*/ +readonly lineNumber: number; +/** +* column (the first character in a line is between column 1 and column 2) +*/ +readonly column: number; +} - /** - * A range in the editor. This interface is suitable for serialization. - */ - export interface IRange { - /** - * Line number on which the range starts (starts at 1). - */ - readonly startLineNumber: number; - /** - * Column on which the range starts in line `startLineNumber` (starts at 1). - */ - readonly startColumn: number; - /** - * Line number on which the range ends. - */ - readonly endLineNumber: number; - /** - * Column on which the range ends in line `endLineNumber`. - */ - readonly endColumn: number; - } +/** +* A range in the editor. This interface is suitable for serialization. +*/ +export interface IRange { +/** +* Line number on which the range starts (starts at 1). +*/ +readonly startLineNumber: number; +/** +* Column on which the range starts in line `startLineNumber` (starts at 1). +*/ +readonly startColumn: number; +/** +* Line number on which the range ends. +*/ +readonly endLineNumber: number; +/** +* Column on which the range ends in line `endLineNumber`. +*/ +readonly endColumn: number; +} - /** - * A selection in the editor. - * The selection is a range that has an orientation. - */ - export interface ISelection { - /** - * The line number on which the selection has started. - */ - readonly selectionStartLineNumber: number; - /** - * The column on `selectionStartLineNumber` where the selection has started. - */ - readonly selectionStartColumn: number; - /** - * The line number on which the selection has ended. - */ - readonly positionLineNumber: number; - /** - * The column on `positionLineNumber` where the selection has ended. - */ - readonly positionColumn: number; - } +/** +* A selection in the editor. +* The selection is a range that has an orientation. +*/ +export interface ISelection { +/** +* The line number on which the selection has started. +*/ +readonly selectionStartLineNumber: number; +/** +* The column on `selectionStartLineNumber` where the selection has started. +*/ +readonly selectionStartColumn: number; +/** +* The line number on which the selection has ended. +*/ +readonly positionLineNumber: number; +/** +* The column on `positionLineNumber` where the selection has ended. +*/ +readonly positionColumn: number; +} - /** - * A position in the editor. - */ - export class Position { - /** - * line number (starts at 1) - */ - readonly lineNumber: number; - /** - * column (the first character in a line is between column 1 and column 2) - */ - readonly column: number; - constructor(lineNumber: number, column: number); - /** - * Test if this position equals other position - */ - equals(other: IPosition): boolean; - /** - * Test if position `a` equals position `b` - */ - static equals(a: IPosition, b: IPosition): boolean; - /** - * Test if this position is before other position. - * If the two positions are equal, the result will be false. - */ - isBefore(other: IPosition): boolean; - /** - * Test if position `a` is before position `b`. - * If the two positions are equal, the result will be false. - */ - static isBefore(a: IPosition, b: IPosition): boolean; - /** - * Test if this position is before other position. - * If the two positions are equal, the result will be true. - */ - isBeforeOrEqual(other: IPosition): boolean; - /** - * Test if position `a` is before position `b`. - * If the two positions are equal, the result will be true. - */ - static isBeforeOrEqual(a: IPosition, b: IPosition): boolean; - /** - * Clone this position. - */ - clone(): Position; - /** - * Convert to a human-readable representation. - */ - toString(): string; - /** - * Create a `Position` from an `IPosition`. - */ - static lift(pos: IPosition): Position; - /** - * Test if `obj` is an `IPosition`. - */ - static isIPosition(obj: any): obj is IPosition; - } +/** +* A position in the editor. +*/ +export class Position { +/** +* line number (starts at 1) +*/ +readonly lineNumber: number; +/** +* column (the first character in a line is between column 1 and column 2) +*/ +readonly column: number; +constructor(lineNumber: number,column: number); +/** +* Test if this position equals other position +*/ +equals(other: IPosition): boolean; +/** +* Test if position `a` equals position `b` +*/ +static equals(a: IPosition,b: IPosition): boolean; +/** +* Test if this position is before other position. +* If the two positions are equal, the result will be false. +*/ +isBefore(other: IPosition): boolean; +/** +* Test if position `a` is before position `b`. +* If the two positions are equal, the result will be false. +*/ +static isBefore(a: IPosition,b: IPosition): boolean; +/** +* Test if this position is before other position. +* If the two positions are equal, the result will be true. +*/ +isBeforeOrEqual(other: IPosition): boolean; +/** +* Test if position `a` is before position `b`. +* If the two positions are equal, the result will be true. +*/ +static isBeforeOrEqual(a: IPosition,b: IPosition): boolean; +/** +* Clone this position. +*/ +clone(): Position; +/** +* Convert to a human-readable representation. +*/ +toString(): string; +/** +* Create a `Position` from an `IPosition`. +*/ +static lift(pos: IPosition): Position; +/** +* Test if `obj` is an `IPosition`. +*/ +static isIPosition(obj: any): obj is IPosition; +} - /** - * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn) - */ - export class Range { - /** - * Line number on which the range starts (starts at 1). - */ - readonly startLineNumber: number; - /** - * Column on which the range starts in line `startLineNumber` (starts at 1). - */ - readonly startColumn: number; - /** - * Line number on which the range ends. - */ - readonly endLineNumber: number; - /** - * Column on which the range ends in line `endLineNumber`. - */ - readonly endColumn: number; - constructor(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number); - /** - * Test if this range is empty. - */ - isEmpty(): boolean; - /** - * Test if `range` is empty. - */ - static isEmpty(range: IRange): boolean; - /** - * Test if position is in this range. If the position is at the edges, will return true. - */ - containsPosition(position: IPosition): boolean; - /** - * Test if `position` is in `range`. If the position is at the edges, will return true. - */ - static containsPosition(range: IRange, position: IPosition): boolean; - /** - * Test if range is in this range. If the range is equal to this range, will return true. - */ - containsRange(range: IRange): boolean; - /** - * Test if `otherRange` is in `range`. If the ranges are equal, will return true. - */ - static containsRange(range: IRange, otherRange: IRange): boolean; - /** - * A reunion of the two ranges. - * The smallest position will be used as the start point, and the largest one as the end point. - */ - plusRange(range: IRange): Range; - /** - * A reunion of the two ranges. - * The smallest position will be used as the start point, and the largest one as the end point. - */ - static plusRange(a: IRange, b: IRange): Range; - /** - * A intersection of the two ranges. - */ - intersectRanges(range: IRange): Range; - /** - * A intersection of the two ranges. - */ - static intersectRanges(a: IRange, b: IRange): Range; - /** - * Test if this range equals other. - */ - equalsRange(other: IRange): boolean; - /** - * Test if range `a` equals `b`. - */ - static equalsRange(a: IRange, b: IRange): boolean; - /** - * Return the end position (which will be after or equal to the start position) - */ - getEndPosition(): Position; - /** - * Return the start position (which will be before or equal to the end position) - */ - getStartPosition(): Position; - /** - * Clone this range. - */ - cloneRange(): Range; - /** - * Transform to a user presentable string representation. - */ - toString(): string; - /** - * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position. - */ - setEndPosition(endLineNumber: number, endColumn: number): Range; - /** - * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position. - */ - setStartPosition(startLineNumber: number, startColumn: number): Range; - /** - * Create a new empty range using this range's start position. - */ - collapseToStart(): Range; - /** - * Create a new empty range using this range's start position. - */ - static collapseToStart(range: IRange): Range; - /** - * Create a `Range` from an `IRange`. - */ - static lift(range: IRange): Range; - /** - * Test if `obj` is an `IRange`. - */ - static isIRange(obj: any): obj is IRange; - /** - * Test if the two ranges are touching in any way. - */ - static areIntersectingOrTouching(a: IRange, b: IRange): boolean; - /** - * A function that compares ranges, useful for sorting ranges - * It will first compare ranges on the startPosition and then on the endPosition - */ - static compareRangesUsingStarts(a: IRange, b: IRange): number; - /** - * A function that compares ranges, useful for sorting ranges - * It will first compare ranges on the endPosition and then on the startPosition - */ - static compareRangesUsingEnds(a: IRange, b: IRange): number; - /** - * Test if the range spans multiple lines. - */ - static spansMultipleLines(range: IRange): boolean; - } +/** +* A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn) +*/ +export class Range { +/** +* Line number on which the range starts (starts at 1). +*/ +readonly startLineNumber: number; +/** +* Column on which the range starts in line `startLineNumber` (starts at 1). +*/ +readonly startColumn: number; +/** +* Line number on which the range ends. +*/ +readonly endLineNumber: number; +/** +* Column on which the range ends in line `endLineNumber`. +*/ +readonly endColumn: number; +constructor(startLineNumber: number,startColumn: number,endLineNumber: number,endColumn: number); +/** +* Test if this range is empty. +*/ +isEmpty(): boolean; +/** +* Test if `range` is empty. +*/ +static isEmpty(range: IRange): boolean; +/** +* Test if position is in this range. If the position is at the edges, will return true. +*/ +containsPosition(position: IPosition): boolean; +/** +* Test if `position` is in `range`. If the position is at the edges, will return true. +*/ +static containsPosition(range: IRange,position: IPosition): boolean; +/** +* Test if range is in this range. If the range is equal to this range, will return true. +*/ +containsRange(range: IRange): boolean; +/** +* Test if `otherRange` is in `range`. If the ranges are equal, will return true. +*/ +static containsRange(range: IRange,otherRange: IRange): boolean; +/** +* A reunion of the two ranges. +* The smallest position will be used as the start point, and the largest one as the end point. +*/ +plusRange(range: IRange): Range; +/** +* A reunion of the two ranges. +* The smallest position will be used as the start point, and the largest one as the end point. +*/ +static plusRange(a: IRange,b: IRange): Range; +/** +* A intersection of the two ranges. +*/ +intersectRanges(range: IRange): Range; +/** +* A intersection of the two ranges. +*/ +static intersectRanges(a: IRange,b: IRange): Range; +/** +* Test if this range equals other. +*/ +equalsRange(other: IRange): boolean; +/** +* Test if range `a` equals `b`. +*/ +static equalsRange(a: IRange,b: IRange): boolean; +/** +* Return the end position (which will be after or equal to the start position) +*/ +getEndPosition(): Position; +/** +* Return the start position (which will be before or equal to the end position) +*/ +getStartPosition(): Position; +/** +* Clone this range. +*/ +cloneRange(): Range; +/** +* Transform to a user presentable string representation. +*/ +toString(): string; +/** +* Create a new range using this range's start position, and using endLineNumber and endColumn as the end position. +*/ +setEndPosition(endLineNumber: number,endColumn: number): Range; +/** +* Create a new range using this range's end position, and using startLineNumber and startColumn as the start position. +*/ +setStartPosition(startLineNumber: number,startColumn: number): Range; +/** +* Create a new empty range using this range's start position. +*/ +collapseToStart(): Range; +/** +* Create a new empty range using this range's start position. +*/ +static collapseToStart(range: IRange): Range; +/** +* Create a `Range` from an `IRange`. +*/ +static lift(range: IRange): Range; +/** +* Test if `obj` is an `IRange`. +*/ +static isIRange(obj: any): obj is IRange; +/** +* Test if the two ranges are touching in any way. +*/ +static areIntersectingOrTouching(a: IRange,b: IRange): boolean; +/** +* A function that compares ranges, useful for sorting ranges +* It will first compare ranges on the startPosition and then on the endPosition +*/ +static compareRangesUsingStarts(a: IRange,b: IRange): number; +/** +* A function that compares ranges, useful for sorting ranges +* It will first compare ranges on the endPosition and then on the startPosition +*/ +static compareRangesUsingEnds(a: IRange,b: IRange): number; +/** +* Test if the range spans multiple lines. +*/ +static spansMultipleLines(range: IRange): boolean; +} - /** - * A selection in the editor. - * The selection is a range that has an orientation. - */ - export class Selection extends Range { - /** - * The line number on which the selection has started. - */ - readonly selectionStartLineNumber: number; - /** - * The column on `selectionStartLineNumber` where the selection has started. - */ - readonly selectionStartColumn: number; - /** - * The line number on which the selection has ended. - */ - readonly positionLineNumber: number; - /** - * The column on `positionLineNumber` where the selection has ended. - */ - readonly positionColumn: number; - constructor(selectionStartLineNumber: number, selectionStartColumn: number, positionLineNumber: number, positionColumn: number); - /** - * Clone this selection. - */ - clone(): Selection; - /** - * Transform to a human-readable representation. - */ - toString(): string; - /** - * Test if equals other selection. - */ - equalsSelection(other: ISelection): boolean; - /** - * Test if the two selections are equal. - */ - static selectionsEqual(a: ISelection, b: ISelection): boolean; - /** - * Get directions (LTR or RTL). - */ - getDirection(): SelectionDirection; - /** - * Create a new selection with a different `positionLineNumber` and `positionColumn`. - */ - setEndPosition(endLineNumber: number, endColumn: number): Selection; - /** - * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`. - */ - setStartPosition(startLineNumber: number, startColumn: number): Selection; - /** - * Create a `Selection` from an `ISelection`. - */ - static liftSelection(sel: ISelection): Selection; - /** - * `a` equals `b`. - */ - static selectionsArrEqual(a: ISelection[], b: ISelection[]): boolean; - /** - * Test if `obj` is an `ISelection`. - */ - static isISelection(obj: any): obj is ISelection; - /** - * Create with a direction. - */ - static createWithDirection(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, direction: SelectionDirection): Selection; - } +/** +* A selection in the editor. +* The selection is a range that has an orientation. +*/ +export class Selection extends Range { +/** +* The line number on which the selection has started. +*/ +readonly selectionStartLineNumber: number; +/** +* The column on `selectionStartLineNumber` where the selection has started. +*/ +readonly selectionStartColumn: number; +/** +* The line number on which the selection has ended. +*/ +readonly positionLineNumber: number; +/** +* The column on `positionLineNumber` where the selection has ended. +*/ +readonly positionColumn: number; +constructor(selectionStartLineNumber: number,selectionStartColumn: number,positionLineNumber: number,positionColumn: number); +/** +* Clone this selection. +*/ +clone(): Selection; +/** +* Transform to a human-readable representation. +*/ +toString(): string; +/** +* Test if equals other selection. +*/ +equalsSelection(other: ISelection): boolean; +/** +* Test if the two selections are equal. +*/ +static selectionsEqual(a: ISelection,b: ISelection): boolean; +/** +* Get directions (LTR or RTL). +*/ +getDirection(): SelectionDirection; +/** +* Create a new selection with a different `positionLineNumber` and `positionColumn`. +*/ +setEndPosition(endLineNumber: number,endColumn: number): Selection; +/** +* Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`. +*/ +setStartPosition(startLineNumber: number,startColumn: number): Selection; +/** +* Create a `Selection` from an `ISelection`. +*/ +static liftSelection(sel: ISelection): Selection; +/** +* `a` equals `b`. +*/ +static selectionsArrEqual(a: ISelection[],b: ISelection[]): boolean; +/** +* Test if `obj` is an `ISelection`. +*/ +static isISelection(obj: any): obj is ISelection; +/** +* Create with a direction. +*/ +static createWithDirection(startLineNumber: number,startColumn: number,endLineNumber: number,endColumn: number,direction: SelectionDirection): Selection; +} - /** - * The direction of a selection. - */ - export enum SelectionDirection { - /** - * The selection starts above where it ends. - */ - LTR = 0, - /** - * The selection starts below where it ends. - */ - RTL = 1, - } +/** +* The direction of a selection. +*/ +export enum SelectionDirection { +/** +* The selection starts above where it ends. +*/ +LTR=0, +/** +* The selection starts below where it ends. +*/ +RTL=1, +} } declare module monaco.editor { - /** - * Create a new editor under `domElement`. - * `domElement` should be empty (not contain other dom nodes). - * The editor will read the size of `domElement`. - */ - export function create(domElement: HTMLElement, options?: IEditorConstructionOptions, override?: IEditorOverrideServices): IStandaloneCodeEditor; - - /** - * Create a new diff editor under `domElement`. - * `domElement` should be empty (not contain other dom nodes). - * The editor will read the size of `domElement`. - */ - export function createDiffEditor(domElement: HTMLElement, options?: IDiffEditorConstructionOptions, override?: IEditorOverrideServices): IStandaloneDiffEditor; - - export interface IDiffNavigator { - canNavigate(): boolean; - next(): void; - previous(): void; - dispose(): void; - } - - export interface IDiffNavigatorOptions { - readonly followsCaret?: boolean; - readonly ignoreCharChanges?: boolean; - readonly alwaysRevealFirst?: boolean; - } - - export function createDiffNavigator(diffEditor: IStandaloneDiffEditor, opts?: IDiffNavigatorOptions): IDiffNavigator; - - /** - * Create a new editor model. - * You can specify the language that should be set for this model or let the language be inferred from the `uri`. - */ - export function createModel(value: string, language?: string, uri?: Uri): IModel; - - /** - * Change the language for a model. - */ - export function setModelLanguage(model: IModel, language: string): void; - - /** - * Set the markers for a model. - */ - export function setModelMarkers(model: IModel, owner: string, markers: IMarkerData[]): void; - - /** - * Get the model that has `uri` if it exists. - */ - export function getModel(uri: Uri): IModel; - - /** - * Get all the created models. - */ - export function getModels(): IModel[]; - - /** - * Emitted when a model is created. - * @event - */ - export function onDidCreateModel(listener: (model: IModel) => void): IDisposable; - - /** - * Emitted right before a model is disposed. - * @event - */ - export function onWillDisposeModel(listener: (model: IModel) => void): IDisposable; - - /** - * Emitted when a different language is set to a model. - * @event - */ - export function onDidChangeModelLanguage(listener: (e: { - readonly model: IModel; - readonly oldLanguage: string; - }) => void): IDisposable; - - /** - * Create a new web worker that has model syncing capabilities built in. - * Specify an AMD module to load that will `create` an object that will be proxied. - */ - export function createWebWorker(opts: IWebWorkerOptions): MonacoWebWorker; - - /** - * Colorize the contents of `domNode` using attribute `data-lang`. - */ - export function colorizeElement(domNode: HTMLElement, options: IColorizerElementOptions): Promise; - - /** - * Colorize `text` using language `languageId`. - */ - export function colorize(text: string, languageId: string, options: IColorizerOptions): Promise; - - /** - * Colorize a line in a model. - */ - export function colorizeModelLine(model: IModel, lineNumber: number, tabSize?: number): string; - - /** - * A web worker that can provide a proxy to an arbitrary file. - */ - export interface MonacoWebWorker { - /** - * Terminate the web worker, thus invalidating the returned proxy. - */ - dispose(): void; - /** - * Get a proxy to the arbitrary loaded code. - */ - getProxy(): Promise; - /** - * Synchronize (send) the models at `resources` to the web worker, - * making them available in the monaco.worker.getMirrorModels(). - */ - withSyncedResources(resources: Uri[]): Promise; - } - - export interface IWebWorkerOptions { - /** - * The AMD moduleId to load. - * It should export a function `create` that should return the exported proxy. - */ - moduleId: string; - /** - * The data to send over when calling create on the module. - */ - createData?: any; - /** - * A label to be used to identify the web worker for debugging purposes. - */ - label?: string; - } - - /** - * The options to create an editor. - */ - export interface IEditorConstructionOptions extends ICodeEditorWidgetCreationOptions { - /** - * The initial value of the auto created model in the editor. - * To not create automatically a model, use `model: null`. - */ - value?: string; - /** - * The initial language of the auto created model in the editor. - * To not create automatically a model, use `model: null`. - */ - language?: string; - } - - /** - * The options to create a diff editor. - */ - export interface IDiffEditorConstructionOptions extends IDiffEditorOptions { - } - - export interface IStandaloneCodeEditor extends ICodeEditor { - addCommand(keybinding: number, handler: ICommandHandler, context: string): string; - createContextKey(key: string, defaultValue: T): IContextKey; - addAction(descriptor: IActionDescriptor): void; - } - - export interface IStandaloneDiffEditor extends IDiffEditor { - addCommand(keybinding: number, handler: ICommandHandler, context: string): string; - createContextKey(key: string, defaultValue: T): IContextKey; - addAction(descriptor: IActionDescriptor): void; - } - export interface ICommandHandler { - (...args: any[]): void; - } - - export interface IContextKey { - set(value: T): void; - reset(): void; - get(): T; - } - - export interface IEditorOverrideServices { - } - - /** - * A structure defining a problem/warning/etc. - */ - export interface IMarkerData { - code?: string; - severity: Severity; - message: string; - source?: string; - startLineNumber: number; - startColumn: number; - endLineNumber: number; - endColumn: number; - } - - export interface IColorizerOptions { - tabSize?: number; - } - - export interface IColorizerElementOptions extends IColorizerOptions { - theme?: string; - mimeType?: string; - } - - export enum ScrollbarVisibility { - Auto = 1, - Hidden = 2, - Visible = 3, - } - - /** - * Configuration options for editor scrollbars - */ - export interface IEditorScrollbarOptions { - /** - * The size of arrows (if displayed). - * Defaults to 11. - */ - arrowSize?: number; - /** - * Render vertical scrollbar. - * Accepted values: 'auto', 'visible', 'hidden'. - * Defaults to 'auto'. - */ - vertical?: string; - /** - * Render horizontal scrollbar. - * Accepted values: 'auto', 'visible', 'hidden'. - * Defaults to 'auto'. - */ - horizontal?: string; - /** - * Cast horizontal and vertical shadows when the content is scrolled. - * Defaults to true. - */ - useShadows?: boolean; - /** - * Render arrows at the top and bottom of the vertical scrollbar. - * Defaults to false. - */ - verticalHasArrows?: boolean; - /** - * Render arrows at the left and right of the horizontal scrollbar. - * Defaults to false. - */ - horizontalHasArrows?: boolean; - /** - * Listen to mouse wheel events and react to them by scrolling. - * Defaults to true. - */ - handleMouseWheel?: boolean; - /** - * Height in pixels for the horizontal scrollbar. - * Defaults to 10 (px). - */ - horizontalScrollbarSize?: number; - /** - * Width in pixels for the vertical scrollbar. - * Defaults to 10 (px). - */ - verticalScrollbarSize?: number; - /** - * Width in pixels for the vertical slider. - * Defaults to `verticalScrollbarSize`. - */ - verticalSliderSize?: number; - /** - * Height in pixels for the horizontal slider. - * Defaults to `horizontalScrollbarSize`. - */ - horizontalSliderSize?: number; - } - - /** - * Describes how to indent wrapped lines. - */ - export enum WrappingIndent { - /** - * No indentation => wrapped lines begin at column 1. - */ - None = 0, - /** - * Same => wrapped lines get the same indentation as the parent. - */ - Same = 1, - /** - * Indent => wrapped lines get +1 indentation as the parent. - */ - Indent = 2, - } - - export type LineNumbersOption = 'on' | 'off' | 'relative' | ((lineNumber: number) => string); - - /** - * Configuration options for the editor. - */ - export interface IEditorOptions { - /** - * Enable experimental screen reader support. - * Defaults to `true`. - */ - experimentalScreenReader?: boolean; - /** - * The aria label for the editor's textarea (when it is focused). - */ - ariaLabel?: string; - /** - * Render vertical lines at the specified columns. - * Defaults to empty array. - */ - rulers?: number[]; - /** - * A string containing the word separators used when doing word navigation. - * Defaults to `~!@#$%^&*()-=+[{]}\\|;:\'",.<>/? - */ - wordSeparators?: string; - /** - * Enable Linux primary clipboard. - * Defaults to true. - */ - selectionClipboard?: boolean; - /** - * Control the rendering of line numbers. - * If it is a function, it will be invoked when rendering a line number and the return value will be rendered. - * Otherwise, if it is a truey, line numbers will be rendered normally (equivalent of using an identity function). - * Otherwise, line numbers will not be rendered. - * Defaults to true. - */ - lineNumbers?: LineNumbersOption; - /** - * Should the corresponding line be selected when clicking on the line number? - * Defaults to true. - */ - selectOnLineNumbers?: boolean; - /** - * Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits. - * Defaults to 5. - */ - lineNumbersMinChars?: number; - /** - * Enable the rendering of the glyph margin. - * Defaults to true in vscode and to false in monaco-editor. - */ - glyphMargin?: boolean; - /** - * The width reserved for line decorations (in px). - * Line decorations are placed between line numbers and the editor content. - * Defaults to 10. - */ - lineDecorationsWidth?: number; - /** - * When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle. - * This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport. - * Defaults to 30 (px). - */ - revealHorizontalRightPadding?: number; - /** - * Render the editor selection with rounded borders. - * Defaults to true. - */ - roundedSelection?: boolean; - /** - * Theme to be used for rendering. Consists of two parts, the UI theme and the syntax theme, - * separated by a space. - * The current available UI themes are: 'vs' (default), 'vs-dark', 'hc-black' - * The syntax themes are contributed. The default is 'default-theme' - */ - theme?: string; - /** - * Should the editor be read only. - * Defaults to false. - */ - readOnly?: boolean; - /** - * Control the behavior and rendering of the scrollbars. - */ - scrollbar?: IEditorScrollbarOptions; - /** - * Display overflow widgets as `fixed`. - * Defaults to `false`. - */ - fixedOverflowWidgets?: boolean; - /** - * The number of vertical lanes the overview ruler should render. - * Defaults to 2. - */ - overviewRulerLanes?: number; - /** - * Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'. - * Defaults to 'blink'. - */ - cursorBlinking?: string; - /** - * Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl. - * Defaults to false. - */ - mouseWheelZoom?: boolean; - /** - * Control the cursor style, either 'block' or 'line'. - * Defaults to 'line'. - */ - cursorStyle?: string; - /** - * Enable font ligatures. - * Defaults to false. - */ - fontLigatures?: boolean; - /** - * Disable the use of `translate3d`. - * Defaults to false. - */ - disableTranslate3d?: boolean; - /** - * Should the cursor be hidden in the overview ruler. - * Defaults to false. - */ - hideCursorInOverviewRuler?: boolean; - /** - * Enable that scrolling can go one screen size after the last line. - * Defaults to true. - */ - scrollBeyondLastLine?: boolean; - /** - * Enable that the editor will install an interval to check if its container dom node size has changed. - * Enabling this might have a severe performance impact. - * Defaults to false. - */ - automaticLayout?: boolean; - /** - * Control the wrapping strategy of the editor. - * Using -1 means no wrapping whatsoever. - * Using 0 means viewport width wrapping (ajusts with the resizing of the editor). - * Using a positive number means wrapping after a fixed number of characters. - * Defaults to 300. - */ - wrappingColumn?: number; - /** - * Control the alternate style of viewport wrapping. - * When set to true viewport wrapping is used only when the window width is less than the number of columns specified in the wrappingColumn property. Has no effect if wrappingColumn is not a positive number. - * Defaults to false. - */ - wordWrap?: boolean; - /** - * Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'. - * Defaults to 'same' in vscode and to 'none' in monaco-editor. - */ - wrappingIndent?: string; - /** - * Configure word wrapping characters. A break will be introduced before these characters. - * Defaults to '{([+'. - */ - wordWrapBreakBeforeCharacters?: string; - /** - * Configure word wrapping characters. A break will be introduced after these characters. - * Defaults to ' \t})]?|&,;'. - */ - wordWrapBreakAfterCharacters?: string; - /** - * Configure word wrapping characters. A break will be introduced after these characters only if no `wordWrapBreakBeforeCharacters` or `wordWrapBreakAfterCharacters` were found. - * Defaults to '.'. - */ - wordWrapBreakObtrusiveCharacters?: string; - /** - * Performance guard: Stop rendering a line after x characters. - * Defaults to 10000 if wrappingColumn is -1. Defaults to -1 if wrappingColumn is >= 0. - * Use -1 to never stop rendering - */ - stopRenderingLineAfter?: number; - /** - * Enable hover. - * Defaults to true. - */ - hover?: boolean; - /** - * Enable custom contextmenu. - * Defaults to true. - */ - contextmenu?: boolean; - /** - * A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events. - * Defaults to 1. - */ - mouseWheelScrollSensitivity?: number; - /** - * Enable quick suggestions (shadow suggestions) - * Defaults to true. - */ - quickSuggestions?: boolean; - /** - * Quick suggestions show delay (in ms) - * Defaults to 500 (ms) - */ - quickSuggestionsDelay?: number; - /** - * Enables parameter hints - */ - parameterHints?: boolean; - /** - * Render icons in suggestions box. - * Defaults to true. - */ - iconsInSuggestions?: boolean; - /** - * Enable auto closing brackets. - * Defaults to true. - */ - autoClosingBrackets?: boolean; - /** - * Enable format on type. - * Defaults to false. - */ - formatOnType?: boolean; - /** - * Enable the suggestion box to pop-up on trigger characters. - * Defaults to true. - */ - suggestOnTriggerCharacters?: boolean; - /** - * Accept suggestions on ENTER. - * Defaults to true. - */ - acceptSuggestionOnEnter?: boolean; - /** - * Enable snippet suggestions. Default to 'true'. - */ - snippetSuggestions?: 'top' | 'bottom' | 'inline' | 'none'; - /** - * Copying without a selection copies the current line. - */ - emptySelectionClipboard?: boolean; - /** - * Enable tab completion. Defaults to 'false' - */ - tabCompletion?: boolean; - /** - * Enable word based suggestions. Defaults to 'true' - */ - wordBasedSuggestions?: boolean; - /** - * The font size for the suggest widget. - * Defaults to the editor font size. - */ - suggestFontSize?: number; - /** - * The line height for the suggest widget. - * Defaults to the editor line height. - */ - suggestLineHeight?: number; - /** - * Enable selection highlight. - * Defaults to true. - */ - selectionHighlight?: boolean; - /** - * Show code lens - * Defaults to true. - */ - codeLens?: boolean; - /** - * Enable code folding - * Defaults to true in vscode and to false in monaco-editor. - */ - folding?: boolean; - /** - * Enable rendering of whitespace. - * Defaults to none. - */ - renderWhitespace?: 'none' | 'boundary' | 'all'; - /** - * Enable rendering of control characters. - * Defaults to false. - */ - renderControlCharacters?: boolean; - /** - * Enable rendering of indent guides. - * Defaults to false. - */ - renderIndentGuides?: boolean; - /** - * Enable rendering of current line highlight. - * Defaults to true. - */ - renderLineHighlight?: boolean; - /** - * Inserting and deleting whitespace follows tab stops. - */ - useTabStops?: boolean; - /** - * The font family - */ - fontFamily?: string; - /** - * The font weight - */ - fontWeight?: 'normal' | 'bold' | 'bolder' | 'lighter' | 'initial' | 'inherit' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'; - /** - * The font size - */ - fontSize?: number; - /** - * The line height - */ - lineHeight?: number; - } - - /** - * Configuration options for the diff editor. - */ - export interface IDiffEditorOptions extends IEditorOptions { - /** - * Allow the user to resize the diff editor split view. - * Defaults to true. - */ - enableSplitViewResizing?: boolean; - /** - * Render the differences in two side-by-side editors. - * Defaults to true. - */ - renderSideBySide?: boolean; - /** - * Compute the diff by ignoring leading/trailing whitespace - * Defaults to true. - */ - ignoreTrimWhitespace?: boolean; - /** - * Original model should be editable? - * Defaults to false. - */ - originalEditable?: boolean; - } - - export class InternalEditorScrollbarOptions { - readonly _internalEditorScrollbarOptionsBrand: void; - readonly arrowSize: number; - readonly vertical: ScrollbarVisibility; - readonly horizontal: ScrollbarVisibility; - readonly useShadows: boolean; - readonly verticalHasArrows: boolean; - readonly horizontalHasArrows: boolean; - readonly handleMouseWheel: boolean; - readonly horizontalScrollbarSize: number; - readonly horizontalSliderSize: number; - readonly verticalScrollbarSize: number; - readonly verticalSliderSize: number; - readonly mouseWheelScrollSensitivity: number; - } - - export class EditorWrappingInfo { - readonly _editorWrappingInfoBrand: void; - readonly isViewportWrapping: boolean; - readonly wrappingColumn: number; - readonly wrappingIndent: WrappingIndent; - readonly wordWrapBreakBeforeCharacters: string; - readonly wordWrapBreakAfterCharacters: string; - readonly wordWrapBreakObtrusiveCharacters: string; - } - - export class InternalEditorViewOptions { - readonly _internalEditorViewOptionsBrand: void; - readonly theme: string; - readonly canUseTranslate3d: boolean; - readonly experimentalScreenReader: boolean; - readonly rulers: number[]; - readonly ariaLabel: string; - readonly renderLineNumbers: boolean; - readonly renderCustomLineNumbers: (lineNumber: number) => string; - readonly renderRelativeLineNumbers: boolean; - readonly selectOnLineNumbers: boolean; - readonly glyphMargin: boolean; - readonly revealHorizontalRightPadding: number; - readonly roundedSelection: boolean; - readonly overviewRulerLanes: number; - readonly cursorBlinking: TextEditorCursorBlinkingStyle; - readonly mouseWheelZoom: boolean; - readonly cursorStyle: TextEditorCursorStyle; - readonly hideCursorInOverviewRuler: boolean; - readonly scrollBeyondLastLine: boolean; - readonly editorClassName: string; - readonly stopRenderingLineAfter: number; - readonly renderWhitespace: 'none' | 'boundary' | 'all'; - readonly renderControlCharacters: boolean; - readonly renderIndentGuides: boolean; - readonly renderLineHighlight: boolean; - readonly scrollbar: InternalEditorScrollbarOptions; - readonly fixedOverflowWidgets: boolean; - } - - export interface IViewConfigurationChangedEvent { - readonly theme: boolean; - readonly canUseTranslate3d: boolean; - readonly experimentalScreenReader: boolean; - readonly rulers: boolean; - readonly ariaLabel: boolean; - readonly renderLineNumbers: boolean; - readonly renderCustomLineNumbers: boolean; - readonly renderRelativeLineNumbers: boolean; - readonly selectOnLineNumbers: boolean; - readonly glyphMargin: boolean; - readonly revealHorizontalRightPadding: boolean; - readonly roundedSelection: boolean; - readonly overviewRulerLanes: boolean; - readonly cursorBlinking: boolean; - readonly mouseWheelZoom: boolean; - readonly cursorStyle: boolean; - readonly hideCursorInOverviewRuler: boolean; - readonly scrollBeyondLastLine: boolean; - readonly editorClassName: boolean; - readonly stopRenderingLineAfter: boolean; - readonly renderWhitespace: boolean; - readonly renderControlCharacters: boolean; - readonly renderIndentGuides: boolean; - readonly renderLineHighlight: boolean; - readonly scrollbar: boolean; - readonly fixedOverflowWidgets: boolean; - } - - export class EditorContribOptions { - readonly selectionClipboard: boolean; - readonly hover: boolean; - readonly contextmenu: boolean; - readonly quickSuggestions: boolean; - readonly quickSuggestionsDelay: number; - readonly parameterHints: boolean; - readonly iconsInSuggestions: boolean; - readonly formatOnType: boolean; - readonly suggestOnTriggerCharacters: boolean; - readonly acceptSuggestionOnEnter: boolean; - readonly snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none'; - readonly emptySelectionClipboard: boolean; - readonly tabCompletion: boolean; - readonly wordBasedSuggestions: boolean; - readonly suggestFontSize: number; - readonly suggestLineHeight: number; - readonly selectionHighlight: boolean; - readonly codeLens: boolean; - readonly folding: boolean; - } - - /** - * Internal configuration options (transformed or computed) for the editor. - */ - export class InternalEditorOptions { - readonly _internalEditorOptionsBrand: void; - readonly lineHeight: number; - readonly readOnly: boolean; - readonly wordSeparators: string; - readonly autoClosingBrackets: boolean; - readonly useTabStops: boolean; - readonly tabFocusMode: boolean; - readonly layoutInfo: EditorLayoutInfo; - readonly fontInfo: FontInfo; - readonly viewInfo: InternalEditorViewOptions; - readonly wrappingInfo: EditorWrappingInfo; - readonly contribInfo: EditorContribOptions; - } - - /** - * An event describing that the configuration of the editor has changed. - */ - export interface IConfigurationChangedEvent { - readonly lineHeight: boolean; - readonly readOnly: boolean; - readonly wordSeparators: boolean; - readonly autoClosingBrackets: boolean; - readonly useTabStops: boolean; - readonly tabFocusMode: boolean; - readonly layoutInfo: boolean; - readonly fontInfo: boolean; - readonly viewInfo: IViewConfigurationChangedEvent; - readonly wrappingInfo: boolean; - readonly contribInfo: boolean; - } - - /** - * Vertical Lane in the overview ruler of the editor. - */ - export enum OverviewRulerLane { - Left = 1, - Center = 2, - Right = 4, - Full = 7, - } - - /** - * Options for rendering a model decoration in the overview ruler. - */ - export interface IModelDecorationOverviewRulerOptions { - /** - * CSS color to render in the overview ruler. - * e.g.: rgba(100, 100, 100, 0.5) - */ - color: string; - /** - * CSS color to render in the overview ruler. - * e.g.: rgba(100, 100, 100, 0.5) - */ - darkColor: string; - /** - * The position in the overview ruler. - */ - position: OverviewRulerLane; - } - - /** - * Options for a model decoration. - */ - export interface IModelDecorationOptions { - /** - * Customize the growing behaviour of the decoration when typing at the edges of the decoration. - * Defaults to TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges - */ - stickiness?: TrackedRangeStickiness; - /** - * CSS class name describing the decoration. - */ - className?: string; - /** - * Array of MarkedString to render as the decoration message. - */ - hoverMessage?: MarkedString | MarkedString[]; - /** - * Should the decoration expand to encompass a whole line. - */ - isWholeLine?: boolean; - /** - * @deprecated : Use `overviewRuler` instead - */ - showInOverviewRuler?: string; - /** - * If set, render this decoration in the overview ruler. - */ - overviewRuler?: IModelDecorationOverviewRulerOptions; - /** - * If set, the decoration will be rendered in the glyph margin with this CSS class name. - */ - glyphMarginClassName?: string; - /** - * If set, the decoration will be rendered in the lines decorations with this CSS class name. - */ - linesDecorationsClassName?: string; - /** - * If set, the decoration will be rendered inline with the text with this CSS class name. - * Please use this only for CSS rules that must impact the text. For example, use `className` - * to have a background color decoration. - */ - inlineClassName?: string; - /** - * If set, the decoration will be rendered before the text with this CSS class name. - */ - beforeContentClassName?: string; - /** - * If set, the decoration will be rendered after the text with this CSS class name. - */ - afterContentClassName?: string; - } - - /** - * New model decorations. - */ - export interface IModelDeltaDecoration { - /** - * Range that this decoration covers. - */ - range: IRange; - /** - * Options associated with this decoration. - */ - options: IModelDecorationOptions; - } - - /** - * A decoration in the model. - */ - export interface IModelDecoration { - /** - * Identifier for a decoration. - */ - readonly id: string; - /** - * Identifier for a decoration's owener. - */ - readonly ownerId: number; - /** - * Range that this decoration covers. - */ - readonly range: Range; - /** - * Options associated with this decoration. - */ - readonly options: IModelDecorationOptions; - } - - /** - * Word inside a model. - */ - export interface IWordAtPosition { - /** - * The word. - */ - readonly word: string; - /** - * The column where the word starts. - */ - readonly startColumn: number; - /** - * The column where the word ends. - */ - readonly endColumn: number; - } - - /** - * End of line character preference. - */ - export enum EndOfLinePreference { - /** - * Use the end of line character identified in the text buffer. - */ - TextDefined = 0, - /** - * Use line feed (\n) as the end of line character. - */ - LF = 1, - /** - * Use carriage return and line feed (\r\n) as the end of line character. - */ - CRLF = 2, - } - - /** - * The default end of line to use when instantiating models. - */ - export enum DefaultEndOfLine { - /** - * Use line feed (\n) as the end of line character. - */ - LF = 1, - /** - * Use carriage return and line feed (\r\n) as the end of line character. - */ - CRLF = 2, - } - - /** - * End of line character preference. - */ - export enum EndOfLineSequence { - /** - * Use line feed (\n) as the end of line character. - */ - LF = 0, - /** - * Use carriage return and line feed (\r\n) as the end of line character. - */ - CRLF = 1, - } - - /** - * And identifier for a single edit operation. - */ - export interface ISingleEditOperationIdentifier { - /** - * Identifier major - */ - major: number; - /** - * Identifier minor - */ - minor: number; - } - - /** - * A builder and helper for edit operations for a command. - */ - export interface IEditOperationBuilder { - /** - * Add a new edit operation (a replace operation). - * @param range The range to replace (delete). May be empty to represent a simple insert. - * @param text The text to replace with. May be null to represent a simple delete. - */ - addEditOperation(range: Range, text: string): void; - /** - * Track `selection` when applying edit operations. - * A best effort will be made to not grow/expand the selection. - * An empty selection will clamp to a nearby character. - * @param selection The selection to track. - * @param trackPreviousOnEmpty If set, and the selection is empty, indicates whether the selection - * should clamp to the previous or the next character. - * @return A unique identifer. - */ - trackSelection(selection: Selection, trackPreviousOnEmpty?: boolean): string; - } - - /** - * A helper for computing cursor state after a command. - */ - export interface ICursorStateComputerData { - /** - * Get the inverse edit operations of the added edit operations. - */ - getInverseEditOperations(): IIdentifiedSingleEditOperation[]; - /** - * Get a previously tracked selection. - * @param id The unique identifier returned by `trackSelection`. - * @return The selection. - */ - getTrackedSelection(id: string): Selection; - } - - /** - * A command that modifies text / cursor state on a model. - */ - export interface ICommand { - /** - * Get the edit operations needed to execute this command. - * @param model The model the command will execute on. - * @param builder A helper to collect the needed edit operations and to track selections. - */ - getEditOperations(model: ITokenizedModel, builder: IEditOperationBuilder): void; - /** - * Compute the cursor state after the edit operations were applied. - * @param model The model the commad has executed on. - * @param helper A helper to get inverse edit operations and to get previously tracked selections. - * @return The cursor state after the command executed. - */ - computeCursorState(model: ITokenizedModel, helper: ICursorStateComputerData): Selection; - } - - /** - * A single edit operation, that acts as a simple replace. - * i.e. Replace text at `range` with `text` in model. - */ - export interface ISingleEditOperation { - /** - * The range to replace. This can be empty to emulate a simple insert. - */ - range: IRange; - /** - * The text to replace with. This can be null to emulate a simple delete. - */ - text: string; - /** - * This indicates that this operation has "insert" semantics. - * i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. - */ - forceMoveMarkers?: boolean; - } - - /** - * A single edit operation, that has an identifier. - */ - export interface IIdentifiedSingleEditOperation { - /** - * An identifier associated with this single edit operation. - */ - identifier: ISingleEditOperationIdentifier; - /** - * The range to replace. This can be empty to emulate a simple insert. - */ - range: Range; - /** - * The text to replace with. This can be null to emulate a simple delete. - */ - text: string; - /** - * This indicates that this operation has "insert" semantics. - * i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. - */ - forceMoveMarkers: boolean; - /** - * This indicates that this operation is inserting automatic whitespace - * that can be removed on next model edit operation if `config.trimAutoWhitespace` is true. - */ - isAutoWhitespaceEdit?: boolean; - } - - /** - * A callback that can compute the cursor state after applying a series of edit operations. - */ - export interface ICursorStateComputer { - /** - * A callback that can compute the resulting cursors state after some edit operations have been executed. - */ - (inverseEditOperations: IIdentifiedSingleEditOperation[]): Selection[]; - } - - export class TextModelResolvedOptions { - _textModelResolvedOptionsBrand: void; - readonly tabSize: number; - readonly insertSpaces: boolean; - readonly defaultEOL: DefaultEndOfLine; - readonly trimAutoWhitespace: boolean; - } - - export interface ITextModelUpdateOptions { - tabSize?: number; - insertSpaces?: boolean; - trimAutoWhitespace?: boolean; - } - - export interface IModelOptionsChangedEvent { - readonly tabSize: boolean; - readonly insertSpaces: boolean; - readonly trimAutoWhitespace: boolean; - } - - /** - * A textual read-only model. - */ - export interface ITextModel { - getOptions(): TextModelResolvedOptions; - /** - * Get the current version id of the model. - * Anytime a change happens to the model (even undo/redo), - * the version id is incremented. - */ - getVersionId(): number; - /** - * Get the alternative version id of the model. - * This alternative version id is not always incremented, - * it will return the same values in the case of undo-redo. - */ - getAlternativeVersionId(): number; - /** - * Replace the entire text buffer value contained in this model. - */ - setValue(newValue: string): void; - /** - * Replace the entire text buffer value contained in this model. - */ - setValueFromRawText(newValue: IRawText): void; - /** - * Get the text stored in this model. - * @param eol The end of line character preference. Defaults to `EndOfLinePreference.TextDefined`. - * @param preserverBOM Preserve a BOM character if it was detected when the model was constructed. - * @return The text. - */ - getValue(eol?: EndOfLinePreference, preserveBOM?: boolean): string; - /** - * Get the length of the text stored in this model. - */ - getValueLength(eol?: EndOfLinePreference, preserveBOM?: boolean): number; - /** - * Get the raw text stored in this model. - */ - toRawText(): IRawText; - /** - * Check if the raw text stored in this model equals another raw text. - */ - equals(other: IRawText): boolean; - /** - * Get the text in a certain range. - * @param range The range describing what text to get. - * @param eol The end of line character preference. This will only be used for multiline ranges. Defaults to `EndOfLinePreference.TextDefined`. - * @return The text. - */ - getValueInRange(range: IRange, eol?: EndOfLinePreference): string; - /** - * Get the length of text in a certain range. - * @param range The range describing what text length to get. - * @return The text length. - */ - getValueLengthInRange(range: IRange): number; - /** - * Get the number of lines in the model. - */ - getLineCount(): number; - /** - * Get the text for a certain line. - */ - getLineContent(lineNumber: number): string; - /** - * Get the text for all lines. - */ - getLinesContent(): string[]; - /** - * Get the end of line sequence predominantly used in the text buffer. - * @return EOL char sequence (e.g.: '\n' or '\r\n'). - */ - getEOL(): string; - /** - * Change the end of line sequence used in the text buffer. - */ - setEOL(eol: EndOfLineSequence): void; - /** - * Get the minimum legal column for line at `lineNumber` - */ - getLineMinColumn(lineNumber: number): number; - /** - * Get the maximum legal column for line at `lineNumber` - */ - getLineMaxColumn(lineNumber: number): number; - /** - * Returns the column before the first non whitespace character for line at `lineNumber`. - * Returns 0 if line is empty or contains only whitespace. - */ - getLineFirstNonWhitespaceColumn(lineNumber: number): number; - /** - * Returns the column after the last non whitespace character for line at `lineNumber`. - * Returns 0 if line is empty or contains only whitespace. - */ - getLineLastNonWhitespaceColumn(lineNumber: number): number; - /** - * Create a valid position, - */ - validatePosition(position: IPosition): Position; - /** - * Advances the given position by the given offest (negative offsets are also accepted) - * and returns it as a new valid position. - * - * If the offset and position are such that their combination goes beyond the beginning or - * end of the model, throws an exception. - * - * If the ofsset is such that the new position would be in the middle of a multi-byte - * line terminator, throws an exception. - */ - modifyPosition(position: IPosition, offset: number): Position; - /** - * Create a valid range. - */ - validateRange(range: IRange): Range; - /** - * Converts the position to a zero-based offset. - * - * The position will be [adjusted](#TextDocument.validatePosition). - * - * @param position A position. - * @return A valid zero-based offset. - */ - getOffsetAt(position: IPosition): number; - /** - * Converts a zero-based offset to a position. - * - * @param offset A zero-based offset. - * @return A valid [position](#Position). - */ - getPositionAt(offset: number): Position; - /** - * Get a range covering the entire model - */ - getFullModelRange(): Range; - /** - * Returns iff the model was disposed or not. - */ - isDisposed(): boolean; - /** - * Search the model. - * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. - * @param searchOnlyEditableRange Limit the searching to only search inside the editable range of the model. - * @param isRegex Used to indicate that `searchString` is a regular expression. - * @param matchCase Force the matching to match lower/upper case exactly. - * @param wholeWord Force the matching to match entire words only. - * @param limitResultCount Limit the number of results - * @return The ranges where the matches are. It is empty if not matches have been found. - */ - findMatches(searchString: string, searchOnlyEditableRange: boolean, isRegex: boolean, matchCase: boolean, wholeWord: boolean, limitResultCount?: number): Range[]; - /** - * Search the model. - * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. - * @param searchScope Limit the searching to only search inside this range. - * @param isRegex Used to indicate that `searchString` is a regular expression. - * @param matchCase Force the matching to match lower/upper case exactly. - * @param wholeWord Force the matching to match entire words only. - * @param limitResultCount Limit the number of results - * @return The ranges where the matches are. It is empty if no matches have been found. - */ - findMatches(searchString: string, searchScope: IRange, isRegex: boolean, matchCase: boolean, wholeWord: boolean, limitResultCount?: number): Range[]; - /** - * Search the model for the next match. Loops to the beginning of the model if needed. - * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. - * @param searchStart Start the searching at the specified position. - * @param isRegex Used to indicate that `searchString` is a regular expression. - * @param matchCase Force the matching to match lower/upper case exactly. - * @param wholeWord Force the matching to match entire words only. - * @return The range where the next match is. It is null if no next match has been found. - */ - findNextMatch(searchString: string, searchStart: IPosition, isRegex: boolean, matchCase: boolean, wholeWord: boolean): Range; - /** - * Search the model for the previous match. Loops to the end of the model if needed. - * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. - * @param searchStart Start the searching at the specified position. - * @param isRegex Used to indicate that `searchString` is a regular expression. - * @param matchCase Force the matching to match lower/upper case exactly. - * @param wholeWord Force the matching to match entire words only. - * @return The range where the previous match is. It is null if no previous match has been found. - */ - findPreviousMatch(searchString: string, searchStart: IPosition, isRegex: boolean, matchCase: boolean, wholeWord: boolean): Range; - } - - export interface IReadOnlyModel extends ITextModel { - /** - * Gets the resource associated with this editor model. - */ - readonly uri: Uri; - /** - * Get the language associated with this model. - */ - getModeId(): string; - /** - * Get the word under or besides `position`. - * @param position The position to look for a word. - * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. - * @return The word under or besides `position`. Might be null. - */ - getWordAtPosition(position: IPosition): IWordAtPosition; - /** - * Get the word under or besides `position` trimmed to `position`.column - * @param position The position to look for a word. - * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. - * @return The word under or besides `position`. Will never be null. - */ - getWordUntilPosition(position: IPosition): IWordAtPosition; - } - - /** - * A model that is tokenized. - */ - export interface ITokenizedModel extends ITextModel { - /** - * Get the current language mode associated with the model. - */ - getMode(): languages.IMode; - /** - * Get the language associated with this model. - */ - getModeId(): string; - /** - * Get the word under or besides `position`. - * @param position The position to look for a word. - * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. - * @return The word under or besides `position`. Might be null. - */ - getWordAtPosition(position: IPosition): IWordAtPosition; - /** - * Get the word under or besides `position` trimmed to `position`.column - * @param position The position to look for a word. - * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. - * @return The word under or besides `position`. Will never be null. - */ - getWordUntilPosition(position: IPosition): IWordAtPosition; - } - - /** - * A model that can track markers. - */ - export interface ITextModelWithMarkers extends ITextModel { - } - - /** - * Describes the behaviour of decorations when typing/editing near their edges. - */ - export enum TrackedRangeStickiness { - AlwaysGrowsWhenTypingAtEdges = 0, - NeverGrowsWhenTypingAtEdges = 1, - GrowsOnlyWhenTypingBefore = 2, - GrowsOnlyWhenTypingAfter = 3, - } - - /** - * A model that can track ranges. - */ - export interface ITextModelWithTrackedRanges extends ITextModel { - } - - /** - * A model that can have decorations. - */ - export interface ITextModelWithDecorations { - /** - * Perform a minimum ammount of operations, in order to transform the decorations - * identified by `oldDecorations` to the decorations described by `newDecorations` - * and returns the new identifiers associated with the resulting decorations. - * - * @param oldDecorations Array containing previous decorations identifiers. - * @param newDecorations Array describing what decorations should result after the call. - * @param ownerId Identifies the editor id in which these decorations should appear. If no `ownerId` is provided, the decorations will appear in all editors that attach this model. - * @return An array containing the new decorations identifiers. - */ - deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[], ownerId?: number): string[]; - /** - * Get the options associated with a decoration. - * @param id The decoration id. - * @return The decoration options or null if the decoration was not found. - */ - getDecorationOptions(id: string): IModelDecorationOptions; - /** - * Get the range associated with a decoration. - * @param id The decoration id. - * @return The decoration range or null if the decoration was not found. - */ - getDecorationRange(id: string): Range; - /** - * Gets all the decorations for the line `lineNumber` as an array. - * @param lineNumber The line number - * @param ownerId If set, it will ignore decorations belonging to other owners. - * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). - * @return An array with the decorations - */ - getLineDecorations(lineNumber: number, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; - /** - * Gets all the decorations for the lines between `startLineNumber` and `endLineNumber` as an array. - * @param startLineNumber The start line number - * @param endLineNumber The end line number - * @param ownerId If set, it will ignore decorations belonging to other owners. - * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). - * @return An array with the decorations - */ - getLinesDecorations(startLineNumber: number, endLineNumber: number, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; - /** - * Gets all the deocorations in a range as an array. Only `startLineNumber` and `endLineNumber` from `range` are used for filtering. - * So for now it returns all the decorations on the same line as `range`. - * @param range The range to search in - * @param ownerId If set, it will ignore decorations belonging to other owners. - * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). - * @return An array with the decorations - */ - getDecorationsInRange(range: IRange, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; - /** - * Gets all the decorations as an array. - * @param ownerId If set, it will ignore decorations belonging to other owners. - * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). - */ - getAllDecorations(ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; - } - - /** - * An editable text model. - */ - export interface IEditableTextModel extends ITextModelWithMarkers { - /** - * Normalize a string containing whitespace according to indentation rules (converts to spaces or to tabs). - */ - normalizeIndentation(str: string): string; - /** - * Get what is considered to be one indent (e.g. a tab character or 4 spaces, etc.). - */ - getOneIndent(): string; - /** - * Change the options of this model. - */ - updateOptions(newOpts: ITextModelUpdateOptions): void; - /** - * Detect the indentation options for this model from its content. - */ - detectIndentation(defaultInsertSpaces: boolean, defaultTabSize: number): void; - /** - * Push a stack element onto the undo stack. This acts as an undo/redo point. - * The idea is to use `pushEditOperations` to edit the model and then to - * `pushStackElement` to create an undo/redo stop point. - */ - pushStackElement(): void; - /** - * Push edit operations, basically editing the model. This is the preferred way - * of editing the model. The edit operations will land on the undo stack. - * @param beforeCursorState The cursor state before the edit operaions. This cursor state will be returned when `undo` or `redo` are invoked. - * @param editOperations The edit operations. - * @param cursorStateComputer A callback that can compute the resulting cursors state after the edit operations have been executed. - * @return The cursor state returned by the `cursorStateComputer`. - */ - pushEditOperations(beforeCursorState: Selection[], editOperations: IIdentifiedSingleEditOperation[], cursorStateComputer: ICursorStateComputer): Selection[]; - /** - * Edit the model without adding the edits to the undo stack. - * This can have dire consequences on the undo stack! See @pushEditOperations for the preferred way. - * @param operations The edit operations. - * @return The inverse edit operations, that, when applied, will bring the model back to the previous state. - */ - applyEdits(operations: IIdentifiedSingleEditOperation[]): IIdentifiedSingleEditOperation[]; - } - - /** - * A model. - */ - export interface IModel extends IReadOnlyModel, IEditableTextModel, ITextModelWithMarkers, ITokenizedModel, ITextModelWithTrackedRanges, ITextModelWithDecorations, IEditorModel { - /** - * An event emitted when the contents of the model have changed. - * @event - */ - onDidChangeContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; - /** - * An event emitted when decorations of the model have changed. - * @event - */ - onDidChangeDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; - /** - * An event emitted when the model options have changed. - * @event - */ - onDidChangeOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; - /** - * An event emitted when the language associated with the model has changed. - * @event - */ - onDidChangeMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; - /** - * An event emitted right before disposing the model. - * @event - */ - onWillDispose(listener: () => void): IDisposable; - /** - * A unique identifier associated with this model. - */ - readonly id: string; - /** - * Destroy this model. This will unbind the model from the mode - * and make all necessary clean-up to release this object to the GC. - */ - dispose(): void; - } - - /** - * An event describing that the current mode associated with a model has changed. - */ - export interface IModelModeChangedEvent { - /** - * Previous mode - */ - readonly oldMode: languages.IMode; - /** - * New mode - */ - readonly newMode: languages.IMode; - } - - /** - * An event describing a change in the text of a model. - */ - export interface IModelContentChangedEvent2 { - /** - * The range that got replaced. - */ - readonly range: IRange; - /** - * The length of the range that got replaced. - */ - readonly rangeLength: number; - /** - * The new text for the range. - */ - readonly text: string; - /** - * The (new) end-of-line character. - */ - readonly eol: string; - /** - * The new version id the model has transitioned to. - */ - versionId: number; - /** - * Flag that indicates that this event was generated while undoing. - */ - readonly isUndoing: boolean; - /** - * Flag that indicates that this event was generated while redoing. - */ - readonly isRedoing: boolean; - } - - /** - * The raw text backing a model. - */ - export interface IRawText { - /** - * The entire text length. - */ - readonly length: number; - /** - * The text split into lines. - */ - readonly lines: string[]; - /** - * The BOM (leading character sequence of the file). - */ - readonly BOM: string; - /** - * The end of line sequence. - */ - readonly EOL: string; - /** - * The text contains Unicode characters classified as "R" or "AL". - */ - readonly containsRTL: boolean; - /** - * The options associated with this text. - */ - readonly options: { - readonly tabSize: number; - readonly insertSpaces: boolean; - readonly defaultEOL: DefaultEndOfLine; - readonly trimAutoWhitespace: boolean; - }; - } - - /** - * Decoration data associated with a model decorations changed event. - */ - export interface IModelDecorationsChangedEventDecorationData { - /** - * The id of the decoration. - */ - readonly id: string; - /** - * The owner id of the decoration. - */ - readonly ownerId: number; - /** - * The range of the decoration. - */ - readonly range: IRange; - /** - * A flag describing if this is a problem decoration (e.g. warning/error). - */ - readonly isForValidation: boolean; - /** - * The options for this decoration. - */ - readonly options: IModelDecorationOptions; - } - - /** - * An event describing that model decorations have changed. - */ - export interface IModelDecorationsChangedEvent { - /** - * A summary with ids of decorations that have changed. - */ - readonly ids: string[]; - /** - * Lists of details for added or changed decorations. - */ - readonly addedOrChangedDecorations: IModelDecorationsChangedEventDecorationData[]; - /** - * List of ids for removed decorations. - */ - readonly removedDecorations: string[]; - /** - * Details regarding old options. - */ - readonly oldOptions: { - [decorationId: string]: IModelDecorationOptions; - }; - /** - * Details regarding old ranges. - */ - readonly oldRanges: { - [decorationId: string]: IRange; - }; - } - - /** - * An event describing that some ranges of lines have been tokenized (their tokens have changed). - */ - export interface IModelTokensChangedEvent { - readonly ranges: { - /** - * The start of the range (inclusive) - */ - readonly fromLineNumber: number; - /** - * The end of the range (inclusive) - */ - readonly toLineNumber: number; - }[]; - } - - /** - * Describes the reason the cursor has changed its position. - */ - export enum CursorChangeReason { - /** - * Unknown or not set. - */ - NotSet = 0, - /** - * A `model.setValue()` was called. - */ - ContentFlush = 1, - /** - * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers. - */ - RecoverFromMarkers = 2, - /** - * There was an explicit user gesture. - */ - Explicit = 3, - /** - * There was a Paste. - */ - Paste = 4, - /** - * There was an Undo. - */ - Undo = 5, - /** - * There was a Redo. - */ - Redo = 6, - } - - /** - * An event describing that the cursor position has changed. - */ - export interface ICursorPositionChangedEvent { - /** - * Primary cursor's position. - */ - readonly position: Position; - /** - * Primary cursor's view position - */ - readonly viewPosition: Position; - /** - * Secondary cursors' position. - */ - readonly secondaryPositions: Position[]; - /** - * Secondary cursors' view position. - */ - readonly secondaryViewPositions: Position[]; - /** - * Reason. - */ - readonly reason: CursorChangeReason; - /** - * Source of the call that caused the event. - */ - readonly source: string; - /** - * Is the primary cursor in the editable range? - */ - readonly isInEditableRange: boolean; - } - - /** - * An event describing that the cursor selection has changed. - */ - export interface ICursorSelectionChangedEvent { - /** - * The primary selection. - */ - readonly selection: Selection; - /** - * The primary selection in view coordinates. - */ - readonly viewSelection: Selection; - /** - * The secondary selections. - */ - readonly secondarySelections: Selection[]; - /** - * The secondary selections in view coordinates. - */ - readonly secondaryViewSelections: Selection[]; - /** - * Source of the call that caused the event. - */ - readonly source: string; - /** - * Reason. - */ - readonly reason: CursorChangeReason; - } - - /** - * An event describing that an editor has had its model reset (i.e. `editor.setModel()`). - */ - export interface IModelChangedEvent { - /** - * The `uri` of the previous model or null. - */ - readonly oldModelUrl: Uri; - /** - * The `uri` of the new model or null. - */ - readonly newModelUrl: Uri; - } - - /** - * A description for the overview ruler position. - */ - export class OverviewRulerPosition { - readonly _overviewRulerPositionBrand: void; - /** - * Width of the overview ruler - */ - readonly width: number; - /** - * Height of the overview ruler - */ - readonly height: number; - /** - * Top position for the overview ruler - */ - readonly top: number; - /** - * Right position for the overview ruler - */ - readonly right: number; - } - - /** - * The internal layout details of the editor. - */ - export class EditorLayoutInfo { - readonly _editorLayoutInfoBrand: void; - /** - * Full editor width. - */ - readonly width: number; - /** - * Full editor height. - */ - readonly height: number; - /** - * Left position for the glyph margin. - */ - readonly glyphMarginLeft: number; - /** - * The width of the glyph margin. - */ - readonly glyphMarginWidth: number; - /** - * The height of the glyph margin. - */ - readonly glyphMarginHeight: number; - /** - * Left position for the line numbers. - */ - readonly lineNumbersLeft: number; - /** - * The width of the line numbers. - */ - readonly lineNumbersWidth: number; - /** - * The height of the line numbers. - */ - readonly lineNumbersHeight: number; - /** - * Left position for the line decorations. - */ - readonly decorationsLeft: number; - /** - * The width of the line decorations. - */ - readonly decorationsWidth: number; - /** - * The height of the line decorations. - */ - readonly decorationsHeight: number; - /** - * Left position for the content (actual text) - */ - readonly contentLeft: number; - /** - * The width of the content (actual text) - */ - readonly contentWidth: number; - /** - * The height of the content (actual height) - */ - readonly contentHeight: number; - /** - * The width of the vertical scrollbar. - */ - readonly verticalScrollbarWidth: number; - /** - * The height of the horizontal scrollbar. - */ - readonly horizontalScrollbarHeight: number; - /** - * The position of the overview ruler. - */ - readonly overviewRuler: OverviewRulerPosition; - } - - /** - * Options for creating the editor. - */ - export interface ICodeEditorWidgetCreationOptions extends IEditorOptions { - /** - * The initial model associated with this code editor. - */ - model?: IModel; - } - - /** - * An editor model. - */ - export interface IEditorModel { - } - - /** - * An editor view state. - */ - export interface IEditorViewState { - } - - export interface IDimension { - width: number; - height: number; - } - - /** - * A (serializable) state of the cursors. - */ - export interface ICursorState { - inSelectionMode: boolean; - selectionStart: IPosition; - position: IPosition; - } - - /** - * A (serializable) state of the view. - */ - export interface IViewState { - scrollTop: number; - scrollTopWithoutViewZones: number; - scrollLeft: number; - } - - /** - * A (serializable) state of the code editor. - */ - export interface ICodeEditorViewState extends IEditorViewState { - cursorState: ICursorState[]; - viewState: IViewState; - contributionsState: { - [id: string]: any; - }; - } - - /** - * Type of hit element with the mouse in the editor. - */ - export enum MouseTargetType { - /** - * Mouse is on top of an unknown element. - */ - UNKNOWN = 0, - /** - * Mouse is on top of the textarea used for input. - */ - TEXTAREA = 1, - /** - * Mouse is on top of the glyph margin - */ - GUTTER_GLYPH_MARGIN = 2, - /** - * Mouse is on top of the line numbers - */ - GUTTER_LINE_NUMBERS = 3, - /** - * Mouse is on top of the line decorations - */ - GUTTER_LINE_DECORATIONS = 4, - /** - * Mouse is on top of the whitespace left in the gutter by a view zone. - */ - GUTTER_VIEW_ZONE = 5, - /** - * Mouse is on top of text in the content. - */ - CONTENT_TEXT = 6, - /** - * Mouse is on top of empty space in the content (e.g. after line text or below last line) - */ - CONTENT_EMPTY = 7, - /** - * Mouse is on top of a view zone in the content. - */ - CONTENT_VIEW_ZONE = 8, - /** - * Mouse is on top of a content widget. - */ - CONTENT_WIDGET = 9, - /** - * Mouse is on top of the decorations overview ruler. - */ - OVERVIEW_RULER = 10, - /** - * Mouse is on top of a scrollbar. - */ - SCROLLBAR = 11, - /** - * Mouse is on top of an overlay widget. - */ - OVERLAY_WIDGET = 12, - } - - /** - * A model for the diff editor. - */ - export interface IDiffEditorModel extends IEditorModel { - /** - * Original model. - */ - original: IModel; - /** - * Modified model. - */ - modified: IModel; - } - - /** - * (Serializable) View state for the diff editor. - */ - export interface IDiffEditorViewState extends IEditorViewState { - original: ICodeEditorViewState; - modified: ICodeEditorViewState; - } - - /** - * A change - */ - export interface IChange { - readonly originalStartLineNumber: number; - readonly originalEndLineNumber: number; - readonly modifiedStartLineNumber: number; - readonly modifiedEndLineNumber: number; - } - - /** - * A character level change. - */ - export interface ICharChange extends IChange { - readonly originalStartColumn: number; - readonly originalEndColumn: number; - readonly modifiedStartColumn: number; - readonly modifiedEndColumn: number; - } - - /** - * A line change - */ - export interface ILineChange extends IChange { - readonly charChanges: ICharChange[]; - } - - export class BareFontInfo { - readonly _bareFontInfoBrand: void; - readonly fontFamily: string; - readonly fontWeight: string; - readonly fontSize: number; - readonly lineHeight: number; - } - - export class FontInfo extends BareFontInfo { - readonly _editorStylingBrand: void; - readonly typicalHalfwidthCharacterWidth: number; - readonly typicalFullwidthCharacterWidth: number; - readonly spaceWidth: number; - readonly maxDigitWidth: number; - } - - export interface INewScrollPosition { - scrollLeft?: number; - scrollTop?: number; - } - - /** - * Description of an action contribution - */ - export interface IActionDescriptor { - /** - * An unique identifier of the contributed action. - */ - id: string; - /** - * A label of the action that will be presented to the user. - */ - label: string; - /** - * An array of keybindings for the action. - */ - keybindings?: number[]; - /** - * Control if the action should show up in the context menu and where. - * The context menu of the editor has these default: - * navigation - The navigation group comes first in all cases. - * 1_modification - This group comes next and contains commands that modify your code. - * 9_cutcopypaste - The last default group with the basic editing commands. - * You can also create your own group. - * Defaults to null (don't show in context menu). - */ - contextMenuGroupId?: string; - /** - * Control the order in the context menu group. - */ - contextMenuOrder?: number; - /** - * The keybinding rule. - */ - keybindingContext?: string; - /** - * Method that will be executed when the action is triggered. - * @param editor The editor instance is passed in as a convinience - */ - run(editor: ICommonCodeEditor): void | Promise; - } - - export interface IEditorAction { - readonly id: string; - readonly label: string; - readonly alias: string; - isSupported(): boolean; - run(): Promise; - } - - /** - * An editor. - */ - export interface IEditor { - /** - * An event emitted when the content of the current model has changed. - * @event - */ - onDidChangeModelContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; - /** - * An event emitted when the language of the current model has changed. - * @event - */ - onDidChangeModelMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; - /** - * An event emitted when the options of the current model has changed. - * @event - */ - onDidChangeModelOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; - /** - * An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`) - * @event - */ - onDidChangeConfiguration(listener: (e: IConfigurationChangedEvent) => void): IDisposable; - /** - * An event emitted when the cursor position has changed. - * @event - */ - onDidChangeCursorPosition(listener: (e: ICursorPositionChangedEvent) => void): IDisposable; - /** - * An event emitted when the cursor selection has changed. - * @event - */ - onDidChangeCursorSelection(listener: (e: ICursorSelectionChangedEvent) => void): IDisposable; - /** - * An event emitted when the editor has been disposed. - * @event - */ - onDidDispose(listener: () => void): IDisposable; - /** - * Dispose the editor. - */ - dispose(): void; - /** - * Get a unique id for this editor instance. - */ - getId(): string; - /** - * Get the editor type. Please see `EditorType`. - * This is to avoid an instanceof check - */ - getEditorType(): string; - /** - * Update the editor's options after the editor has been created. - */ - updateOptions(newOptions: IEditorOptions): void; - /** - * Instructs the editor to remeasure its container. This method should - * be called when the container of the editor gets resized. - */ - layout(dimension?: IDimension): void; - /** - * Brings browser focus to the editor text - */ - focus(): void; - /** - * Returns true if this editor has keyboard focus (e.g. cursor is blinking). - */ - isFocused(): boolean; - /** - * Add a new action to this editor. - */ - addAction(descriptor: IActionDescriptor): void; - /** - * Returns all actions associated with this editor. - */ - getActions(): IEditorAction[]; - /** - * Returns all actions associated with this editor. - */ - getSupportedActions(): IEditorAction[]; - /** - * Saves current view state of the editor in a serializable object. - */ - saveViewState(): IEditorViewState; - /** - * Restores the view state of the editor from a serializable object generated by `saveViewState`. - */ - restoreViewState(state: IEditorViewState): void; - /** - * Given a position, returns a column number that takes tab-widths into account. - */ - getVisibleColumnFromPosition(position: IPosition): number; - /** - * Returns the primary position of the cursor. - */ - getPosition(): Position; - /** - * Set the primary position of the cursor. This will remove any secondary cursors. - * @param position New primary cursor's position - */ - setPosition(position: IPosition): void; - /** - * Scroll vertically as necessary and reveal a line. - */ - revealLine(lineNumber: number): void; - /** - * Scroll vertically as necessary and reveal a line centered vertically. - */ - revealLineInCenter(lineNumber: number): void; - /** - * Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport. - */ - revealLineInCenterIfOutsideViewport(lineNumber: number): void; - /** - * Scroll vertically or horizontally as necessary and reveal a position. - */ - revealPosition(position: IPosition): void; - /** - * Scroll vertically or horizontally as necessary and reveal a position centered vertically. - */ - revealPositionInCenter(position: IPosition): void; - /** - * Scroll vertically or horizontally as necessary and reveal a position centered vertically only if it lies outside the viewport. - */ - revealPositionInCenterIfOutsideViewport(position: IPosition): void; - /** - * Returns the primary selection of the editor. - */ - getSelection(): Selection; - /** - * Returns all the selections of the editor. - */ - getSelections(): Selection[]; - /** - * Set the primary selection of the editor. This will remove any secondary cursors. - * @param selection The new selection - */ - setSelection(selection: IRange): void; - /** - * Set the primary selection of the editor. This will remove any secondary cursors. - * @param selection The new selection - */ - setSelection(selection: Range): void; - /** - * Set the primary selection of the editor. This will remove any secondary cursors. - * @param selection The new selection - */ - setSelection(selection: ISelection): void; - /** - * Set the primary selection of the editor. This will remove any secondary cursors. - * @param selection The new selection - */ - setSelection(selection: Selection): void; - /** - * Set the selections for all the cursors of the editor. - * Cursors will be removed or added, as necessary. - */ - setSelections(selections: ISelection[]): void; - /** - * Scroll vertically as necessary and reveal lines. - */ - revealLines(startLineNumber: number, endLineNumber: number): void; - /** - * Scroll vertically as necessary and reveal lines centered vertically. - */ - revealLinesInCenter(lineNumber: number, endLineNumber: number): void; - /** - * Scroll vertically as necessary and reveal lines centered vertically only if it lies outside the viewport. - */ - revealLinesInCenterIfOutsideViewport(lineNumber: number, endLineNumber: number): void; - /** - * Scroll vertically or horizontally as necessary and reveal a range. - */ - revealRange(range: IRange): void; - /** - * Scroll vertically or horizontally as necessary and reveal a range centered vertically. - */ - revealRangeInCenter(range: IRange): void; - /** - * Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport. - */ - revealRangeInCenterIfOutsideViewport(range: IRange): void; - /** - * Directly trigger a handler or an editor action. - * @param source The source of the call. - * @param handlerId The id of the handler or the id of a contribution. - * @param payload Extra data to be sent to the handler. - */ - trigger(source: string, handlerId: string, payload: any): void; - /** - * Gets the current model attached to this editor. - */ - getModel(): IEditorModel; - /** - * Sets the current model attached to this editor. - * If the previous model was created by the editor via the value key in the options - * literal object, it will be destroyed. Otherwise, if the previous model was set - * via setModel, or the model key in the options literal object, the previous model - * will not be destroyed. - * It is safe to call setModel(null) to simply detach the current model from the editor. - */ - setModel(model: IEditorModel): void; - } - - /** - * An editor contribution that gets created every time a new editor gets created and gets disposed when the editor gets disposed. - */ - export interface IEditorContribution { - /** - * Get a unique identifier for this contribution. - */ - getId(): string; - /** - * Dispose this contribution. - */ - dispose(): void; - /** - * Store view state. - */ - saveViewState?(): any; - /** - * Restore view state. - */ - restoreViewState?(state: any): void; - } - - export interface ICommonCodeEditor extends IEditor { - /** - * An event emitted when the model of this editor has changed (e.g. `editor.setModel()`). - * @event - */ - onDidChangeModel(listener: (e: IModelChangedEvent) => void): IDisposable; - /** - * An event emitted when the decorations of the current model have changed. - * @event - */ - onDidChangeModelDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; - /** - * An event emitted when the text inside this editor gained focus (i.e. cursor blinking). - * @event - */ - onDidFocusEditorText(listener: () => void): IDisposable; - /** - * An event emitted when the text inside this editor lost focus. - * @event - */ - onDidBlurEditorText(listener: () => void): IDisposable; - /** - * An event emitted when the text inside this editor or an editor widget gained focus. - * @event - */ - onDidFocusEditor(listener: () => void): IDisposable; - /** - * An event emitted when the text inside this editor or an editor widget lost focus. - * @event - */ - onDidBlurEditor(listener: () => void): IDisposable; - /** - * Returns true if this editor or one of its widgets has keyboard focus. - */ - hasWidgetFocus(): boolean; - /** - * Get a contribution of this editor. - * @id Unique identifier of the contribution. - * @return The contribution or null if contribution not found. - */ - getContribution(id: string): T; - /** - * Type the getModel() of IEditor. - */ - getModel(): IModel; - /** - * Returns the current editor's configuration - */ - getConfiguration(): InternalEditorOptions; - /** - * Get value of the current model attached to this editor. - * @see IModel.getValue - */ - getValue(options?: { - preserveBOM: boolean; - lineEnding: string; - }): string; - /** - * Set the value of the current model attached to this editor. - * @see IModel.setValue - */ - setValue(newValue: string): void; - /** - * Get the scrollWidth of the editor's viewport. - */ - getScrollWidth(): number; - /** - * Get the scrollLeft of the editor's viewport. - */ - getScrollLeft(): number; - /** - * Get the scrollHeight of the editor's viewport. - */ - getScrollHeight(): number; - /** - * Get the scrollTop of the editor's viewport. - */ - getScrollTop(): number; - /** - * Change the scrollLeft of the editor's viewport. - */ - setScrollLeft(newScrollLeft: number): void; - /** - * Change the scrollTop of the editor's viewport. - */ - setScrollTop(newScrollTop: number): void; - /** - * Change the scroll position of the editor's viewport. - */ - setScrollPosition(position: INewScrollPosition): void; - /** - * Get an action that is a contribution to this editor. - * @id Unique identifier of the contribution. - * @return The action or null if action not found. - */ - getAction(id: string): IEditorAction; - /** - * Execute a command on the editor. - * @param source The source of the call. - * @param command The command to execute - */ - executeCommand(source: string, command: ICommand): void; - /** - * Push an "undo stop" in the undo-redo stack. - */ - pushUndoStop(): boolean; - /** - * Execute a command on the editor. - * @param source The source of the call. - * @param command The command to execute - */ - executeEdits(source: string, edits: IIdentifiedSingleEditOperation[]): boolean; - /** - * Execute multiple (concommitent) commands on the editor. - * @param source The source of the call. - * @param command The commands to execute - */ - executeCommands(source: string, commands: ICommand[]): void; - /** - * Get all the decorations on a line (filtering out decorations from other editors). - */ - getLineDecorations(lineNumber: number): IModelDecoration[]; - /** - * All decorations added through this call will get the ownerId of this editor. - * @see IModel.deltaDecorations - */ - deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[]): string[]; - /** - * Get the layout info for the editor. - */ - getLayoutInfo(): EditorLayoutInfo; - } - - export interface ICommonDiffEditor extends IEditor { - /** - * An event emitted when the diff information computed by this diff editor has been updated. - * @event - */ - onDidUpdateDiff(listener: () => void): IDisposable; - /** - * Type the getModel() of IEditor. - */ - getModel(): IDiffEditorModel; - /** - * Get the `original` editor. - */ - getOriginalEditor(): ICommonCodeEditor; - /** - * Get the `modified` editor. - */ - getModifiedEditor(): ICommonCodeEditor; - /** - * Get the computed diff information. - */ - getLineChanges(): ILineChange[]; - /** - * @see ICodeEditor.getValue - */ - getValue(options?: { - preserveBOM: boolean; - lineEnding: string; - }): string; - } - - /** - * The type of the `IEditor`. - */ - export var EditorType: { - ICodeEditor: string; - IDiffEditor: string; - }; - - /** - * Positions in the view for cursor move command. - */ - export const CursorMovePosition: { - Left: string; - Right: string; - Up: string; - Down: string; - WrappedLineStart: string; - WrappedLineFirstNonWhitespaceCharacter: string; - WrappedLineColumnCenter: string; - WrappedLineEnd: string; - WrappedLineLastNonWhitespaceCharacter: string; - ViewPortTop: string; - ViewPortCenter: string; - ViewPortBottom: string; - ViewPortIfOutside: string; - }; - - /** - * Units for Cursor move 'by' argument - */ - export const CursorMoveByUnit: { - Line: string; - WrappedLine: string; - Character: string; - HalfLine: string; - }; - - /** - * Arguments for Cursor move command - */ - export interface CursorMoveArguments { - to: string; - select?: boolean; - by?: string; - value?: number; - } - - /** - * Directions in the view for editor scroll command. - */ - export const EditorScrollDirection: { - Up: string; - Down: string; - }; - - /** - * Units for editor scroll 'by' argument - */ - export const EditorScrollByUnit: { - Line: string; - WrappedLine: string; - Page: string; - HalfPage: string; - }; - - /** - * Arguments for editor scroll command - */ - export interface EditorScrollArguments { - to: string; - by?: string; - value?: number; - revealCursor?: boolean; - } - - /** - * Arguments for reveal line command - */ - export interface RevealLineArguments { - lineNumber?: number; - at?: string; - } - - /** - * Values for reveal line 'at' argument - */ - export const RevealLineAtArgument: { - Top: string; - Center: string; - Bottom: string; - }; - - /** - * Built-in commands. - */ - export var Handler: { - ExecuteCommand: string; - ExecuteCommands: string; - CursorLeft: string; - CursorLeftSelect: string; - CursorWordLeft: string; - CursorWordStartLeft: string; - CursorWordEndLeft: string; - CursorWordLeftSelect: string; - CursorWordStartLeftSelect: string; - CursorWordEndLeftSelect: string; - CursorRight: string; - CursorRightSelect: string; - CursorWordRight: string; - CursorWordStartRight: string; - CursorWordEndRight: string; - CursorWordRightSelect: string; - CursorWordStartRightSelect: string; - CursorWordEndRightSelect: string; - CursorUp: string; - CursorUpSelect: string; - CursorDown: string; - CursorDownSelect: string; - CursorPageUp: string; - CursorPageUpSelect: string; - CursorPageDown: string; - CursorPageDownSelect: string; - CursorHome: string; - CursorHomeSelect: string; - CursorEnd: string; - CursorEndSelect: string; - ExpandLineSelection: string; - CursorTop: string; - CursorTopSelect: string; - CursorBottom: string; - CursorBottomSelect: string; - CursorColumnSelectLeft: string; - CursorColumnSelectRight: string; - CursorColumnSelectUp: string; - CursorColumnSelectPageUp: string; - CursorColumnSelectDown: string; - CursorColumnSelectPageDown: string; - CursorMove: string; - AddCursorDown: string; - AddCursorUp: string; - CursorUndo: string; - MoveTo: string; - MoveToSelect: string; - ColumnSelect: string; - CreateCursor: string; - LastCursorMoveToSelect: string; - JumpToBracket: string; - Type: string; - ReplacePreviousChar: string; - CompositionStart: string; - CompositionEnd: string; - Paste: string; - Tab: string; - Indent: string; - Outdent: string; - DeleteLeft: string; - DeleteRight: string; - DeleteWordLeft: string; - DeleteWordStartLeft: string; - DeleteWordEndLeft: string; - DeleteWordRight: string; - DeleteWordStartRight: string; - DeleteWordEndRight: string; - DeleteAllLeft: string; - DeleteAllRight: string; - RemoveSecondaryCursors: string; - CancelSelection: string; - Cut: string; - Undo: string; - Redo: string; - WordSelect: string; - WordSelectDrag: string; - LastCursorWordSelect: string; - LineSelect: string; - LineSelectDrag: string; - LastCursorLineSelect: string; - LastCursorLineSelectDrag: string; - LineInsertBefore: string; - LineInsertAfter: string; - LineBreakInsert: string; - SelectAll: string; - EditorScroll: string; - ScrollLineUp: string; - ScrollLineDown: string; - ScrollPageUp: string; - ScrollPageDown: string; - RevealLine: string; - }; - - /** - * The style in which the editor's cursor should be rendered. - */ - export enum TextEditorCursorStyle { - /** - * As a vertical line (sitting between two characters). - */ - Line = 1, - /** - * As a block (sitting on top of a character). - */ - Block = 2, - /** - * As a horizontal line (sitting under a character). - */ - Underline = 3, - } - - /** - * The kind of animation in which the editor's cursor should be rendered. - */ - export enum TextEditorCursorBlinkingStyle { - /** - * Hidden - */ - Hidden = 0, - /** - * Blinking - */ - Blink = 1, - /** - * Blinking with smooth fading - */ - Smooth = 2, - /** - * Blinking with prolonged filled state and smooth fading - */ - Phase = 3, - /** - * Expand collapse animation on the y axis - */ - Expand = 4, - /** - * No-Blinking - */ - Solid = 5, - } - - /** - * A view zone is a full horizontal rectangle that 'pushes' text down. - * The editor reserves space for view zones when rendering. - */ - export interface IViewZone { - /** - * The line number after which this zone should appear. - * Use 0 to place a view zone before the first line number. - */ - afterLineNumber: number; - /** - * The column after which this zone should appear. - * If not set, the maxLineColumn of `afterLineNumber` will be used. - */ - afterColumn?: number; - /** - * Suppress mouse down events. - * If set, the editor will attach a mouse down listener to the view zone and .preventDefault on it. - * Defaults to false - */ - suppressMouseDown?: boolean; - /** - * The height in lines of the view zone. - * If specified, `heightInPx` will be used instead of this. - * If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen. - */ - heightInLines?: number; - /** - * The height in px of the view zone. - * If this is set, the editor will give preference to it rather than `heightInLines` above. - * If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen. - */ - heightInPx?: number; - /** - * The dom node of the view zone - */ - domNode: HTMLElement; - /** - * Callback which gives the relative top of the view zone as it appears (taking scrolling into account). - */ - onDomNodeTop?: (top: number) => void; - /** - * Callback which gives the height in pixels of the view zone. - */ - onComputedHeight?: (height: number) => void; - } - - /** - * An accessor that allows for zones to be added or removed. - */ - export interface IViewZoneChangeAccessor { - /** - * Create a new view zone. - * @param zone Zone to create - * @return A unique identifier to the view zone. - */ - addZone(zone: IViewZone): number; - /** - * Remove a zone - * @param id A unique identifier to the view zone, as returned by the `addZone` call. - */ - removeZone(id: number): void; - /** - * Change a zone's position. - * The editor will rescan the `afterLineNumber` and `afterColumn` properties of a view zone. - */ - layoutZone(id: number): void; - } - - /** - * A positioning preference for rendering content widgets. - */ - export enum ContentWidgetPositionPreference { - /** - * Place the content widget exactly at a position - */ - EXACT = 0, - /** - * Place the content widget above a position - */ - ABOVE = 1, - /** - * Place the content widget below a position - */ - BELOW = 2, - } - - /** - * A position for rendering content widgets. - */ - export interface IContentWidgetPosition { - /** - * Desired position for the content widget. - * `preference` will also affect the placement. - */ - position: IPosition; - /** - * Placement preference for position, in order of preference. - */ - preference: ContentWidgetPositionPreference[]; - } - - /** - * A content widget renders inline with the text and can be easily placed 'near' an editor position. - */ - export interface IContentWidget { - /** - * Render this content widget in a location where it could overflow the editor's view dom node. - */ - allowEditorOverflow?: boolean; - suppressMouseDown?: boolean; - /** - * Get a unique identifier of the content widget. - */ - getId(): string; - /** - * Get the dom node of the content widget. - */ - getDomNode(): HTMLElement; - /** - * Get the placement of the content widget. - * If null is returned, the content widget will be placed off screen. - */ - getPosition(): IContentWidgetPosition; - } - - /** - * A positioning preference for rendering overlay widgets. - */ - export enum OverlayWidgetPositionPreference { - /** - * Position the overlay widget in the top right corner - */ - TOP_RIGHT_CORNER = 0, - /** - * Position the overlay widget in the bottom right corner - */ - BOTTOM_RIGHT_CORNER = 1, - /** - * Position the overlay widget in the top center - */ - TOP_CENTER = 2, - } - - /** - * A position for rendering overlay widgets. - */ - export interface IOverlayWidgetPosition { - /** - * The position preference for the overlay widget. - */ - preference: OverlayWidgetPositionPreference; - } - - /** - * An overlay widgets renders on top of the text. - */ - export interface IOverlayWidget { - /** - * Get a unique identifier of the overlay widget. - */ - getId(): string; - /** - * Get the dom node of the overlay widget. - */ - getDomNode(): HTMLElement; - /** - * Get the placement of the overlay widget. - * If null is returned, the overlay widget is responsible to place itself. - */ - getPosition(): IOverlayWidgetPosition; - } - - /** - * Target hit with the mouse in the editor. - */ - export interface IMouseTarget { - /** - * The target element - */ - readonly element: Element; - /** - * The target type - */ - readonly type: MouseTargetType; - /** - * The 'approximate' editor position - */ - readonly position: Position; - /** - * Desired mouse column (e.g. when position.column gets clamped to text length -- clicking after text on a line). - */ - readonly mouseColumn: number; - /** - * The 'approximate' editor range - */ - readonly range: Range; - /** - * Some extra detail. - */ - readonly detail: any; - } - - /** - * A mouse event originating from the editor. - */ - export interface IEditorMouseEvent { - readonly event: IMouseEvent; - readonly target: IMouseTarget; - } - - /** - * A rich code editor. - */ - export interface ICodeEditor extends ICommonCodeEditor { - /** - * An event emitted on a "mouseup". - * @event - */ - onMouseUp(listener: (e: IEditorMouseEvent) => void): IDisposable; - /** - * An event emitted on a "mousedown". - * @event - */ - onMouseDown(listener: (e: IEditorMouseEvent) => void): IDisposable; - /** - * An event emitted on a "contextmenu". - * @event - */ - onContextMenu(listener: (e: IEditorMouseEvent) => void): IDisposable; - /** - * An event emitted on a "mousemove". - * @event - */ - onMouseMove(listener: (e: IEditorMouseEvent) => void): IDisposable; - /** - * An event emitted on a "mouseleave". - * @event - */ - onMouseLeave(listener: (e: IEditorMouseEvent) => void): IDisposable; - /** - * An event emitted on a "keyup". - * @event - */ - onKeyUp(listener: (e: IKeyboardEvent) => void): IDisposable; - /** - * An event emitted on a "keydown". - * @event - */ - onKeyDown(listener: (e: IKeyboardEvent) => void): IDisposable; - /** - * An event emitted when the layout of the editor has changed. - * @event - */ - onDidLayoutChange(listener: (e: EditorLayoutInfo) => void): IDisposable; - /** - * An event emitted when the scroll in the editor has changed. - * @event - */ - onDidScrollChange(listener: (e: IScrollEvent) => void): IDisposable; - /** - * Returns the editor's dom node - */ - getDomNode(): HTMLElement; - /** - * Add a content widget. Widgets must have unique ids, otherwise they will be overwritten. - */ - addContentWidget(widget: IContentWidget): void; - /** - * Layout/Reposition a content widget. This is a ping to the editor to call widget.getPosition() - * and update appropiately. - */ - layoutContentWidget(widget: IContentWidget): void; - /** - * Remove a content widget. - */ - removeContentWidget(widget: IContentWidget): void; - /** - * Add an overlay widget. Widgets must have unique ids, otherwise they will be overwritten. - */ - addOverlayWidget(widget: IOverlayWidget): void; - /** - * Layout/Reposition an overlay widget. This is a ping to the editor to call widget.getPosition() - * and update appropiately. - */ - layoutOverlayWidget(widget: IOverlayWidget): void; - /** - * Remove an overlay widget. - */ - removeOverlayWidget(widget: IOverlayWidget): void; - /** - * Change the view zones. View zones are lost when a new model is attached to the editor. - */ - changeViewZones(callback: (accessor: IViewZoneChangeAccessor) => void): void; - /** - * Returns the range that is currently centered in the view port. - */ - getCenteredRangeInViewport(): Range; - /** - * Get the horizontal position (left offset) for the column w.r.t to the beginning of the line. - * This method works only if the line `lineNumber` is currently rendered (in the editor's viewport). - * Use this method with caution. - */ - getOffsetForColumn(lineNumber: number, column: number): number; - /** - * Force an editor render now. - */ - render(): void; - /** - * Get the vertical position (top offset) for the line w.r.t. to the first line. - */ - getTopForLineNumber(lineNumber: number): number; - /** - * Get the vertical position (top offset) for the position w.r.t. to the first line. - */ - getTopForPosition(lineNumber: number, column: number): number; - /** - * Get the visible position for `position`. - * The result position takes scrolling into account and is relative to the top left corner of the editor. - * Explanation 1: the results of this method will change for the same `position` if the user scrolls the editor. - * Explanation 2: the results of this method will not change if the container of the editor gets repositioned. - * Warning: the results of this method are innacurate for positions that are outside the current editor viewport. - */ - getScrolledVisiblePosition(position: IPosition): { - top: number; - left: number; - height: number; - }; - /** - * Apply the same font settings as the editor to `target`. - */ - applyFontInfo(target: HTMLElement): void; - } - - /** - * A rich diff editor. - */ - export interface IDiffEditor extends ICommonDiffEditor { - /** - * @see ICodeEditor.getDomNode - */ - getDomNode(): HTMLElement; - } +/** +* Create a new editor under `domElement`. +* `domElement` should be empty (not contain other dom nodes). +* The editor will read the size of `domElement`. +*/ +export function create(domElement: HTMLElement,options?: IEditorConstructionOptions,override?: IEditorOverrideServices): IStandaloneCodeEditor; + +/** +* Create a new diff editor under `domElement`. +* `domElement` should be empty (not contain other dom nodes). +* The editor will read the size of `domElement`. +*/ +export function createDiffEditor(domElement: HTMLElement,options?: IDiffEditorConstructionOptions,override?: IEditorOverrideServices): IStandaloneDiffEditor; + +export interface IDiffNavigator { +canNavigate(): boolean; +next(): void; +previous(): void; +dispose(): void; +} + +export interface IDiffNavigatorOptions { +readonly followsCaret?: boolean; +readonly ignoreCharChanges?: boolean; +readonly alwaysRevealFirst?: boolean; +} + +export function createDiffNavigator(diffEditor: IStandaloneDiffEditor,opts?: IDiffNavigatorOptions): IDiffNavigator; + +/** +* Create a new editor model. +* You can specify the language that should be set for this model or let the language be inferred from the `uri`. +*/ +export function createModel(value: string,language?: string,uri?: Uri): IModel; + +/** +* Change the language for a model. +*/ +export function setModelLanguage(model: IModel,language: string): void; + +/** +* Set the markers for a model. +*/ +export function setModelMarkers(model: IModel,owner: string,markers: IMarkerData[]): void; + +/** +* Get the model that has `uri` if it exists. +*/ +export function getModel(uri: Uri): IModel; + +/** +* Get all the created models. +*/ +export function getModels(): IModel[]; + +/** +* Emitted when a model is created. +* @event +*/ +export function onDidCreateModel(listener: (model: IModel) => void): IDisposable; + +/** +* Emitted right before a model is disposed. +* @event +*/ +export function onWillDisposeModel(listener: (model: IModel) => void): IDisposable; + +/** +* Emitted when a different language is set to a model. +* @event +*/ +export function onDidChangeModelLanguage(listener: (e: { +readonly model: IModel; +readonly oldLanguage: string; +}) => void): IDisposable; + +/** +* Create a new web worker that has model syncing capabilities built in. +* Specify an AMD module to load that will `create` an object that will be proxied. +*/ +export function createWebWorker(opts: IWebWorkerOptions): MonacoWebWorker; + +/** +* Colorize the contents of `domNode` using attribute `data-lang`. +*/ +export function colorizeElement(domNode: HTMLElement,options: IColorizerElementOptions): Promise; + +/** +* Colorize `text` using language `languageId`. +*/ +export function colorize(text: string,languageId: string,options: IColorizerOptions): Promise; + +/** +* Colorize a line in a model. +*/ +export function colorizeModelLine(model: IModel,lineNumber: number,tabSize?: number): string; + +/** +* A web worker that can provide a proxy to an arbitrary file. +*/ +export interface MonacoWebWorker { +/** +* Terminate the web worker, thus invalidating the returned proxy. +*/ +dispose(): void; +/** +* Get a proxy to the arbitrary loaded code. +*/ +getProxy(): Promise; +/** +* Synchronize (send) the models at `resources` to the web worker, +* making them available in the monaco.worker.getMirrorModels(). +*/ +withSyncedResources(resources: Uri[]): Promise; +} + +export interface IWebWorkerOptions { +/** +* The AMD moduleId to load. +* It should export a function `create` that should return the exported proxy. +*/ +moduleId: string; +/** +* The data to send over when calling create on the module. +*/ +createData?: any; +/** +* A label to be used to identify the web worker for debugging purposes. +*/ +label?: string; +} + +/** +* The options to create an editor. +*/ +export interface IEditorConstructionOptions extends ICodeEditorWidgetCreationOptions { +/** +* The initial value of the auto created model in the editor. +* To not create automatically a model, use `model: null`. +*/ +value?: string; +/** +* The initial language of the auto created model in the editor. +* To not create automatically a model, use `model: null`. +*/ +language?: string; +} + +/** +* The options to create a diff editor. +*/ +export interface IDiffEditorConstructionOptions extends IDiffEditorOptions { +} + +export interface IStandaloneCodeEditor extends ICodeEditor { +addCommand(keybinding: number,handler: ICommandHandler,context: string): string; +createContextKey(key: string,defaultValue: T): IContextKey; +addAction(descriptor: IActionDescriptor): void; +} + +export interface IStandaloneDiffEditor extends IDiffEditor { +addCommand(keybinding: number,handler: ICommandHandler,context: string): string; +createContextKey(key: string,defaultValue: T): IContextKey; +addAction(descriptor: IActionDescriptor): void; +} +export interface ICommandHandler { +(...args: any[]): void; +} + +export interface IContextKey { +set(value: T): void; +reset(): void; +get(): T; +} + +export interface IEditorOverrideServices { +} + +/** +* A structure defining a problem/warning/etc. +*/ +export interface IMarkerData { +code?: string; +severity: Severity; +message: string; +source?: string; +startLineNumber: number; +startColumn: number; +endLineNumber: number; +endColumn: number; +} + +export interface IColorizerOptions { +tabSize?: number; +} + +export interface IColorizerElementOptions extends IColorizerOptions { +theme?: string; +mimeType?: string; +} + +export enum ScrollbarVisibility { +Auto=1, +Hidden=2, +Visible=3, +} + +/** +* Configuration options for editor scrollbars +*/ +export interface IEditorScrollbarOptions { +/** +* The size of arrows (if displayed). +* Defaults to 11. +*/ +arrowSize?: number; +/** +* Render vertical scrollbar. +* Accepted values: 'auto', 'visible', 'hidden'. +* Defaults to 'auto'. +*/ +vertical?: string; +/** +* Render horizontal scrollbar. +* Accepted values: 'auto', 'visible', 'hidden'. +* Defaults to 'auto'. +*/ +horizontal?: string; +/** +* Cast horizontal and vertical shadows when the content is scrolled. +* Defaults to true. +*/ +useShadows?: boolean; +/** +* Render arrows at the top and bottom of the vertical scrollbar. +* Defaults to false. +*/ +verticalHasArrows?: boolean; +/** +* Render arrows at the left and right of the horizontal scrollbar. +* Defaults to false. +*/ +horizontalHasArrows?: boolean; +/** +* Listen to mouse wheel events and react to them by scrolling. +* Defaults to true. +*/ +handleMouseWheel?: boolean; +/** +* Height in pixels for the horizontal scrollbar. +* Defaults to 10 (px). +*/ +horizontalScrollbarSize?: number; +/** +* Width in pixels for the vertical scrollbar. +* Defaults to 10 (px). +*/ +verticalScrollbarSize?: number; +/** +* Width in pixels for the vertical slider. +* Defaults to `verticalScrollbarSize`. +*/ +verticalSliderSize?: number; +/** +* Height in pixels for the horizontal slider. +* Defaults to `horizontalScrollbarSize`. +*/ +horizontalSliderSize?: number; +} + +/** +* Describes how to indent wrapped lines. +*/ +export enum WrappingIndent { +/** +* No indentation => wrapped lines begin at column 1. +*/ +None=0, +/** +* Same => wrapped lines get the same indentation as the parent. +*/ +Same=1, +/** +* Indent => wrapped lines get +1 indentation as the parent. +*/ +Indent=2, +} + +export type LineNumbersOption='on'|'off'|'relative'|((lineNumber: number) => string); + +/** +* Configuration options for the editor. +*/ +export interface IEditorOptions { +/** +* Enable experimental screen reader support. +* Defaults to `true`. +*/ +experimentalScreenReader?: boolean; +/** +* The aria label for the editor's textarea (when it is focused). +*/ +ariaLabel?: string; +/** +* Render vertical lines at the specified columns. +* Defaults to empty array. +*/ +rulers?: number[]; +/** +* A string containing the word separators used when doing word navigation. +* Defaults to `~!@#$%^&*()-=+[{]}\\|;:\'",.<>/? +*/ +wordSeparators?: string; +/** +* Enable Linux primary clipboard. +* Defaults to true. +*/ +selectionClipboard?: boolean; +/** +* Control the rendering of line numbers. +* If it is a function, it will be invoked when rendering a line number and the return value will be rendered. +* Otherwise, if it is a truey, line numbers will be rendered normally (equivalent of using an identity function). +* Otherwise, line numbers will not be rendered. +* Defaults to true. +*/ +lineNumbers?: LineNumbersOption; +/** +* Should the corresponding line be selected when clicking on the line number? +* Defaults to true. +*/ +selectOnLineNumbers?: boolean; +/** +* Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits. +* Defaults to 5. +*/ +lineNumbersMinChars?: number; +/** +* Enable the rendering of the glyph margin. +* Defaults to true in vscode and to false in monaco-editor. +*/ +glyphMargin?: boolean; +/** +* The width reserved for line decorations (in px). +* Line decorations are placed between line numbers and the editor content. +* Defaults to 10. +*/ +lineDecorationsWidth?: number; +/** +* When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle. +* This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport. +* Defaults to 30 (px). +*/ +revealHorizontalRightPadding?: number; +/** +* Render the editor selection with rounded borders. +* Defaults to true. +*/ +roundedSelection?: boolean; +/** +* Theme to be used for rendering. Consists of two parts, the UI theme and the syntax theme, +* separated by a space. +* The current available UI themes are: 'vs' (default), 'vs-dark', 'hc-black' +* The syntax themes are contributed. The default is 'default-theme' +*/ +theme?: string; +/** +* Should the editor be read only. +* Defaults to false. +*/ +readOnly?: boolean; +/** +* Control the behavior and rendering of the scrollbars. +*/ +scrollbar?: IEditorScrollbarOptions; +/** +* Display overflow widgets as `fixed`. +* Defaults to `false`. +*/ +fixedOverflowWidgets?: boolean; +/** +* The number of vertical lanes the overview ruler should render. +* Defaults to 2. +*/ +overviewRulerLanes?: number; +/** +* Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'. +* Defaults to 'blink'. +*/ +cursorBlinking?: string; +/** +* Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl. +* Defaults to false. +*/ +mouseWheelZoom?: boolean; +/** +* Control the cursor style, either 'block' or 'line'. +* Defaults to 'line'. +*/ +cursorStyle?: string; +/** +* Enable font ligatures. +* Defaults to false. +*/ +fontLigatures?: boolean; +/** +* Disable the use of `translate3d`. +* Defaults to false. +*/ +disableTranslate3d?: boolean; +/** +* Should the cursor be hidden in the overview ruler. +* Defaults to false. +*/ +hideCursorInOverviewRuler?: boolean; +/** +* Enable that scrolling can go one screen size after the last line. +* Defaults to true. +*/ +scrollBeyondLastLine?: boolean; +/** +* Enable that the editor will install an interval to check if its container dom node size has changed. +* Enabling this might have a severe performance impact. +* Defaults to false. +*/ +automaticLayout?: boolean; +/** +* Control the wrapping strategy of the editor. +* Using -1 means no wrapping whatsoever. +* Using 0 means viewport width wrapping (ajusts with the resizing of the editor). +* Using a positive number means wrapping after a fixed number of characters. +* Defaults to 300. +*/ +wrappingColumn?: number; +/** +* Control the alternate style of viewport wrapping. +* When set to true viewport wrapping is used only when the window width is less than the number of columns specified in the wrappingColumn property. Has no effect if wrappingColumn is not a positive number. +* Defaults to false. +*/ +wordWrap?: boolean; +/** +* Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'. +* Defaults to 'same' in vscode and to 'none' in monaco-editor. +*/ +wrappingIndent?: string; +/** +* Configure word wrapping characters. A break will be introduced before these characters. +* Defaults to '{([+'. +*/ +wordWrapBreakBeforeCharacters?: string; +/** +* Configure word wrapping characters. A break will be introduced after these characters. +* Defaults to ' \t})]?|&,;'. +*/ +wordWrapBreakAfterCharacters?: string; +/** +* Configure word wrapping characters. A break will be introduced after these characters only if no `wordWrapBreakBeforeCharacters` or `wordWrapBreakAfterCharacters` were found. +* Defaults to '.'. +*/ +wordWrapBreakObtrusiveCharacters?: string; +/** +* Performance guard: Stop rendering a line after x characters. +* Defaults to 10000 if wrappingColumn is -1. Defaults to -1 if wrappingColumn is >= 0. +* Use -1 to never stop rendering +*/ +stopRenderingLineAfter?: number; +/** +* Enable hover. +* Defaults to true. +*/ +hover?: boolean; +/** +* Enable custom contextmenu. +* Defaults to true. +*/ +contextmenu?: boolean; +/** +* A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events. +* Defaults to 1. +*/ +mouseWheelScrollSensitivity?: number; +/** +* Enable quick suggestions (shadow suggestions) +* Defaults to true. +*/ +quickSuggestions?: boolean; +/** +* Quick suggestions show delay (in ms) +* Defaults to 500 (ms) +*/ +quickSuggestionsDelay?: number; +/** +* Enables parameter hints +*/ +parameterHints?: boolean; +/** +* Render icons in suggestions box. +* Defaults to true. +*/ +iconsInSuggestions?: boolean; +/** +* Enable auto closing brackets. +* Defaults to true. +*/ +autoClosingBrackets?: boolean; +/** +* Enable format on type. +* Defaults to false. +*/ +formatOnType?: boolean; +/** +* Enable the suggestion box to pop-up on trigger characters. +* Defaults to true. +*/ +suggestOnTriggerCharacters?: boolean; +/** +* Accept suggestions on ENTER. +* Defaults to true. +*/ +acceptSuggestionOnEnter?: boolean; +/** +* Enable snippet suggestions. Default to 'true'. +*/ +snippetSuggestions?: 'top'|'bottom'|'inline'|'none'; +/** +* Copying without a selection copies the current line. +*/ +emptySelectionClipboard?: boolean; +/** +* Enable tab completion. Defaults to 'false' +*/ +tabCompletion?: boolean; +/** +* Enable word based suggestions. Defaults to 'true' +*/ +wordBasedSuggestions?: boolean; +/** +* The font size for the suggest widget. +* Defaults to the editor font size. +*/ +suggestFontSize?: number; +/** +* The line height for the suggest widget. +* Defaults to the editor line height. +*/ +suggestLineHeight?: number; +/** +* Enable selection highlight. +* Defaults to true. +*/ +selectionHighlight?: boolean; +/** +* Show code lens +* Defaults to true. +*/ +codeLens?: boolean; +/** +* Enable code folding +* Defaults to true in vscode and to false in monaco-editor. +*/ +folding?: boolean; +/** +* Enable rendering of whitespace. +* Defaults to none. +*/ +renderWhitespace?: 'none'|'boundary'|'all'; +/** +* Enable rendering of control characters. +* Defaults to false. +*/ +renderControlCharacters?: boolean; +/** +* Enable rendering of indent guides. +* Defaults to false. +*/ +renderIndentGuides?: boolean; +/** +* Enable rendering of current line highlight. +* Defaults to true. +*/ +renderLineHighlight?: boolean; +/** +* Inserting and deleting whitespace follows tab stops. +*/ +useTabStops?: boolean; +/** +* The font family +*/ +fontFamily?: string; +/** +* The font weight +*/ +fontWeight?: 'normal'|'bold'|'bolder'|'lighter'|'initial'|'inherit'|'100'|'200'|'300'|'400'|'500'|'600'|'700'|'800'|'900'; +/** +* The font size +*/ +fontSize?: number; +/** +* The line height +*/ +lineHeight?: number; +} + +/** +* Configuration options for the diff editor. +*/ +export interface IDiffEditorOptions extends IEditorOptions { +/** +* Allow the user to resize the diff editor split view. +* Defaults to true. +*/ +enableSplitViewResizing?: boolean; +/** +* Render the differences in two side-by-side editors. +* Defaults to true. +*/ +renderSideBySide?: boolean; +/** +* Compute the diff by ignoring leading/trailing whitespace +* Defaults to true. +*/ +ignoreTrimWhitespace?: boolean; +/** +* Original model should be editable? +* Defaults to false. +*/ +originalEditable?: boolean; +} + +export class InternalEditorScrollbarOptions { +readonly _internalEditorScrollbarOptionsBrand: void; +readonly arrowSize: number; +readonly vertical: ScrollbarVisibility; +readonly horizontal: ScrollbarVisibility; +readonly useShadows: boolean; +readonly verticalHasArrows: boolean; +readonly horizontalHasArrows: boolean; +readonly handleMouseWheel: boolean; +readonly horizontalScrollbarSize: number; +readonly horizontalSliderSize: number; +readonly verticalScrollbarSize: number; +readonly verticalSliderSize: number; +readonly mouseWheelScrollSensitivity: number; +} + +export class EditorWrappingInfo { +readonly _editorWrappingInfoBrand: void; +readonly isViewportWrapping: boolean; +readonly wrappingColumn: number; +readonly wrappingIndent: WrappingIndent; +readonly wordWrapBreakBeforeCharacters: string; +readonly wordWrapBreakAfterCharacters: string; +readonly wordWrapBreakObtrusiveCharacters: string; +} + +export class InternalEditorViewOptions { +readonly _internalEditorViewOptionsBrand: void; +readonly theme: string; +readonly canUseTranslate3d: boolean; +readonly experimentalScreenReader: boolean; +readonly rulers: number[]; +readonly ariaLabel: string; +readonly renderLineNumbers: boolean; +readonly renderCustomLineNumbers: (lineNumber: number) => string; +readonly renderRelativeLineNumbers: boolean; +readonly selectOnLineNumbers: boolean; +readonly glyphMargin: boolean; +readonly revealHorizontalRightPadding: number; +readonly roundedSelection: boolean; +readonly overviewRulerLanes: number; +readonly cursorBlinking: TextEditorCursorBlinkingStyle; +readonly mouseWheelZoom: boolean; +readonly cursorStyle: TextEditorCursorStyle; +readonly hideCursorInOverviewRuler: boolean; +readonly scrollBeyondLastLine: boolean; +readonly editorClassName: string; +readonly stopRenderingLineAfter: number; +readonly renderWhitespace: 'none'|'boundary'|'all'; +readonly renderControlCharacters: boolean; +readonly renderIndentGuides: boolean; +readonly renderLineHighlight: boolean; +readonly scrollbar: InternalEditorScrollbarOptions; +readonly fixedOverflowWidgets: boolean; +} + +export interface IViewConfigurationChangedEvent { +readonly theme: boolean; +readonly canUseTranslate3d: boolean; +readonly experimentalScreenReader: boolean; +readonly rulers: boolean; +readonly ariaLabel: boolean; +readonly renderLineNumbers: boolean; +readonly renderCustomLineNumbers: boolean; +readonly renderRelativeLineNumbers: boolean; +readonly selectOnLineNumbers: boolean; +readonly glyphMargin: boolean; +readonly revealHorizontalRightPadding: boolean; +readonly roundedSelection: boolean; +readonly overviewRulerLanes: boolean; +readonly cursorBlinking: boolean; +readonly mouseWheelZoom: boolean; +readonly cursorStyle: boolean; +readonly hideCursorInOverviewRuler: boolean; +readonly scrollBeyondLastLine: boolean; +readonly editorClassName: boolean; +readonly stopRenderingLineAfter: boolean; +readonly renderWhitespace: boolean; +readonly renderControlCharacters: boolean; +readonly renderIndentGuides: boolean; +readonly renderLineHighlight: boolean; +readonly scrollbar: boolean; +readonly fixedOverflowWidgets: boolean; +} + +export class EditorContribOptions { +readonly selectionClipboard: boolean; +readonly hover: boolean; +readonly contextmenu: boolean; +readonly quickSuggestions: boolean; +readonly quickSuggestionsDelay: number; +readonly parameterHints: boolean; +readonly iconsInSuggestions: boolean; +readonly formatOnType: boolean; +readonly suggestOnTriggerCharacters: boolean; +readonly acceptSuggestionOnEnter: boolean; +readonly snippetSuggestions: 'top'|'bottom'|'inline'|'none'; +readonly emptySelectionClipboard: boolean; +readonly tabCompletion: boolean; +readonly wordBasedSuggestions: boolean; +readonly suggestFontSize: number; +readonly suggestLineHeight: number; +readonly selectionHighlight: boolean; +readonly codeLens: boolean; +readonly folding: boolean; +} + +/** +* Internal configuration options (transformed or computed) for the editor. +*/ +export class InternalEditorOptions { +readonly _internalEditorOptionsBrand: void; +readonly lineHeight: number; +readonly readOnly: boolean; +readonly wordSeparators: string; +readonly autoClosingBrackets: boolean; +readonly useTabStops: boolean; +readonly tabFocusMode: boolean; +readonly layoutInfo: EditorLayoutInfo; +readonly fontInfo: FontInfo; +readonly viewInfo: InternalEditorViewOptions; +readonly wrappingInfo: EditorWrappingInfo; +readonly contribInfo: EditorContribOptions; +} + +/** +* An event describing that the configuration of the editor has changed. +*/ +export interface IConfigurationChangedEvent { +readonly lineHeight: boolean; +readonly readOnly: boolean; +readonly wordSeparators: boolean; +readonly autoClosingBrackets: boolean; +readonly useTabStops: boolean; +readonly tabFocusMode: boolean; +readonly layoutInfo: boolean; +readonly fontInfo: boolean; +readonly viewInfo: IViewConfigurationChangedEvent; +readonly wrappingInfo: boolean; +readonly contribInfo: boolean; +} + +/** +* Vertical Lane in the overview ruler of the editor. +*/ +export enum OverviewRulerLane { +Left=1, +Center=2, +Right=4, +Full=7, +} + +/** +* Options for rendering a model decoration in the overview ruler. +*/ +export interface IModelDecorationOverviewRulerOptions { +/** +* CSS color to render in the overview ruler. +* e.g.: rgba(100, 100, 100, 0.5) +*/ +color: string; +/** +* CSS color to render in the overview ruler. +* e.g.: rgba(100, 100, 100, 0.5) +*/ +darkColor: string; +/** +* The position in the overview ruler. +*/ +position: OverviewRulerLane; +} + +/** +* Options for a model decoration. +*/ +export interface IModelDecorationOptions { +/** +* Customize the growing behaviour of the decoration when typing at the edges of the decoration. +* Defaults to TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges +*/ +stickiness?: TrackedRangeStickiness; +/** +* CSS class name describing the decoration. +*/ +className?: string; +/** +* Array of MarkedString to render as the decoration message. +*/ +hoverMessage?: MarkedString|MarkedString[]; +/** +* Should the decoration expand to encompass a whole line. +*/ +isWholeLine?: boolean; +/** +* @deprecated : Use `overviewRuler` instead +*/ +showInOverviewRuler?: string; +/** +* If set, render this decoration in the overview ruler. +*/ +overviewRuler?: IModelDecorationOverviewRulerOptions; +/** +* If set, the decoration will be rendered in the glyph margin with this CSS class name. +*/ +glyphMarginClassName?: string; +/** +* If set, the decoration will be rendered in the lines decorations with this CSS class name. +*/ +linesDecorationsClassName?: string; +/** +* If set, the decoration will be rendered inline with the text with this CSS class name. +* Please use this only for CSS rules that must impact the text. For example, use `className` +* to have a background color decoration. +*/ +inlineClassName?: string; +/** +* If set, the decoration will be rendered before the text with this CSS class name. +*/ +beforeContentClassName?: string; +/** +* If set, the decoration will be rendered after the text with this CSS class name. +*/ +afterContentClassName?: string; +} + +/** +* New model decorations. +*/ +export interface IModelDeltaDecoration { +/** +* Range that this decoration covers. +*/ +range: IRange; +/** +* Options associated with this decoration. +*/ +options: IModelDecorationOptions; +} + +/** +* A decoration in the model. +*/ +export interface IModelDecoration { +/** +* Identifier for a decoration. +*/ +readonly id: string; +/** +* Identifier for a decoration's owener. +*/ +readonly ownerId: number; +/** +* Range that this decoration covers. +*/ +readonly range: Range; +/** +* Options associated with this decoration. +*/ +readonly options: IModelDecorationOptions; +} + +/** +* Word inside a model. +*/ +export interface IWordAtPosition { +/** +* The word. +*/ +readonly word: string; +/** +* The column where the word starts. +*/ +readonly startColumn: number; +/** +* The column where the word ends. +*/ +readonly endColumn: number; +} + +/** +* End of line character preference. +*/ +export enum EndOfLinePreference { +/** +* Use the end of line character identified in the text buffer. +*/ +TextDefined=0, +/** +* Use line feed (\n) as the end of line character. +*/ +LF=1, +/** +* Use carriage return and line feed (\r\n) as the end of line character. +*/ +CRLF=2, +} + +/** +* The default end of line to use when instantiating models. +*/ +export enum DefaultEndOfLine { +/** +* Use line feed (\n) as the end of line character. +*/ +LF=1, +/** +* Use carriage return and line feed (\r\n) as the end of line character. +*/ +CRLF=2, +} + +/** +* End of line character preference. +*/ +export enum EndOfLineSequence { +/** +* Use line feed (\n) as the end of line character. +*/ +LF=0, +/** +* Use carriage return and line feed (\r\n) as the end of line character. +*/ +CRLF=1, +} + +/** +* And identifier for a single edit operation. +*/ +export interface ISingleEditOperationIdentifier { +/** +* Identifier major +*/ +major: number; +/** +* Identifier minor +*/ +minor: number; +} + +/** +* A builder and helper for edit operations for a command. +*/ +export interface IEditOperationBuilder { +/** +* Add a new edit operation (a replace operation). +* @param range The range to replace (delete). May be empty to represent a simple insert. +* @param text The text to replace with. May be null to represent a simple delete. +*/ +addEditOperation(range: Range,text: string): void; +/** +* Track `selection` when applying edit operations. +* A best effort will be made to not grow/expand the selection. +* An empty selection will clamp to a nearby character. +* @param selection The selection to track. +* @param trackPreviousOnEmpty If set, and the selection is empty, indicates whether the selection +* should clamp to the previous or the next character. +* @return A unique identifer. +*/ +trackSelection(selection: Selection,trackPreviousOnEmpty?: boolean): string; +} + +/** +* A helper for computing cursor state after a command. +*/ +export interface ICursorStateComputerData { +/** +* Get the inverse edit operations of the added edit operations. +*/ +getInverseEditOperations(): IIdentifiedSingleEditOperation[]; +/** +* Get a previously tracked selection. +* @param id The unique identifier returned by `trackSelection`. +* @return The selection. +*/ +getTrackedSelection(id: string): Selection; +} + +/** +* A command that modifies text / cursor state on a model. +*/ +export interface ICommand { +/** +* Get the edit operations needed to execute this command. +* @param model The model the command will execute on. +* @param builder A helper to collect the needed edit operations and to track selections. +*/ +getEditOperations(model: ITokenizedModel,builder: IEditOperationBuilder): void; +/** +* Compute the cursor state after the edit operations were applied. +* @param model The model the commad has executed on. +* @param helper A helper to get inverse edit operations and to get previously tracked selections. +* @return The cursor state after the command executed. +*/ +computeCursorState(model: ITokenizedModel,helper: ICursorStateComputerData): Selection; +} + +/** +* A single edit operation, that acts as a simple replace. +* i.e. Replace text at `range` with `text` in model. +*/ +export interface ISingleEditOperation { +/** +* The range to replace. This can be empty to emulate a simple insert. +*/ +range: IRange; +/** +* The text to replace with. This can be null to emulate a simple delete. +*/ +text: string; +/** +* This indicates that this operation has "insert" semantics. +* i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. +*/ +forceMoveMarkers?: boolean; +} + +/** +* A single edit operation, that has an identifier. +*/ +export interface IIdentifiedSingleEditOperation { +/** +* An identifier associated with this single edit operation. +*/ +identifier: ISingleEditOperationIdentifier; +/** +* The range to replace. This can be empty to emulate a simple insert. +*/ +range: Range; +/** +* The text to replace with. This can be null to emulate a simple delete. +*/ +text: string; +/** +* This indicates that this operation has "insert" semantics. +* i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. +*/ +forceMoveMarkers: boolean; +/** +* This indicates that this operation is inserting automatic whitespace +* that can be removed on next model edit operation if `config.trimAutoWhitespace` is true. +*/ +isAutoWhitespaceEdit?: boolean; +} + +/** +* A callback that can compute the cursor state after applying a series of edit operations. +*/ +export interface ICursorStateComputer { +/** +* A callback that can compute the resulting cursors state after some edit operations have been executed. +*/ +(inverseEditOperations: IIdentifiedSingleEditOperation[]): Selection[]; +} + +export class TextModelResolvedOptions { +_textModelResolvedOptionsBrand: void; +readonly tabSize: number; +readonly insertSpaces: boolean; +readonly defaultEOL: DefaultEndOfLine; +readonly trimAutoWhitespace: boolean; +} + +export interface ITextModelUpdateOptions { +tabSize?: number; +insertSpaces?: boolean; +trimAutoWhitespace?: boolean; +} + +export interface IModelOptionsChangedEvent { +readonly tabSize: boolean; +readonly insertSpaces: boolean; +readonly trimAutoWhitespace: boolean; +} + +/** +* A textual read-only model. +*/ +export interface ITextModel { +getOptions(): TextModelResolvedOptions; +/** +* Get the current version id of the model. +* Anytime a change happens to the model (even undo/redo), +* the version id is incremented. +*/ +getVersionId(): number; +/** +* Get the alternative version id of the model. +* This alternative version id is not always incremented, +* it will return the same values in the case of undo-redo. +*/ +getAlternativeVersionId(): number; +/** +* Replace the entire text buffer value contained in this model. +*/ +setValue(newValue: string): void; +/** +* Replace the entire text buffer value contained in this model. +*/ +setValueFromRawText(newValue: IRawText): void; +/** +* Get the text stored in this model. +* @param eol The end of line character preference. Defaults to `EndOfLinePreference.TextDefined`. +* @param preserverBOM Preserve a BOM character if it was detected when the model was constructed. +* @return The text. +*/ +getValue(eol?: EndOfLinePreference,preserveBOM?: boolean): string; +/** +* Get the length of the text stored in this model. +*/ +getValueLength(eol?: EndOfLinePreference,preserveBOM?: boolean): number; +/** +* Get the raw text stored in this model. +*/ +toRawText(): IRawText; +/** +* Check if the raw text stored in this model equals another raw text. +*/ +equals(other: IRawText): boolean; +/** +* Get the text in a certain range. +* @param range The range describing what text to get. +* @param eol The end of line character preference. This will only be used for multiline ranges. Defaults to `EndOfLinePreference.TextDefined`. +* @return The text. +*/ +getValueInRange(range: IRange,eol?: EndOfLinePreference): string; +/** +* Get the length of text in a certain range. +* @param range The range describing what text length to get. +* @return The text length. +*/ +getValueLengthInRange(range: IRange): number; +/** +* Get the number of lines in the model. +*/ +getLineCount(): number; +/** +* Get the text for a certain line. +*/ +getLineContent(lineNumber: number): string; +/** +* Get the text for all lines. +*/ +getLinesContent(): string[]; +/** +* Get the end of line sequence predominantly used in the text buffer. +* @return EOL char sequence (e.g.: '\n' or '\r\n'). +*/ +getEOL(): string; +/** +* Change the end of line sequence used in the text buffer. +*/ +setEOL(eol: EndOfLineSequence): void; +/** +* Get the minimum legal column for line at `lineNumber` +*/ +getLineMinColumn(lineNumber: number): number; +/** +* Get the maximum legal column for line at `lineNumber` +*/ +getLineMaxColumn(lineNumber: number): number; +/** +* Returns the column before the first non whitespace character for line at `lineNumber`. +* Returns 0 if line is empty or contains only whitespace. +*/ +getLineFirstNonWhitespaceColumn(lineNumber: number): number; +/** +* Returns the column after the last non whitespace character for line at `lineNumber`. +* Returns 0 if line is empty or contains only whitespace. +*/ +getLineLastNonWhitespaceColumn(lineNumber: number): number; +/** +* Create a valid position, +*/ +validatePosition(position: IPosition): Position; +/** +* Advances the given position by the given offest (negative offsets are also accepted) +* and returns it as a new valid position. +* +* If the offset and position are such that their combination goes beyond the beginning or +* end of the model, throws an exception. +* +* If the ofsset is such that the new position would be in the middle of a multi-byte +* line terminator, throws an exception. +*/ +modifyPosition(position: IPosition,offset: number): Position; +/** +* Create a valid range. +*/ +validateRange(range: IRange): Range; +/** +* Converts the position to a zero-based offset. +* +* The position will be [adjusted](#TextDocument.validatePosition). +* +* @param position A position. +* @return A valid zero-based offset. +*/ +getOffsetAt(position: IPosition): number; +/** +* Converts a zero-based offset to a position. +* +* @param offset A zero-based offset. +* @return A valid [position](#Position). +*/ +getPositionAt(offset: number): Position; +/** +* Get a range covering the entire model +*/ +getFullModelRange(): Range; +/** +* Returns iff the model was disposed or not. +*/ +isDisposed(): boolean; +/** +* Search the model. +* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. +* @param searchOnlyEditableRange Limit the searching to only search inside the editable range of the model. +* @param isRegex Used to indicate that `searchString` is a regular expression. +* @param matchCase Force the matching to match lower/upper case exactly. +* @param wholeWord Force the matching to match entire words only. +* @param limitResultCount Limit the number of results +* @return The ranges where the matches are. It is empty if not matches have been found. +*/ +findMatches(searchString: string,searchOnlyEditableRange: boolean,isRegex: boolean,matchCase: boolean,wholeWord: boolean,limitResultCount?: number): Range[]; +/** +* Search the model. +* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. +* @param searchScope Limit the searching to only search inside this range. +* @param isRegex Used to indicate that `searchString` is a regular expression. +* @param matchCase Force the matching to match lower/upper case exactly. +* @param wholeWord Force the matching to match entire words only. +* @param limitResultCount Limit the number of results +* @return The ranges where the matches are. It is empty if no matches have been found. +*/ +findMatches(searchString: string,searchScope: IRange,isRegex: boolean,matchCase: boolean,wholeWord: boolean,limitResultCount?: number): Range[]; +/** +* Search the model for the next match. Loops to the beginning of the model if needed. +* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. +* @param searchStart Start the searching at the specified position. +* @param isRegex Used to indicate that `searchString` is a regular expression. +* @param matchCase Force the matching to match lower/upper case exactly. +* @param wholeWord Force the matching to match entire words only. +* @return The range where the next match is. It is null if no next match has been found. +*/ +findNextMatch(searchString: string,searchStart: IPosition,isRegex: boolean,matchCase: boolean,wholeWord: boolean): Range; +/** +* Search the model for the previous match. Loops to the end of the model if needed. +* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. +* @param searchStart Start the searching at the specified position. +* @param isRegex Used to indicate that `searchString` is a regular expression. +* @param matchCase Force the matching to match lower/upper case exactly. +* @param wholeWord Force the matching to match entire words only. +* @return The range where the previous match is. It is null if no previous match has been found. +*/ +findPreviousMatch(searchString: string,searchStart: IPosition,isRegex: boolean,matchCase: boolean,wholeWord: boolean): Range; +} + +export interface IReadOnlyModel extends ITextModel { +/** +* Gets the resource associated with this editor model. +*/ +readonly uri: Uri; +/** +* Get the language associated with this model. +*/ +getModeId(): string; +/** +* Get the word under or besides `position`. +* @param position The position to look for a word. +* @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. +* @return The word under or besides `position`. Might be null. +*/ +getWordAtPosition(position: IPosition): IWordAtPosition; +/** +* Get the word under or besides `position` trimmed to `position`.column +* @param position The position to look for a word. +* @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. +* @return The word under or besides `position`. Will never be null. +*/ +getWordUntilPosition(position: IPosition): IWordAtPosition; +} + +/** +* A model that is tokenized. +*/ +export interface ITokenizedModel extends ITextModel { +/** +* Get the current language mode associated with the model. +*/ +getMode(): languages.IMode; +/** +* Get the language associated with this model. +*/ +getModeId(): string; +/** +* Get the word under or besides `position`. +* @param position The position to look for a word. +* @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. +* @return The word under or besides `position`. Might be null. +*/ +getWordAtPosition(position: IPosition): IWordAtPosition; +/** +* Get the word under or besides `position` trimmed to `position`.column +* @param position The position to look for a word. +* @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. +* @return The word under or besides `position`. Will never be null. +*/ +getWordUntilPosition(position: IPosition): IWordAtPosition; +} + +/** +* A model that can track markers. +*/ +export interface ITextModelWithMarkers extends ITextModel { +} + +/** +* Describes the behaviour of decorations when typing/editing near their edges. +*/ +export enum TrackedRangeStickiness { +AlwaysGrowsWhenTypingAtEdges=0, +NeverGrowsWhenTypingAtEdges=1, +GrowsOnlyWhenTypingBefore=2, +GrowsOnlyWhenTypingAfter=3, +} + +/** +* A model that can track ranges. +*/ +export interface ITextModelWithTrackedRanges extends ITextModel { +} + +/** +* A model that can have decorations. +*/ +export interface ITextModelWithDecorations { +/** +* Perform a minimum ammount of operations, in order to transform the decorations +* identified by `oldDecorations` to the decorations described by `newDecorations` +* and returns the new identifiers associated with the resulting decorations. +* +* @param oldDecorations Array containing previous decorations identifiers. +* @param newDecorations Array describing what decorations should result after the call. +* @param ownerId Identifies the editor id in which these decorations should appear. If no `ownerId` is provided, the decorations will appear in all editors that attach this model. +* @return An array containing the new decorations identifiers. +*/ +deltaDecorations(oldDecorations: string[],newDecorations: IModelDeltaDecoration[],ownerId?: number): string[]; +/** +* Get the options associated with a decoration. +* @param id The decoration id. +* @return The decoration options or null if the decoration was not found. +*/ +getDecorationOptions(id: string): IModelDecorationOptions; +/** +* Get the range associated with a decoration. +* @param id The decoration id. +* @return The decoration range or null if the decoration was not found. +*/ +getDecorationRange(id: string): Range; +/** +* Gets all the decorations for the line `lineNumber` as an array. +* @param lineNumber The line number +* @param ownerId If set, it will ignore decorations belonging to other owners. +* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). +* @return An array with the decorations +*/ +getLineDecorations(lineNumber: number,ownerId?: number,filterOutValidation?: boolean): IModelDecoration[]; +/** +* Gets all the decorations for the lines between `startLineNumber` and `endLineNumber` as an array. +* @param startLineNumber The start line number +* @param endLineNumber The end line number +* @param ownerId If set, it will ignore decorations belonging to other owners. +* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). +* @return An array with the decorations +*/ +getLinesDecorations(startLineNumber: number,endLineNumber: number,ownerId?: number,filterOutValidation?: boolean): IModelDecoration[]; +/** +* Gets all the deocorations in a range as an array. Only `startLineNumber` and `endLineNumber` from `range` are used for filtering. +* So for now it returns all the decorations on the same line as `range`. +* @param range The range to search in +* @param ownerId If set, it will ignore decorations belonging to other owners. +* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). +* @return An array with the decorations +*/ +getDecorationsInRange(range: IRange,ownerId?: number,filterOutValidation?: boolean): IModelDecoration[]; +/** +* Gets all the decorations as an array. +* @param ownerId If set, it will ignore decorations belonging to other owners. +* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). +*/ +getAllDecorations(ownerId?: number,filterOutValidation?: boolean): IModelDecoration[]; +} + +/** +* An editable text model. +*/ +export interface IEditableTextModel extends ITextModelWithMarkers { +/** +* Normalize a string containing whitespace according to indentation rules (converts to spaces or to tabs). +*/ +normalizeIndentation(str: string): string; +/** +* Get what is considered to be one indent (e.g. a tab character or 4 spaces, etc.). +*/ +getOneIndent(): string; +/** +* Change the options of this model. +*/ +updateOptions(newOpts: ITextModelUpdateOptions): void; +/** +* Detect the indentation options for this model from its content. +*/ +detectIndentation(defaultInsertSpaces: boolean,defaultTabSize: number): void; +/** +* Push a stack element onto the undo stack. This acts as an undo/redo point. +* The idea is to use `pushEditOperations` to edit the model and then to +* `pushStackElement` to create an undo/redo stop point. +*/ +pushStackElement(): void; +/** +* Push edit operations, basically editing the model. This is the preferred way +* of editing the model. The edit operations will land on the undo stack. +* @param beforeCursorState The cursor state before the edit operaions. This cursor state will be returned when `undo` or `redo` are invoked. +* @param editOperations The edit operations. +* @param cursorStateComputer A callback that can compute the resulting cursors state after the edit operations have been executed. +* @return The cursor state returned by the `cursorStateComputer`. +*/ +pushEditOperations(beforeCursorState: Selection[],editOperations: IIdentifiedSingleEditOperation[],cursorStateComputer: ICursorStateComputer): Selection[]; +/** +* Edit the model without adding the edits to the undo stack. +* This can have dire consequences on the undo stack! See @pushEditOperations for the preferred way. +* @param operations The edit operations. +* @return The inverse edit operations, that, when applied, will bring the model back to the previous state. +*/ +applyEdits(operations: IIdentifiedSingleEditOperation[]): IIdentifiedSingleEditOperation[]; +} + +/** +* A model. +*/ +export interface IModel extends IReadOnlyModel,IEditableTextModel,ITextModelWithMarkers,ITokenizedModel,ITextModelWithTrackedRanges,ITextModelWithDecorations,IEditorModel { +/** +* An event emitted when the contents of the model have changed. +* @event +*/ +onDidChangeContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; +/** +* An event emitted when decorations of the model have changed. +* @event +*/ +onDidChangeDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; +/** +* An event emitted when the model options have changed. +* @event +*/ +onDidChangeOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; +/** +* An event emitted when the language associated with the model has changed. +* @event +*/ +onDidChangeMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; +/** +* An event emitted right before disposing the model. +* @event +*/ +onWillDispose(listener: () => void): IDisposable; +/** +* A unique identifier associated with this model. +*/ +readonly id: string; +/** +* Destroy this model. This will unbind the model from the mode +* and make all necessary clean-up to release this object to the GC. +*/ +dispose(): void; +} + +/** +* An event describing that the current mode associated with a model has changed. +*/ +export interface IModelModeChangedEvent { +/** +* Previous mode +*/ +readonly oldMode: languages.IMode; +/** +* New mode +*/ +readonly newMode: languages.IMode; +} + +/** +* An event describing a change in the text of a model. +*/ +export interface IModelContentChangedEvent2 { +/** +* The range that got replaced. +*/ +readonly range: IRange; +/** +* The length of the range that got replaced. +*/ +readonly rangeLength: number; +/** +* The new text for the range. +*/ +readonly text: string; +/** +* The (new) end-of-line character. +*/ +readonly eol: string; +/** +* The new version id the model has transitioned to. +*/ +versionId: number; +/** +* Flag that indicates that this event was generated while undoing. +*/ +readonly isUndoing: boolean; +/** +* Flag that indicates that this event was generated while redoing. +*/ +readonly isRedoing: boolean; +} + +/** +* The raw text backing a model. +*/ +export interface IRawText { +/** +* The entire text length. +*/ +readonly length: number; +/** +* The text split into lines. +*/ +readonly lines: string[]; +/** +* The BOM (leading character sequence of the file). +*/ +readonly BOM: string; +/** +* The end of line sequence. +*/ +readonly EOL: string; +/** +* The text contains Unicode characters classified as "R" or "AL". +*/ +readonly containsRTL: boolean; +/** +* The options associated with this text. +*/ +readonly options: { +readonly tabSize: number; +readonly insertSpaces: boolean; +readonly defaultEOL: DefaultEndOfLine; +readonly trimAutoWhitespace: boolean; +}; +} + +/** +* Decoration data associated with a model decorations changed event. +*/ +export interface IModelDecorationsChangedEventDecorationData { +/** +* The id of the decoration. +*/ +readonly id: string; +/** +* The owner id of the decoration. +*/ +readonly ownerId: number; +/** +* The range of the decoration. +*/ +readonly range: IRange; +/** +* A flag describing if this is a problem decoration (e.g. warning/error). +*/ +readonly isForValidation: boolean; +/** +* The options for this decoration. +*/ +readonly options: IModelDecorationOptions; +} + +/** +* An event describing that model decorations have changed. +*/ +export interface IModelDecorationsChangedEvent { +/** +* A summary with ids of decorations that have changed. +*/ +readonly ids: string[]; +/** +* Lists of details for added or changed decorations. +*/ +readonly addedOrChangedDecorations: IModelDecorationsChangedEventDecorationData[]; +/** +* List of ids for removed decorations. +*/ +readonly removedDecorations: string[]; +/** +* Details regarding old options. +*/ +readonly oldOptions: { +[decorationId: string]: IModelDecorationOptions; +}; +/** +* Details regarding old ranges. +*/ +readonly oldRanges: { +[decorationId: string]: IRange; +}; +} + +/** +* An event describing that some ranges of lines have been tokenized (their tokens have changed). +*/ +export interface IModelTokensChangedEvent { +readonly ranges: { +/** +* The start of the range (inclusive) +*/ +readonly fromLineNumber: number; +/** +* The end of the range (inclusive) +*/ +readonly toLineNumber: number; +}[]; +} + +/** +* Describes the reason the cursor has changed its position. +*/ +export enum CursorChangeReason { +/** +* Unknown or not set. +*/ +NotSet=0, +/** +* A `model.setValue()` was called. +*/ +ContentFlush=1, +/** +* The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers. +*/ +RecoverFromMarkers=2, +/** +* There was an explicit user gesture. +*/ +Explicit=3, +/** +* There was a Paste. +*/ +Paste=4, +/** +* There was an Undo. +*/ +Undo=5, +/** +* There was a Redo. +*/ +Redo=6, +} + +/** +* An event describing that the cursor position has changed. +*/ +export interface ICursorPositionChangedEvent { +/** +* Primary cursor's position. +*/ +readonly position: Position; +/** +* Primary cursor's view position +*/ +readonly viewPosition: Position; +/** +* Secondary cursors' position. +*/ +readonly secondaryPositions: Position[]; +/** +* Secondary cursors' view position. +*/ +readonly secondaryViewPositions: Position[]; +/** +* Reason. +*/ +readonly reason: CursorChangeReason; +/** +* Source of the call that caused the event. +*/ +readonly source: string; +/** +* Is the primary cursor in the editable range? +*/ +readonly isInEditableRange: boolean; +} + +/** +* An event describing that the cursor selection has changed. +*/ +export interface ICursorSelectionChangedEvent { +/** +* The primary selection. +*/ +readonly selection: Selection; +/** +* The primary selection in view coordinates. +*/ +readonly viewSelection: Selection; +/** +* The secondary selections. +*/ +readonly secondarySelections: Selection[]; +/** +* The secondary selections in view coordinates. +*/ +readonly secondaryViewSelections: Selection[]; +/** +* Source of the call that caused the event. +*/ +readonly source: string; +/** +* Reason. +*/ +readonly reason: CursorChangeReason; +} + +/** +* An event describing that an editor has had its model reset (i.e. `editor.setModel()`). +*/ +export interface IModelChangedEvent { +/** +* The `uri` of the previous model or null. +*/ +readonly oldModelUrl: Uri; +/** +* The `uri` of the new model or null. +*/ +readonly newModelUrl: Uri; +} + +/** +* A description for the overview ruler position. +*/ +export class OverviewRulerPosition { +readonly _overviewRulerPositionBrand: void; +/** +* Width of the overview ruler +*/ +readonly width: number; +/** +* Height of the overview ruler +*/ +readonly height: number; +/** +* Top position for the overview ruler +*/ +readonly top: number; +/** +* Right position for the overview ruler +*/ +readonly right: number; +} + +/** +* The internal layout details of the editor. +*/ +export class EditorLayoutInfo { +readonly _editorLayoutInfoBrand: void; +/** +* Full editor width. +*/ +readonly width: number; +/** +* Full editor height. +*/ +readonly height: number; +/** +* Left position for the glyph margin. +*/ +readonly glyphMarginLeft: number; +/** +* The width of the glyph margin. +*/ +readonly glyphMarginWidth: number; +/** +* The height of the glyph margin. +*/ +readonly glyphMarginHeight: number; +/** +* Left position for the line numbers. +*/ +readonly lineNumbersLeft: number; +/** +* The width of the line numbers. +*/ +readonly lineNumbersWidth: number; +/** +* The height of the line numbers. +*/ +readonly lineNumbersHeight: number; +/** +* Left position for the line decorations. +*/ +readonly decorationsLeft: number; +/** +* The width of the line decorations. +*/ +readonly decorationsWidth: number; +/** +* The height of the line decorations. +*/ +readonly decorationsHeight: number; +/** +* Left position for the content (actual text) +*/ +readonly contentLeft: number; +/** +* The width of the content (actual text) +*/ +readonly contentWidth: number; +/** +* The height of the content (actual height) +*/ +readonly contentHeight: number; +/** +* The width of the vertical scrollbar. +*/ +readonly verticalScrollbarWidth: number; +/** +* The height of the horizontal scrollbar. +*/ +readonly horizontalScrollbarHeight: number; +/** +* The position of the overview ruler. +*/ +readonly overviewRuler: OverviewRulerPosition; +} + +/** +* Options for creating the editor. +*/ +export interface ICodeEditorWidgetCreationOptions extends IEditorOptions { +/** +* The initial model associated with this code editor. +*/ +model?: IModel; +} + +/** +* An editor model. +*/ +export interface IEditorModel { +} + +/** +* An editor view state. +*/ +export interface IEditorViewState { +} + +export interface IDimension { +width: number; +height: number; +} + +/** +* A (serializable) state of the cursors. +*/ +export interface ICursorState { +inSelectionMode: boolean; +selectionStart: IPosition; +position: IPosition; +} + +/** +* A (serializable) state of the view. +*/ +export interface IViewState { +scrollTop: number; +scrollTopWithoutViewZones: number; +scrollLeft: number; +} + +/** +* A (serializable) state of the code editor. +*/ +export interface ICodeEditorViewState extends IEditorViewState { +cursorState: ICursorState[]; +viewState: IViewState; +contributionsState: { +[id: string]: any; +}; +} + +/** +* Type of hit element with the mouse in the editor. +*/ +export enum MouseTargetType { +/** +* Mouse is on top of an unknown element. +*/ +UNKNOWN=0, +/** +* Mouse is on top of the textarea used for input. +*/ +TEXTAREA=1, +/** +* Mouse is on top of the glyph margin +*/ +GUTTER_GLYPH_MARGIN=2, +/** +* Mouse is on top of the line numbers +*/ +GUTTER_LINE_NUMBERS=3, +/** +* Mouse is on top of the line decorations +*/ +GUTTER_LINE_DECORATIONS=4, +/** +* Mouse is on top of the whitespace left in the gutter by a view zone. +*/ +GUTTER_VIEW_ZONE=5, +/** +* Mouse is on top of text in the content. +*/ +CONTENT_TEXT=6, +/** +* Mouse is on top of empty space in the content (e.g. after line text or below last line) +*/ +CONTENT_EMPTY=7, +/** +* Mouse is on top of a view zone in the content. +*/ +CONTENT_VIEW_ZONE=8, +/** +* Mouse is on top of a content widget. +*/ +CONTENT_WIDGET=9, +/** +* Mouse is on top of the decorations overview ruler. +*/ +OVERVIEW_RULER=10, +/** +* Mouse is on top of a scrollbar. +*/ +SCROLLBAR=11, +/** +* Mouse is on top of an overlay widget. +*/ +OVERLAY_WIDGET=12, +} + +/** +* A model for the diff editor. +*/ +export interface IDiffEditorModel extends IEditorModel { +/** +* Original model. +*/ +original: IModel; +/** +* Modified model. +*/ +modified: IModel; +} + +/** +* (Serializable) View state for the diff editor. +*/ +export interface IDiffEditorViewState extends IEditorViewState { +original: ICodeEditorViewState; +modified: ICodeEditorViewState; +} + +/** +* A change +*/ +export interface IChange { +readonly originalStartLineNumber: number; +readonly originalEndLineNumber: number; +readonly modifiedStartLineNumber: number; +readonly modifiedEndLineNumber: number; +} + +/** +* A character level change. +*/ +export interface ICharChange extends IChange { +readonly originalStartColumn: number; +readonly originalEndColumn: number; +readonly modifiedStartColumn: number; +readonly modifiedEndColumn: number; +} + +/** +* A line change +*/ +export interface ILineChange extends IChange { +readonly charChanges: ICharChange[]; +} + +export class BareFontInfo { +readonly _bareFontInfoBrand: void; +readonly fontFamily: string; +readonly fontWeight: string; +readonly fontSize: number; +readonly lineHeight: number; +} + +export class FontInfo extends BareFontInfo { +readonly _editorStylingBrand: void; +readonly typicalHalfwidthCharacterWidth: number; +readonly typicalFullwidthCharacterWidth: number; +readonly spaceWidth: number; +readonly maxDigitWidth: number; +} + +export interface INewScrollPosition { +scrollLeft?: number; +scrollTop?: number; +} + +/** +* Description of an action contribution +*/ +export interface IActionDescriptor { +/** +* An unique identifier of the contributed action. +*/ +id: string; +/** +* A label of the action that will be presented to the user. +*/ +label: string; +/** +* An array of keybindings for the action. +*/ +keybindings?: number[]; +/** +* Control if the action should show up in the context menu and where. +* The context menu of the editor has these default: +* navigation - The navigation group comes first in all cases. +* 1_modification - This group comes next and contains commands that modify your code. +* 9_cutcopypaste - The last default group with the basic editing commands. +* You can also create your own group. +* Defaults to null (don't show in context menu). +*/ +contextMenuGroupId?: string; +/** +* Control the order in the context menu group. +*/ +contextMenuOrder?: number; +/** +* The keybinding rule. +*/ +keybindingContext?: string; +/** +* Method that will be executed when the action is triggered. +* @param editor The editor instance is passed in as a convinience +*/ +run(editor: ICommonCodeEditor): void|Promise; +} + +export interface IEditorAction { +readonly id: string; +readonly label: string; +readonly alias: string; +isSupported(): boolean; +run(): Promise; +} + +/** +* An editor. +*/ +export interface IEditor { +/** +* An event emitted when the content of the current model has changed. +* @event +*/ +onDidChangeModelContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; +/** +* An event emitted when the language of the current model has changed. +* @event +*/ +onDidChangeModelMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; +/** +* An event emitted when the options of the current model has changed. +* @event +*/ +onDidChangeModelOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; +/** +* An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`) +* @event +*/ +onDidChangeConfiguration(listener: (e: IConfigurationChangedEvent) => void): IDisposable; +/** +* An event emitted when the cursor position has changed. +* @event +*/ +onDidChangeCursorPosition(listener: (e: ICursorPositionChangedEvent) => void): IDisposable; +/** +* An event emitted when the cursor selection has changed. +* @event +*/ +onDidChangeCursorSelection(listener: (e: ICursorSelectionChangedEvent) => void): IDisposable; +/** +* An event emitted when the editor has been disposed. +* @event +*/ +onDidDispose(listener: () => void): IDisposable; +/** +* Dispose the editor. +*/ +dispose(): void; +/** +* Get a unique id for this editor instance. +*/ +getId(): string; +/** +* Get the editor type. Please see `EditorType`. +* This is to avoid an instanceof check +*/ +getEditorType(): string; +/** +* Update the editor's options after the editor has been created. +*/ +updateOptions(newOptions: IEditorOptions): void; +/** +* Instructs the editor to remeasure its container. This method should +* be called when the container of the editor gets resized. +*/ +layout(dimension?: IDimension): void; +/** +* Brings browser focus to the editor text +*/ +focus(): void; +/** +* Returns true if this editor has keyboard focus (e.g. cursor is blinking). +*/ +isFocused(): boolean; +/** +* Add a new action to this editor. +*/ +addAction(descriptor: IActionDescriptor): void; +/** +* Returns all actions associated with this editor. +*/ +getActions(): IEditorAction[]; +/** +* Returns all actions associated with this editor. +*/ +getSupportedActions(): IEditorAction[]; +/** +* Saves current view state of the editor in a serializable object. +*/ +saveViewState(): IEditorViewState; +/** +* Restores the view state of the editor from a serializable object generated by `saveViewState`. +*/ +restoreViewState(state: IEditorViewState): void; +/** +* Given a position, returns a column number that takes tab-widths into account. +*/ +getVisibleColumnFromPosition(position: IPosition): number; +/** +* Returns the primary position of the cursor. +*/ +getPosition(): Position; +/** +* Set the primary position of the cursor. This will remove any secondary cursors. +* @param position New primary cursor's position +*/ +setPosition(position: IPosition): void; +/** +* Scroll vertically as necessary and reveal a line. +*/ +revealLine(lineNumber: number): void; +/** +* Scroll vertically as necessary and reveal a line centered vertically. +*/ +revealLineInCenter(lineNumber: number): void; +/** +* Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport. +*/ +revealLineInCenterIfOutsideViewport(lineNumber: number): void; +/** +* Scroll vertically or horizontally as necessary and reveal a position. +*/ +revealPosition(position: IPosition): void; +/** +* Scroll vertically or horizontally as necessary and reveal a position centered vertically. +*/ +revealPositionInCenter(position: IPosition): void; +/** +* Scroll vertically or horizontally as necessary and reveal a position centered vertically only if it lies outside the viewport. +*/ +revealPositionInCenterIfOutsideViewport(position: IPosition): void; +/** +* Returns the primary selection of the editor. +*/ +getSelection(): Selection; +/** +* Returns all the selections of the editor. +*/ +getSelections(): Selection[]; +/** +* Set the primary selection of the editor. This will remove any secondary cursors. +* @param selection The new selection +*/ +setSelection(selection: IRange): void; +/** +* Set the primary selection of the editor. This will remove any secondary cursors. +* @param selection The new selection +*/ +setSelection(selection: Range): void; +/** +* Set the primary selection of the editor. This will remove any secondary cursors. +* @param selection The new selection +*/ +setSelection(selection: ISelection): void; +/** +* Set the primary selection of the editor. This will remove any secondary cursors. +* @param selection The new selection +*/ +setSelection(selection: Selection): void; +/** +* Set the selections for all the cursors of the editor. +* Cursors will be removed or added, as necessary. +*/ +setSelections(selections: ISelection[]): void; +/** +* Scroll vertically as necessary and reveal lines. +*/ +revealLines(startLineNumber: number,endLineNumber: number): void; +/** +* Scroll vertically as necessary and reveal lines centered vertically. +*/ +revealLinesInCenter(lineNumber: number,endLineNumber: number): void; +/** +* Scroll vertically as necessary and reveal lines centered vertically only if it lies outside the viewport. +*/ +revealLinesInCenterIfOutsideViewport(lineNumber: number,endLineNumber: number): void; +/** +* Scroll vertically or horizontally as necessary and reveal a range. +*/ +revealRange(range: IRange): void; +/** +* Scroll vertically or horizontally as necessary and reveal a range centered vertically. +*/ +revealRangeInCenter(range: IRange): void; +/** +* Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport. +*/ +revealRangeInCenterIfOutsideViewport(range: IRange): void; +/** +* Directly trigger a handler or an editor action. +* @param source The source of the call. +* @param handlerId The id of the handler or the id of a contribution. +* @param payload Extra data to be sent to the handler. +*/ +trigger(source: string,handlerId: string,payload: any): void; +/** +* Gets the current model attached to this editor. +*/ +getModel(): IEditorModel; +/** +* Sets the current model attached to this editor. +* If the previous model was created by the editor via the value key in the options +* literal object, it will be destroyed. Otherwise, if the previous model was set +* via setModel, or the model key in the options literal object, the previous model +* will not be destroyed. +* It is safe to call setModel(null) to simply detach the current model from the editor. +*/ +setModel(model: IEditorModel): void; +} + +/** +* An editor contribution that gets created every time a new editor gets created and gets disposed when the editor gets disposed. +*/ +export interface IEditorContribution { +/** +* Get a unique identifier for this contribution. +*/ +getId(): string; +/** +* Dispose this contribution. +*/ +dispose(): void; +/** +* Store view state. +*/ +saveViewState?(): any; +/** +* Restore view state. +*/ +restoreViewState?(state: any): void; +} + +export interface ICommonCodeEditor extends IEditor { +/** +* An event emitted when the model of this editor has changed (e.g. `editor.setModel()`). +* @event +*/ +onDidChangeModel(listener: (e: IModelChangedEvent) => void): IDisposable; +/** +* An event emitted when the decorations of the current model have changed. +* @event +*/ +onDidChangeModelDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; +/** +* An event emitted when the text inside this editor gained focus (i.e. cursor blinking). +* @event +*/ +onDidFocusEditorText(listener: () => void): IDisposable; +/** +* An event emitted when the text inside this editor lost focus. +* @event +*/ +onDidBlurEditorText(listener: () => void): IDisposable; +/** +* An event emitted when the text inside this editor or an editor widget gained focus. +* @event +*/ +onDidFocusEditor(listener: () => void): IDisposable; +/** +* An event emitted when the text inside this editor or an editor widget lost focus. +* @event +*/ +onDidBlurEditor(listener: () => void): IDisposable; +/** +* Returns true if this editor or one of its widgets has keyboard focus. +*/ +hasWidgetFocus(): boolean; +/** +* Get a contribution of this editor. +* @id Unique identifier of the contribution. +* @return The contribution or null if contribution not found. +*/ +getContribution(id: string): T; +/** +* Type the getModel() of IEditor. +*/ +getModel(): IModel; +/** +* Returns the current editor's configuration +*/ +getConfiguration(): InternalEditorOptions; +/** +* Get value of the current model attached to this editor. +* @see IModel.getValue +*/ +getValue(options?: { +preserveBOM: boolean; +lineEnding: string; +}): string; +/** +* Set the value of the current model attached to this editor. +* @see IModel.setValue +*/ +setValue(newValue: string): void; +/** +* Get the scrollWidth of the editor's viewport. +*/ +getScrollWidth(): number; +/** +* Get the scrollLeft of the editor's viewport. +*/ +getScrollLeft(): number; +/** +* Get the scrollHeight of the editor's viewport. +*/ +getScrollHeight(): number; +/** +* Get the scrollTop of the editor's viewport. +*/ +getScrollTop(): number; +/** +* Change the scrollLeft of the editor's viewport. +*/ +setScrollLeft(newScrollLeft: number): void; +/** +* Change the scrollTop of the editor's viewport. +*/ +setScrollTop(newScrollTop: number): void; +/** +* Change the scroll position of the editor's viewport. +*/ +setScrollPosition(position: INewScrollPosition): void; +/** +* Get an action that is a contribution to this editor. +* @id Unique identifier of the contribution. +* @return The action or null if action not found. +*/ +getAction(id: string): IEditorAction; +/** +* Execute a command on the editor. +* @param source The source of the call. +* @param command The command to execute +*/ +executeCommand(source: string,command: ICommand): void; +/** +* Push an "undo stop" in the undo-redo stack. +*/ +pushUndoStop(): boolean; +/** +* Execute a command on the editor. +* @param source The source of the call. +* @param command The command to execute +*/ +executeEdits(source: string,edits: IIdentifiedSingleEditOperation[]): boolean; +/** +* Execute multiple (concommitent) commands on the editor. +* @param source The source of the call. +* @param command The commands to execute +*/ +executeCommands(source: string,commands: ICommand[]): void; +/** +* Get all the decorations on a line (filtering out decorations from other editors). +*/ +getLineDecorations(lineNumber: number): IModelDecoration[]; +/** +* All decorations added through this call will get the ownerId of this editor. +* @see IModel.deltaDecorations +*/ +deltaDecorations(oldDecorations: string[],newDecorations: IModelDeltaDecoration[]): string[]; +/** +* Get the layout info for the editor. +*/ +getLayoutInfo(): EditorLayoutInfo; +} + +export interface ICommonDiffEditor extends IEditor { +/** +* An event emitted when the diff information computed by this diff editor has been updated. +* @event +*/ +onDidUpdateDiff(listener: () => void): IDisposable; +/** +* Type the getModel() of IEditor. +*/ +getModel(): IDiffEditorModel; +/** +* Get the `original` editor. +*/ +getOriginalEditor(): ICommonCodeEditor; +/** +* Get the `modified` editor. +*/ +getModifiedEditor(): ICommonCodeEditor; +/** +* Get the computed diff information. +*/ +getLineChanges(): ILineChange[]; +/** +* @see ICodeEditor.getValue +*/ +getValue(options?: { +preserveBOM: boolean; +lineEnding: string; +}): string; +} + +/** +* The type of the `IEditor`. +*/ +export var EditorType: { +ICodeEditor: string; +IDiffEditor: string; +}; + +/** +* Positions in the view for cursor move command. +*/ +export const CursorMovePosition: { +Left: string; +Right: string; +Up: string; +Down: string; +WrappedLineStart: string; +WrappedLineFirstNonWhitespaceCharacter: string; +WrappedLineColumnCenter: string; +WrappedLineEnd: string; +WrappedLineLastNonWhitespaceCharacter: string; +ViewPortTop: string; +ViewPortCenter: string; +ViewPortBottom: string; +ViewPortIfOutside: string; +}; + +/** +* Units for Cursor move 'by' argument +*/ +export const CursorMoveByUnit: { +Line: string; +WrappedLine: string; +Character: string; +HalfLine: string; +}; + +/** +* Arguments for Cursor move command +*/ +export interface CursorMoveArguments { +to: string; +select?: boolean; +by?: string; +value?: number; +} + +/** +* Directions in the view for editor scroll command. +*/ +export const EditorScrollDirection: { +Up: string; +Down: string; +}; + +/** +* Units for editor scroll 'by' argument +*/ +export const EditorScrollByUnit: { +Line: string; +WrappedLine: string; +Page: string; +HalfPage: string; +}; + +/** +* Arguments for editor scroll command +*/ +export interface EditorScrollArguments { +to: string; +by?: string; +value?: number; +revealCursor?: boolean; +} + +/** +* Arguments for reveal line command +*/ +export interface RevealLineArguments { +lineNumber?: number; +at?: string; +} + +/** +* Values for reveal line 'at' argument +*/ +export const RevealLineAtArgument: { +Top: string; +Center: string; +Bottom: string; +}; + +/** +* Built-in commands. +*/ +export var Handler: { +ExecuteCommand: string; +ExecuteCommands: string; +CursorLeft: string; +CursorLeftSelect: string; +CursorWordLeft: string; +CursorWordStartLeft: string; +CursorWordEndLeft: string; +CursorWordLeftSelect: string; +CursorWordStartLeftSelect: string; +CursorWordEndLeftSelect: string; +CursorRight: string; +CursorRightSelect: string; +CursorWordRight: string; +CursorWordStartRight: string; +CursorWordEndRight: string; +CursorWordRightSelect: string; +CursorWordStartRightSelect: string; +CursorWordEndRightSelect: string; +CursorUp: string; +CursorUpSelect: string; +CursorDown: string; +CursorDownSelect: string; +CursorPageUp: string; +CursorPageUpSelect: string; +CursorPageDown: string; +CursorPageDownSelect: string; +CursorHome: string; +CursorHomeSelect: string; +CursorEnd: string; +CursorEndSelect: string; +ExpandLineSelection: string; +CursorTop: string; +CursorTopSelect: string; +CursorBottom: string; +CursorBottomSelect: string; +CursorColumnSelectLeft: string; +CursorColumnSelectRight: string; +CursorColumnSelectUp: string; +CursorColumnSelectPageUp: string; +CursorColumnSelectDown: string; +CursorColumnSelectPageDown: string; +CursorMove: string; +AddCursorDown: string; +AddCursorUp: string; +CursorUndo: string; +MoveTo: string; +MoveToSelect: string; +ColumnSelect: string; +CreateCursor: string; +LastCursorMoveToSelect: string; +JumpToBracket: string; +Type: string; +ReplacePreviousChar: string; +CompositionStart: string; +CompositionEnd: string; +Paste: string; +Tab: string; +Indent: string; +Outdent: string; +DeleteLeft: string; +DeleteRight: string; +DeleteWordLeft: string; +DeleteWordStartLeft: string; +DeleteWordEndLeft: string; +DeleteWordRight: string; +DeleteWordStartRight: string; +DeleteWordEndRight: string; +DeleteAllLeft: string; +DeleteAllRight: string; +RemoveSecondaryCursors: string; +CancelSelection: string; +Cut: string; +Undo: string; +Redo: string; +WordSelect: string; +WordSelectDrag: string; +LastCursorWordSelect: string; +LineSelect: string; +LineSelectDrag: string; +LastCursorLineSelect: string; +LastCursorLineSelectDrag: string; +LineInsertBefore: string; +LineInsertAfter: string; +LineBreakInsert: string; +SelectAll: string; +EditorScroll: string; +ScrollLineUp: string; +ScrollLineDown: string; +ScrollPageUp: string; +ScrollPageDown: string; +RevealLine: string; +}; + +/** +* The style in which the editor's cursor should be rendered. +*/ +export enum TextEditorCursorStyle { +/** +* As a vertical line (sitting between two characters). +*/ +Line=1, +/** +* As a block (sitting on top of a character). +*/ +Block=2, +/** +* As a horizontal line (sitting under a character). +*/ +Underline=3, +} + +/** +* The kind of animation in which the editor's cursor should be rendered. +*/ +export enum TextEditorCursorBlinkingStyle { +/** +* Hidden +*/ +Hidden=0, +/** +* Blinking +*/ +Blink=1, +/** +* Blinking with smooth fading +*/ +Smooth=2, +/** +* Blinking with prolonged filled state and smooth fading +*/ +Phase=3, +/** +* Expand collapse animation on the y axis +*/ +Expand=4, +/** +* No-Blinking +*/ +Solid=5, +} + +/** +* A view zone is a full horizontal rectangle that 'pushes' text down. +* The editor reserves space for view zones when rendering. +*/ +export interface IViewZone { +/** +* The line number after which this zone should appear. +* Use 0 to place a view zone before the first line number. +*/ +afterLineNumber: number; +/** +* The column after which this zone should appear. +* If not set, the maxLineColumn of `afterLineNumber` will be used. +*/ +afterColumn?: number; +/** +* Suppress mouse down events. +* If set, the editor will attach a mouse down listener to the view zone and .preventDefault on it. +* Defaults to false +*/ +suppressMouseDown?: boolean; +/** +* The height in lines of the view zone. +* If specified, `heightInPx` will be used instead of this. +* If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen. +*/ +heightInLines?: number; +/** +* The height in px of the view zone. +* If this is set, the editor will give preference to it rather than `heightInLines` above. +* If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen. +*/ +heightInPx?: number; +/** +* The dom node of the view zone +*/ +domNode: HTMLElement; +/** +* Callback which gives the relative top of the view zone as it appears (taking scrolling into account). +*/ +onDomNodeTop?: (top: number) => void; +/** +* Callback which gives the height in pixels of the view zone. +*/ +onComputedHeight?: (height: number) => void; +} + +/** +* An accessor that allows for zones to be added or removed. +*/ +export interface IViewZoneChangeAccessor { +/** +* Create a new view zone. +* @param zone Zone to create +* @return A unique identifier to the view zone. +*/ +addZone(zone: IViewZone): number; +/** +* Remove a zone +* @param id A unique identifier to the view zone, as returned by the `addZone` call. +*/ +removeZone(id: number): void; +/** +* Change a zone's position. +* The editor will rescan the `afterLineNumber` and `afterColumn` properties of a view zone. +*/ +layoutZone(id: number): void; +} + +/** +* A positioning preference for rendering content widgets. +*/ +export enum ContentWidgetPositionPreference { +/** +* Place the content widget exactly at a position +*/ +EXACT=0, +/** +* Place the content widget above a position +*/ +ABOVE=1, +/** +* Place the content widget below a position +*/ +BELOW=2, +} + +/** +* A position for rendering content widgets. +*/ +export interface IContentWidgetPosition { +/** +* Desired position for the content widget. +* `preference` will also affect the placement. +*/ +position: IPosition; +/** +* Placement preference for position, in order of preference. +*/ +preference: ContentWidgetPositionPreference[]; +} + +/** +* A content widget renders inline with the text and can be easily placed 'near' an editor position. +*/ +export interface IContentWidget { +/** +* Render this content widget in a location where it could overflow the editor's view dom node. +*/ +allowEditorOverflow?: boolean; +suppressMouseDown?: boolean; +/** +* Get a unique identifier of the content widget. +*/ +getId(): string; +/** +* Get the dom node of the content widget. +*/ +getDomNode(): HTMLElement; +/** +* Get the placement of the content widget. +* If null is returned, the content widget will be placed off screen. +*/ +getPosition(): IContentWidgetPosition; +} + +/** +* A positioning preference for rendering overlay widgets. +*/ +export enum OverlayWidgetPositionPreference { +/** +* Position the overlay widget in the top right corner +*/ +TOP_RIGHT_CORNER=0, +/** +* Position the overlay widget in the bottom right corner +*/ +BOTTOM_RIGHT_CORNER=1, +/** +* Position the overlay widget in the top center +*/ +TOP_CENTER=2, +} + +/** +* A position for rendering overlay widgets. +*/ +export interface IOverlayWidgetPosition { +/** +* The position preference for the overlay widget. +*/ +preference: OverlayWidgetPositionPreference; +} + +/** +* An overlay widgets renders on top of the text. +*/ +export interface IOverlayWidget { +/** +* Get a unique identifier of the overlay widget. +*/ +getId(): string; +/** +* Get the dom node of the overlay widget. +*/ +getDomNode(): HTMLElement; +/** +* Get the placement of the overlay widget. +* If null is returned, the overlay widget is responsible to place itself. +*/ +getPosition(): IOverlayWidgetPosition; +} + +/** +* Target hit with the mouse in the editor. +*/ +export interface IMouseTarget { +/** +* The target element +*/ +readonly element: Element; +/** +* The target type +*/ +readonly type: MouseTargetType; +/** +* The 'approximate' editor position +*/ +readonly position: Position; +/** +* Desired mouse column (e.g. when position.column gets clamped to text length -- clicking after text on a line). +*/ +readonly mouseColumn: number; +/** +* The 'approximate' editor range +*/ +readonly range: Range; +/** +* Some extra detail. +*/ +readonly detail: any; +} + +/** +* A mouse event originating from the editor. +*/ +export interface IEditorMouseEvent { +readonly event: IMouseEvent; +readonly target: IMouseTarget; +} + +/** +* A rich code editor. +*/ +export interface ICodeEditor extends ICommonCodeEditor { +/** +* An event emitted on a "mouseup". +* @event +*/ +onMouseUp(listener: (e: IEditorMouseEvent) => void): IDisposable; +/** +* An event emitted on a "mousedown". +* @event +*/ +onMouseDown(listener: (e: IEditorMouseEvent) => void): IDisposable; +/** +* An event emitted on a "contextmenu". +* @event +*/ +onContextMenu(listener: (e: IEditorMouseEvent) => void): IDisposable; +/** +* An event emitted on a "mousemove". +* @event +*/ +onMouseMove(listener: (e: IEditorMouseEvent) => void): IDisposable; +/** +* An event emitted on a "mouseleave". +* @event +*/ +onMouseLeave(listener: (e: IEditorMouseEvent) => void): IDisposable; +/** +* An event emitted on a "keyup". +* @event +*/ +onKeyUp(listener: (e: IKeyboardEvent) => void): IDisposable; +/** +* An event emitted on a "keydown". +* @event +*/ +onKeyDown(listener: (e: IKeyboardEvent) => void): IDisposable; +/** +* An event emitted when the layout of the editor has changed. +* @event +*/ +onDidLayoutChange(listener: (e: EditorLayoutInfo) => void): IDisposable; +/** +* An event emitted when the scroll in the editor has changed. +* @event +*/ +onDidScrollChange(listener: (e: IScrollEvent) => void): IDisposable; +/** +* Returns the editor's dom node +*/ +getDomNode(): HTMLElement; +/** +* Add a content widget. Widgets must have unique ids, otherwise they will be overwritten. +*/ +addContentWidget(widget: IContentWidget): void; +/** +* Layout/Reposition a content widget. This is a ping to the editor to call widget.getPosition() +* and update appropiately. +*/ +layoutContentWidget(widget: IContentWidget): void; +/** +* Remove a content widget. +*/ +removeContentWidget(widget: IContentWidget): void; +/** +* Add an overlay widget. Widgets must have unique ids, otherwise they will be overwritten. +*/ +addOverlayWidget(widget: IOverlayWidget): void; +/** +* Layout/Reposition an overlay widget. This is a ping to the editor to call widget.getPosition() +* and update appropiately. +*/ +layoutOverlayWidget(widget: IOverlayWidget): void; +/** +* Remove an overlay widget. +*/ +removeOverlayWidget(widget: IOverlayWidget): void; +/** +* Change the view zones. View zones are lost when a new model is attached to the editor. +*/ +changeViewZones(callback: (accessor: IViewZoneChangeAccessor) => void): void; +/** +* Returns the range that is currently centered in the view port. +*/ +getCenteredRangeInViewport(): Range; +/** +* Get the horizontal position (left offset) for the column w.r.t to the beginning of the line. +* This method works only if the line `lineNumber` is currently rendered (in the editor's viewport). +* Use this method with caution. +*/ +getOffsetForColumn(lineNumber: number,column: number): number; +/** +* Force an editor render now. +*/ +render(): void; +/** +* Get the vertical position (top offset) for the line w.r.t. to the first line. +*/ +getTopForLineNumber(lineNumber: number): number; +/** +* Get the vertical position (top offset) for the position w.r.t. to the first line. +*/ +getTopForPosition(lineNumber: number,column: number): number; +/** +* Get the visible position for `position`. +* The result position takes scrolling into account and is relative to the top left corner of the editor. +* Explanation 1: the results of this method will change for the same `position` if the user scrolls the editor. +* Explanation 2: the results of this method will not change if the container of the editor gets repositioned. +* Warning: the results of this method are innacurate for positions that are outside the current editor viewport. +*/ +getScrolledVisiblePosition(position: IPosition): { +top: number; +left: number; +height: number; +}; +/** +* Apply the same font settings as the editor to `target`. +*/ +applyFontInfo(target: HTMLElement): void; +} + +/** +* A rich diff editor. +*/ +export interface IDiffEditor extends ICommonDiffEditor { +/** +* @see ICodeEditor.getDomNode +*/ +getDomNode(): HTMLElement; +} } declare module monaco.languages { - /** - * Register information about a new language. - */ - export function register(language: ILanguageExtensionPoint): void; - - /** - * Get the information of all the registered languages. - */ - export function getLanguages(): ILanguageExtensionPoint[]; - - /** - * An event emitted when a language is first time needed (e.g. a model has it set). - * @event - */ - export function onLanguage(languageId: string, callback: () => void): IDisposable; - - /** - * Set the editing configuration for a language. - */ - export function setLanguageConfiguration(languageId: string, configuration: LanguageConfiguration): IDisposable; - - /** - * Set the tokens provider for a language (manual implementation). - */ - export function setTokensProvider(languageId: string, provider: TokensProvider): IDisposable; - - /** - * Set the tokens provider for a language (monarch implementation). - */ - export function setMonarchTokensProvider(languageId: string, languageDef: IMonarchLanguage): IDisposable; - - /** - * Register a reference provider (used by e.g. reference search). - */ - export function registerReferenceProvider(languageId: string, provider: ReferenceProvider): IDisposable; - - /** - * Register a rename provider (used by e.g. rename symbol). - */ - export function registerRenameProvider(languageId: string, provider: RenameProvider): IDisposable; - - /** - * Register a signature help provider (used by e.g. paremeter hints). - */ - export function registerSignatureHelpProvider(languageId: string, provider: SignatureHelpProvider): IDisposable; - - /** - * Register a hover provider (used by e.g. editor hover). - */ - export function registerHoverProvider(languageId: string, provider: HoverProvider): IDisposable; - - /** - * Register a document symbol provider (used by e.g. outline). - */ - export function registerDocumentSymbolProvider(languageId: string, provider: DocumentSymbolProvider): IDisposable; - - /** - * Register a document highlight provider (used by e.g. highlight occurences). - */ - export function registerDocumentHighlightProvider(languageId: string, provider: DocumentHighlightProvider): IDisposable; - - /** - * Register a definition provider (used by e.g. go to definition). - */ - export function registerDefinitionProvider(languageId: string, provider: DefinitionProvider): IDisposable; - - /** - * Register a code lens provider (used by e.g. inline code lenses). - */ - export function registerCodeLensProvider(languageId: string, provider: CodeLensProvider): IDisposable; - - /** - * Register a code action provider (used by e.g. quick fix). - */ - export function registerCodeActionProvider(languageId: string, provider: CodeActionProvider): IDisposable; - - /** - * Register a formatter that can handle only entire models. - */ - export function registerDocumentFormattingEditProvider(languageId: string, provider: DocumentFormattingEditProvider): IDisposable; - - /** - * Register a formatter that can handle a range inside a model. - */ - export function registerDocumentRangeFormattingEditProvider(languageId: string, provider: DocumentRangeFormattingEditProvider): IDisposable; - - /** - * Register a formatter than can do formatting as the user types. - */ - export function registerOnTypeFormattingEditProvider(languageId: string, provider: OnTypeFormattingEditProvider): IDisposable; - - /** - * Register a link provider that can find links in text. - */ - export function registerLinkProvider(languageId: string, provider: LinkProvider): IDisposable; - - /** - * Register a completion item provider (use by e.g. suggestions). - */ - export function registerCompletionItemProvider(languageId: string, provider: CompletionItemProvider): IDisposable; - - /** - * Contains additional diagnostic information about the context in which - * a [code action](#CodeActionProvider.provideCodeActions) is run. - */ - export interface CodeActionContext { - /** - * An array of diagnostics. - * - * @readonly - */ - readonly markers: editor.IMarkerData[]; - } - - /** - * The code action interface defines the contract between extensions and - * the [light bulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature. - */ - export interface CodeActionProvider { - /** - * Provide commands for the given document and range. - */ - provideCodeActions(model: editor.IReadOnlyModel, range: Range, context: CodeActionContext, token: CancellationToken): CodeAction[] | Thenable; - } - - /** - * Completion item kinds. - */ - export enum CompletionItemKind { - Text = 0, - Method = 1, - Function = 2, - Constructor = 3, - Field = 4, - Variable = 5, - Class = 6, - Interface = 7, - Module = 8, - Property = 9, - Unit = 10, - Value = 11, - Enum = 12, - Keyword = 13, - Snippet = 14, - Color = 15, - File = 16, - Reference = 17, - } - - /** - * A completion item represents a text snippet that is - * proposed to complete text that is being typed. - */ - export interface CompletionItem { - /** - * The label of this completion item. By default - * this is also the text that is inserted when selecting - * this completion. - */ - label: string; - /** - * The kind of this completion item. Based on the kind - * an icon is chosen by the editor. - */ - kind: CompletionItemKind; - /** - * A human-readable string with additional information - * about this item, like type or symbol information. - */ - detail?: string; - /** - * A human-readable string that represents a doc-comment. - */ - documentation?: string; - /** - * A string that should be used when comparing this item - * with other items. When `falsy` the [label](#CompletionItem.label) - * is used. - */ - sortText?: string; - /** - * A string that should be used when filtering a set of - * completion items. When `falsy` the [label](#CompletionItem.label) - * is used. - */ - filterText?: string; - /** - * A string that should be inserted in a document when selecting - * this completion. When `falsy` the [label](#CompletionItem.label) - * is used. - */ - insertText?: string; - /** - * An [edit](#TextEdit) which is applied to a document when selecting - * this completion. When an edit is provided the value of - * [insertText](#CompletionItem.insertText) is ignored. - * - * The [range](#Range) of the edit must be single-line and one the same - * line completions where [requested](#CompletionItemProvider.provideCompletionItems) at. - */ - textEdit?: editor.ISingleEditOperation; - } - - /** - * Represents a collection of [completion items](#CompletionItem) to be presented - * in the editor. - */ - export interface CompletionList { - /** - * This list it not complete. Further typing should result in recomputing - * this list. - */ - isIncomplete?: boolean; - /** - * The completion items. - */ - items: CompletionItem[]; - } - - /** - * The completion item provider interface defines the contract between extensions and - * the [IntelliSense](https://code.visualstudio.com/docs/editor/editingevolved#_intellisense). - * - * When computing *complete* completion items is expensive, providers can optionally implement - * the `resolveCompletionItem`-function. In that case it is enough to return completion - * items with a [label](#CompletionItem.label) from the - * [provideCompletionItems](#CompletionItemProvider.provideCompletionItems)-function. Subsequently, - * when a completion item is shown in the UI and gains focus this provider is asked to resolve - * the item, like adding [doc-comment](#CompletionItem.documentation) or [details](#CompletionItem.detail). - */ - export interface CompletionItemProvider { - triggerCharacters?: string[]; - /** - * Provide completion items for the given position and document. - */ - provideCompletionItems(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): CompletionItem[] | Thenable | CompletionList | Thenable; - /** - * Given a completion item fill in more data, like [doc-comment](#CompletionItem.documentation) - * or [details](#CompletionItem.detail). - * - * The editor will only resolve a completion item once. - */ - resolveCompletionItem?(item: CompletionItem, token: CancellationToken): CompletionItem | Thenable; - } - - /** - * Describes how comments for a language work. - */ - export interface CommentRule { - /** - * The line comment token, like `// this is a comment` - */ - lineComment?: string; - /** - * The block comment character pair, like `/* block comment */` - */ - blockComment?: CharacterPair; - } - - /** - * The language configuration interface defines the contract between extensions and - * various editor features, like automatic bracket insertion, automatic indentation etc. - */ - export interface LanguageConfiguration { - /** - * The language's comment settings. - */ - comments?: CommentRule; - /** - * The language's brackets. - * This configuration implicitly affects pressing Enter around these brackets. - */ - brackets?: CharacterPair[]; - /** - * The language's word definition. - * If the language supports Unicode identifiers (e.g. JavaScript), it is preferable - * to provide a word definition that uses exclusion of known separators. - * e.g.: A regex that matches anything except known separators (and dot is allowed to occur in a floating point number): - * /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g - */ - wordPattern?: RegExp; - /** - * The language's indentation settings. - */ - indentationRules?: IndentationRule; - /** - * The language's rules to be evaluated when pressing Enter. - */ - onEnterRules?: OnEnterRule[]; - /** - * The language's auto closing pairs. The 'close' character is automatically inserted with the - * 'open' character is typed. If not set, the configured brackets will be used. - */ - autoClosingPairs?: IAutoClosingPairConditional[]; - /** - * The language's surrounding pairs. When the 'open' character is typed on a selection, the - * selected string is surrounded by the open and close characters. If not set, the autoclosing pairs - * settings will be used. - */ - surroundingPairs?: IAutoClosingPair[]; - /** - * **Deprecated** Do not use. - * - * @deprecated Will be replaced by a better API soon. - */ - __electricCharacterSupport?: IBracketElectricCharacterContribution; - } - - /** - * Describes indentation rules for a language. - */ - export interface IndentationRule { - /** - * If a line matches this pattern, then all the lines after it should be unindendented once (until another rule matches). - */ - decreaseIndentPattern: RegExp; - /** - * If a line matches this pattern, then all the lines after it should be indented once (until another rule matches). - */ - increaseIndentPattern: RegExp; - /** - * If a line matches this pattern, then **only the next line** after it should be indented once. - */ - indentNextLinePattern?: RegExp; - /** - * If a line matches this pattern, then its indentation should not be changed and it should not be evaluated against the other rules. - */ - unIndentedLinePattern?: RegExp; - } - - /** - * Describes a rule to be evaluated when pressing Enter. - */ - export interface OnEnterRule { - /** - * This rule will only execute if the text before the cursor matches this regular expression. - */ - beforeText: RegExp; - /** - * This rule will only execute if the text after the cursor matches this regular expression. - */ - afterText?: RegExp; - /** - * The action to execute. - */ - action: EnterAction; - } - - export interface IBracketElectricCharacterContribution { - docComment?: IDocComment; - embeddedElectricCharacters?: string[]; - } - - /** - * Definition of documentation comments (e.g. Javadoc/JSdoc) - */ - export interface IDocComment { - scope: string; - open: string; - lineStart: string; - close?: string; - } - - /** - * A mode. Will soon be obsolete. - */ - export interface IMode { - getId(): string; - } - - /** - * A token. Only supports a single scope, but will soon support a scope array. - */ - export interface IToken { - startIndex: number; - scopes: string | string[]; - } - - /** - * The result of a line tokenization. - */ - export interface ILineTokens { - /** - * The list of tokens on the line. - */ - tokens: IToken[]; - /** - * The tokenization end state. - * A pointer will be held to this and the object should not be modified by the tokenizer after the pointer is returned. - */ - endState: IState; - /** - * An optional promise to force the model to retokenize this line (e.g. missing information at the point of tokenization) - */ - retokenize?: Promise; - } - - /** - * The state of the tokenizer between two lines. - * It is useful to store flags such as in multiline comment, etc. - * The model will clone the previous line's state and pass it in to tokenize the next line. - */ - export interface IState { - clone(): IState; - equals(other: IState): boolean; - } - - /** - * A "manual" provider of tokens. - */ - export interface TokensProvider { - /** - * The initial state of a language. Will be the state passed in to tokenize the first line. - */ - getInitialState(): IState; - /** - * Tokenize a line given the state at the beginning of the line. - */ - tokenize(line: string, state: IState): ILineTokens; - } - - /** - * A hover represents additional information for a symbol or word. Hovers are - * rendered in a tooltip-like widget. - */ - export interface Hover { - /** - * The contents of this hover. - */ - contents: MarkedString[]; - /** - * The range to which this hover applies. When missing, the - * editor will use the range at the current position or the - * current position itself. - */ - range: IRange; - } - - /** - * The hover provider interface defines the contract between extensions and - * the [hover](https://code.visualstudio.com/docs/editor/editingevolved#_hover)-feature. - */ - export interface HoverProvider { - /** - * Provide a hover for the given position and document. Multiple hovers at the same - * position will be merged by the editor. A hover can have a range which defaults - * to the word range at the position when omitted. - */ - provideHover(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): Hover | Thenable; - } - - /** - * Interface used to quick fix typing errors while accesing member fields. - */ - export interface CodeAction { - command: Command; - score: number; - } - - /** - * Represents a parameter of a callable-signature. A parameter can - * have a label and a doc-comment. - */ - export interface ParameterInformation { - /** - * The label of this signature. Will be shown in - * the UI. - */ - label: string; - /** - * The human-readable doc-comment of this signature. Will be shown - * in the UI but can be omitted. - */ - documentation: string; - } - - /** - * Represents the signature of something callable. A signature - * can have a label, like a function-name, a doc-comment, and - * a set of parameters. - */ - export interface SignatureInformation { - /** - * The label of this signature. Will be shown in - * the UI. - */ - label: string; - /** - * The human-readable doc-comment of this signature. Will be shown - * in the UI but can be omitted. - */ - documentation: string; - /** - * The parameters of this signature. - */ - parameters: ParameterInformation[]; - } - - /** - * Signature help represents the signature of something - * callable. There can be multiple signatures but only one - * active and only one active parameter. - */ - export interface SignatureHelp { - /** - * One or more signatures. - */ - signatures: SignatureInformation[]; - /** - * The active signature. - */ - activeSignature: number; - /** - * The active parameter of the active signature. - */ - activeParameter: number; - } - - /** - * The signature help provider interface defines the contract between extensions and - * the [parameter hints](https://code.visualstudio.com/docs/editor/editingevolved#_parameter-hints)-feature. - */ - export interface SignatureHelpProvider { - signatureHelpTriggerCharacters: string[]; - /** - * Provide help for the signature at the given position and document. - */ - provideSignatureHelp(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): SignatureHelp | Thenable; - } - - /** - * A document highlight kind. - */ - export enum DocumentHighlightKind { - /** - * A textual occurrence. - */ - Text = 0, - /** - * Read-access of a symbol, like reading a variable. - */ - Read = 1, - /** - * Write-access of a symbol, like writing to a variable. - */ - Write = 2, - } - - /** - * A document highlight is a range inside a text document which deserves - * special attention. Usually a document highlight is visualized by changing - * the background color of its range. - */ - export interface DocumentHighlight { - /** - * The range this highlight applies to. - */ - range: IRange; - /** - * The highlight kind, default is [text](#DocumentHighlightKind.Text). - */ - kind: DocumentHighlightKind; - } - - /** - * The document highlight provider interface defines the contract between extensions and - * the word-highlight-feature. - */ - export interface DocumentHighlightProvider { - /** - * Provide a set of document highlights, like all occurrences of a variable or - * all exit-points of a function. - */ - provideDocumentHighlights(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): DocumentHighlight[] | Thenable; - } - - /** - * Value-object that contains additional information when - * requesting references. - */ - export interface ReferenceContext { - /** - * Include the declaration of the current symbol. - */ - includeDeclaration: boolean; - } - - /** - * The reference provider interface defines the contract between extensions and - * the [find references](https://code.visualstudio.com/docs/editor/editingevolved#_peek)-feature. - */ - export interface ReferenceProvider { - /** - * Provide a set of project-wide references for the given position and document. - */ - provideReferences(model: editor.IReadOnlyModel, position: Position, context: ReferenceContext, token: CancellationToken): Location[] | Thenable; - } - - /** - * Represents a location inside a resource, such as a line - * inside a text file. - */ - export interface Location { - /** - * The resource identifier of this location. - */ - uri: Uri; - /** - * The document range of this locations. - */ - range: IRange; - } - - /** - * The definition of a symbol represented as one or many [locations](#Location). - * For most programming languages there is only one location at which a symbol is - * defined. - */ - export type Definition = Location | Location[]; - - /** - * The definition provider interface defines the contract between extensions and - * the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition) - * and peek definition features. - */ - export interface DefinitionProvider { - /** - * Provide the definition of the symbol at the given position and document. - */ - provideDefinition(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable; - } - - /** - * A symbol kind. - */ - export enum SymbolKind { - File = 0, - Module = 1, - Namespace = 2, - Package = 3, - Class = 4, - Method = 5, - Property = 6, - Field = 7, - Constructor = 8, - Enum = 9, - Interface = 10, - Function = 11, - Variable = 12, - Constant = 13, - String = 14, - Number = 15, - Boolean = 16, - Array = 17, - Object = 18, - Key = 19, - Null = 20, - } - - /** - * Represents information about programming constructs like variables, classes, - * interfaces etc. - */ - export interface SymbolInformation { - /** - * The name of this symbol. - */ - name: string; - /** - * The name of the symbol containing this symbol. - */ - containerName?: string; - /** - * The kind of this symbol. - */ - kind: SymbolKind; - /** - * The location of this symbol. - */ - location: Location; - } - - /** - * The document symbol provider interface defines the contract between extensions and - * the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_goto-symbol)-feature. - */ - export interface DocumentSymbolProvider { - /** - * Provide symbol information for the given document. - */ - provideDocumentSymbols(model: editor.IReadOnlyModel, token: CancellationToken): SymbolInformation[] | Thenable; - } - - /** - * Interface used to format a model - */ - export interface FormattingOptions { - /** - * Size of a tab in spaces. - */ - tabSize: number; - /** - * Prefer spaces over tabs. - */ - insertSpaces: boolean; - } - - /** - * The document formatting provider interface defines the contract between extensions and - * the formatting-feature. - */ - export interface DocumentFormattingEditProvider { - /** - * Provide formatting edits for a whole document. - */ - provideDocumentFormattingEdits(model: editor.IReadOnlyModel, options: FormattingOptions, token: CancellationToken): editor.ISingleEditOperation[] | Thenable; - } - - /** - * The document formatting provider interface defines the contract between extensions and - * the formatting-feature. - */ - export interface DocumentRangeFormattingEditProvider { - /** - * Provide formatting edits for a range in a document. - * - * The given range is a hint and providers can decide to format a smaller - * or larger range. Often this is done by adjusting the start and end - * of the range to full syntax nodes. - */ - provideDocumentRangeFormattingEdits(model: editor.IReadOnlyModel, range: Range, options: FormattingOptions, token: CancellationToken): editor.ISingleEditOperation[] | Thenable; - } - - /** - * The document formatting provider interface defines the contract between extensions and - * the formatting-feature. - */ - export interface OnTypeFormattingEditProvider { - autoFormatTriggerCharacters: string[]; - /** - * Provide formatting edits after a character has been typed. - * - * The given position and character should hint to the provider - * what range the position to expand to, like find the matching `{` - * when `}` has been entered. - */ - provideOnTypeFormattingEdits(model: editor.IReadOnlyModel, position: Position, ch: string, options: FormattingOptions, token: CancellationToken): editor.ISingleEditOperation[] | Thenable; - } - - /** - * A link inside the editor. - */ - export interface ILink { - range: IRange; - url: string; - } - - /** - * A provider of links. - */ - export interface LinkProvider { - provideLinks(model: editor.IReadOnlyModel, token: CancellationToken): ILink[] | Thenable; - resolveLink?: (link: ILink, token: CancellationToken) => ILink | Thenable; - } - - export interface IResourceEdit { - resource: Uri; - range: IRange; - newText: string; - } - - export interface WorkspaceEdit { - edits: IResourceEdit[]; - rejectReason?: string; - } - - export interface RenameProvider { - provideRenameEdits(model: editor.IReadOnlyModel, position: Position, newName: string, token: CancellationToken): WorkspaceEdit | Thenable; - } - - export interface Command { - id: string; - title: string; - arguments?: any[]; - } - - export interface ICodeLensSymbol { - range: IRange; - id?: string; - command?: Command; - } - - export interface CodeLensProvider { - provideCodeLenses(model: editor.IReadOnlyModel, token: CancellationToken): ICodeLensSymbol[] | Thenable; - resolveCodeLens?(model: editor.IReadOnlyModel, codeLens: ICodeLensSymbol, token: CancellationToken): ICodeLensSymbol | Thenable; - } - - /** - * A tuple of two characters, like a pair of - * opening and closing brackets. - */ - export type CharacterPair = [string, string]; - - export interface IAutoClosingPairConditional extends IAutoClosingPair { - notIn?: string[]; - } - - /** - * Describes what to do with the indentation when pressing Enter. - */ - export enum IndentAction { - /** - * Insert new line and copy the previous line's indentation. - */ - None = 0, - /** - * Insert new line and indent once (relative to the previous line's indentation). - */ - Indent = 1, - /** - * Insert two new lines: - * - the first one indented which will hold the cursor - * - the second one at the same indentation level - */ - IndentOutdent = 2, - /** - * Insert new line and outdent once (relative to the previous line's indentation). - */ - Outdent = 3, - } - - /** - * Describes what to do when pressing Enter. - */ - export interface EnterAction { - /** - * Describe what to do with the indentation. - */ - indentAction: IndentAction; - /** - * Describes text to be appended after the new line and after the indentation. - */ - appendText?: string; - /** - * Describes the number of characters to remove from the new line's indentation. - */ - removeText?: number; - } - - export interface IAutoClosingPair { - open: string; - close: string; - } - - export interface ILanguageExtensionPoint { - id: string; - extensions?: string[]; - filenames?: string[]; - filenamePatterns?: string[]; - firstLine?: string; - aliases?: string[]; - mimetypes?: string[]; - configuration?: string; - } - /** - * A Monarch language definition - */ - export interface IMonarchLanguage { - /** - * map from string to ILanguageRule[] - */ - tokenizer: { - [name: string]: IMonarchLanguageRule[]; - }; - /** - * is the language case insensitive? - */ - ignoreCase?: boolean; - /** - * if no match in the tokenizer assign this token class (default 'source') - */ - defaultToken?: string; - /** - * for example [['{','}','delimiter.curly']] - */ - brackets?: IMonarchLanguageBracket[]; - /** - * start symbol in the tokenizer (by default the first entry is used) - */ - start?: string; - /** - * attach this to every token class (by default '.' + name) - */ - tokenPostfix: string; - } - - /** - * A rule is either a regular expression and an action - * shorthands: [reg,act] == { regex: reg, action: act} - * and : [reg,act,nxt] == { regex: reg, action: act{ next: nxt }} - */ - export interface IMonarchLanguageRule { - /** - * match tokens - */ - regex?: string | RegExp; - /** - * action to take on match - */ - action?: IMonarchLanguageAction; - /** - * or an include rule. include all rules from the included state - */ - include?: string; - } - - /** - * An action is either an array of actions... - * ... or a case statement with guards... - * ... or a basic action with a token value. - */ - export interface IMonarchLanguageAction { - /** - * array of actions for each parenthesized match group - */ - group?: IMonarchLanguageAction[]; - /** - * map from string to ILanguageAction - */ - cases?: Object; - /** - * token class (ie. css class) (or "@brackets" or "@rematch") - */ - token?: string; - /** - * the next state to push, or "@push", "@pop", "@popall" - */ - next?: string; - /** - * switch to this state - */ - switchTo?: string; - /** - * go back n characters in the stream - */ - goBack?: number; - /** - * @open or @close - */ - bracket?: string; - /** - * switch to embedded language (useing the mimetype) or get out using "@pop" - */ - nextEmbedded?: string; - /** - * log a message to the browser console window - */ - log?: string; - } - - /** - * This interface can be shortened as an array, ie. ['{','}','delimiter.curly'] - */ - export interface IMonarchLanguageBracket { - /** - * open bracket - */ - open: string; - /** - * closeing bracket - */ - close: string; - /** - * token class - */ - token: string; - } +/** +* Register information about a new language. +*/ +export function register(language: ILanguageExtensionPoint): void; + +/** +* Get the information of all the registered languages. +*/ +export function getLanguages(): ILanguageExtensionPoint[]; + +/** +* An event emitted when a language is first time needed (e.g. a model has it set). +* @event +*/ +export function onLanguage(languageId: string,callback: () => void): IDisposable; + +/** +* Set the editing configuration for a language. +*/ +export function setLanguageConfiguration(languageId: string,configuration: LanguageConfiguration): IDisposable; + +/** +* Set the tokens provider for a language (manual implementation). +*/ +export function setTokensProvider(languageId: string,provider: TokensProvider): IDisposable; + +/** +* Set the tokens provider for a language (monarch implementation). +*/ +export function setMonarchTokensProvider(languageId: string,languageDef: IMonarchLanguage): IDisposable; + +/** +* Register a reference provider (used by e.g. reference search). +*/ +export function registerReferenceProvider(languageId: string,provider: ReferenceProvider): IDisposable; + +/** +* Register a rename provider (used by e.g. rename symbol). +*/ +export function registerRenameProvider(languageId: string,provider: RenameProvider): IDisposable; + +/** +* Register a signature help provider (used by e.g. paremeter hints). +*/ +export function registerSignatureHelpProvider(languageId: string,provider: SignatureHelpProvider): IDisposable; + +/** +* Register a hover provider (used by e.g. editor hover). +*/ +export function registerHoverProvider(languageId: string,provider: HoverProvider): IDisposable; + +/** +* Register a document symbol provider (used by e.g. outline). +*/ +export function registerDocumentSymbolProvider(languageId: string,provider: DocumentSymbolProvider): IDisposable; + +/** +* Register a document highlight provider (used by e.g. highlight occurences). +*/ +export function registerDocumentHighlightProvider(languageId: string,provider: DocumentHighlightProvider): IDisposable; + +/** +* Register a definition provider (used by e.g. go to definition). +*/ +export function registerDefinitionProvider(languageId: string,provider: DefinitionProvider): IDisposable; + +/** +* Register a code lens provider (used by e.g. inline code lenses). +*/ +export function registerCodeLensProvider(languageId: string,provider: CodeLensProvider): IDisposable; + +/** +* Register a code action provider (used by e.g. quick fix). +*/ +export function registerCodeActionProvider(languageId: string,provider: CodeActionProvider): IDisposable; + +/** +* Register a formatter that can handle only entire models. +*/ +export function registerDocumentFormattingEditProvider(languageId: string,provider: DocumentFormattingEditProvider): IDisposable; + +/** +* Register a formatter that can handle a range inside a model. +*/ +export function registerDocumentRangeFormattingEditProvider(languageId: string,provider: DocumentRangeFormattingEditProvider): IDisposable; + +/** +* Register a formatter than can do formatting as the user types. +*/ +export function registerOnTypeFormattingEditProvider(languageId: string,provider: OnTypeFormattingEditProvider): IDisposable; + +/** +* Register a link provider that can find links in text. +*/ +export function registerLinkProvider(languageId: string,provider: LinkProvider): IDisposable; + +/** +* Register a completion item provider (use by e.g. suggestions). +*/ +export function registerCompletionItemProvider(languageId: string,provider: CompletionItemProvider): IDisposable; + +/** +* Contains additional diagnostic information about the context in which +* a [code action](#CodeActionProvider.provideCodeActions) is run. +*/ +export interface CodeActionContext { +/** +* An array of diagnostics. +* +* @readonly +*/ +readonly markers: editor.IMarkerData[]; +} + +/** +* The code action interface defines the contract between extensions and +* the [light bulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature. +*/ +export interface CodeActionProvider { +/** +* Provide commands for the given document and range. +*/ +provideCodeActions(model: editor.IReadOnlyModel,range: Range,context: CodeActionContext,token: CancellationToken): CodeAction[]|Thenable; +} + +/** +* Completion item kinds. +*/ +export enum CompletionItemKind { +Text=0, +Method=1, +Function=2, +Constructor=3, +Field=4, +Variable=5, +Class=6, +Interface=7, +Module=8, +Property=9, +Unit=10, +Value=11, +Enum=12, +Keyword=13, +Snippet=14, +Color=15, +File=16, +Reference=17, +} + +/** +* A completion item represents a text snippet that is +* proposed to complete text that is being typed. +*/ +export interface CompletionItem { +/** +* The label of this completion item. By default +* this is also the text that is inserted when selecting +* this completion. +*/ +label: string; +/** +* The kind of this completion item. Based on the kind +* an icon is chosen by the editor. +*/ +kind: CompletionItemKind; +/** +* A human-readable string with additional information +* about this item, like type or symbol information. +*/ +detail?: string; +/** +* A human-readable string that represents a doc-comment. +*/ +documentation?: string; +/** +* A string that should be used when comparing this item +* with other items. When `falsy` the [label](#CompletionItem.label) +* is used. +*/ +sortText?: string; +/** +* A string that should be used when filtering a set of +* completion items. When `falsy` the [label](#CompletionItem.label) +* is used. +*/ +filterText?: string; +/** +* A string that should be inserted in a document when selecting +* this completion. When `falsy` the [label](#CompletionItem.label) +* is used. +*/ +insertText?: string; +/** +* An [edit](#TextEdit) which is applied to a document when selecting +* this completion. When an edit is provided the value of +* [insertText](#CompletionItem.insertText) is ignored. +* +* The [range](#Range) of the edit must be single-line and one the same +* line completions where [requested](#CompletionItemProvider.provideCompletionItems) at. +*/ +textEdit?: editor.ISingleEditOperation; +} + +/** +* Represents a collection of [completion items](#CompletionItem) to be presented +* in the editor. +*/ +export interface CompletionList { +/** +* This list it not complete. Further typing should result in recomputing +* this list. +*/ +isIncomplete?: boolean; +/** +* The completion items. +*/ +items: CompletionItem[]; +} + +/** +* The completion item provider interface defines the contract between extensions and +* the [IntelliSense](https://code.visualstudio.com/docs/editor/editingevolved#_intellisense). +* +* When computing *complete* completion items is expensive, providers can optionally implement +* the `resolveCompletionItem`-function. In that case it is enough to return completion +* items with a [label](#CompletionItem.label) from the +* [provideCompletionItems](#CompletionItemProvider.provideCompletionItems)-function. Subsequently, +* when a completion item is shown in the UI and gains focus this provider is asked to resolve +* the item, like adding [doc-comment](#CompletionItem.documentation) or [details](#CompletionItem.detail). +*/ +export interface CompletionItemProvider { +triggerCharacters?: string[]; +/** +* Provide completion items for the given position and document. +*/ +provideCompletionItems(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): CompletionItem[]|Thenable|CompletionList|Thenable; +/** +* Given a completion item fill in more data, like [doc-comment](#CompletionItem.documentation) +* or [details](#CompletionItem.detail). +* +* The editor will only resolve a completion item once. +*/ +resolveCompletionItem?(item: CompletionItem,token: CancellationToken): CompletionItem|Thenable; +} + +/** +* Describes how comments for a language work. +*/ +export interface CommentRule { +/** +* The line comment token, like `// this is a comment` +*/ +lineComment?: string; +/** +* The block comment character pair, like `/* block comment */` +*/ +blockComment?: CharacterPair; +} + +/** +* The language configuration interface defines the contract between extensions and +* various editor features, like automatic bracket insertion, automatic indentation etc. +*/ +export interface LanguageConfiguration { +/** +* The language's comment settings. +*/ +comments?: CommentRule; +/** +* The language's brackets. +* This configuration implicitly affects pressing Enter around these brackets. +*/ +brackets?: CharacterPair[]; +/** +* The language's word definition. +* If the language supports Unicode identifiers (e.g. JavaScript), it is preferable +* to provide a word definition that uses exclusion of known separators. +* e.g.: A regex that matches anything except known separators (and dot is allowed to occur in a floating point number): +* /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g +*/ +wordPattern?: RegExp; +/** +* The language's indentation settings. +*/ +indentationRules?: IndentationRule; +/** +* The language's rules to be evaluated when pressing Enter. +*/ +onEnterRules?: OnEnterRule[]; +/** +* The language's auto closing pairs. The 'close' character is automatically inserted with the +* 'open' character is typed. If not set, the configured brackets will be used. +*/ +autoClosingPairs?: IAutoClosingPairConditional[]; +/** +* The language's surrounding pairs. When the 'open' character is typed on a selection, the +* selected string is surrounded by the open and close characters. If not set, the autoclosing pairs +* settings will be used. +*/ +surroundingPairs?: IAutoClosingPair[]; +/** +* **Deprecated** Do not use. +* +* @deprecated Will be replaced by a better API soon. +*/ +__electricCharacterSupport?: IBracketElectricCharacterContribution; +} + +/** +* Describes indentation rules for a language. +*/ +export interface IndentationRule { +/** +* If a line matches this pattern, then all the lines after it should be unindendented once (until another rule matches). +*/ +decreaseIndentPattern: RegExp; +/** +* If a line matches this pattern, then all the lines after it should be indented once (until another rule matches). +*/ +increaseIndentPattern: RegExp; +/** +* If a line matches this pattern, then **only the next line** after it should be indented once. +*/ +indentNextLinePattern?: RegExp; +/** +* If a line matches this pattern, then its indentation should not be changed and it should not be evaluated against the other rules. +*/ +unIndentedLinePattern?: RegExp; +} + +/** +* Describes a rule to be evaluated when pressing Enter. +*/ +export interface OnEnterRule { +/** +* This rule will only execute if the text before the cursor matches this regular expression. +*/ +beforeText: RegExp; +/** +* This rule will only execute if the text after the cursor matches this regular expression. +*/ +afterText?: RegExp; +/** +* The action to execute. +*/ +action: EnterAction; +} + +export interface IBracketElectricCharacterContribution { +docComment?: IDocComment; +embeddedElectricCharacters?: string[]; +} + +/** +* Definition of documentation comments (e.g. Javadoc/JSdoc) +*/ +export interface IDocComment { +scope: string; +open: string; +lineStart: string; +close?: string; +} + +/** +* A mode. Will soon be obsolete. +*/ +export interface IMode { +getId(): string; +} + +/** +* A token. Only supports a single scope, but will soon support a scope array. +*/ +export interface IToken { +startIndex: number; +scopes: string|string[]; +} + +/** +* The result of a line tokenization. +*/ +export interface ILineTokens { +/** +* The list of tokens on the line. +*/ +tokens: IToken[]; +/** +* The tokenization end state. +* A pointer will be held to this and the object should not be modified by the tokenizer after the pointer is returned. +*/ +endState: IState; +/** +* An optional promise to force the model to retokenize this line (e.g. missing information at the point of tokenization) +*/ +retokenize?: Promise; +} + +/** +* The state of the tokenizer between two lines. +* It is useful to store flags such as in multiline comment, etc. +* The model will clone the previous line's state and pass it in to tokenize the next line. +*/ +export interface IState { +clone(): IState; +equals(other: IState): boolean; +} + +/** +* A "manual" provider of tokens. +*/ +export interface TokensProvider { +/** +* The initial state of a language. Will be the state passed in to tokenize the first line. +*/ +getInitialState(): IState; +/** +* Tokenize a line given the state at the beginning of the line. +*/ +tokenize(line: string,state: IState): ILineTokens; +} + +/** +* A hover represents additional information for a symbol or word. Hovers are +* rendered in a tooltip-like widget. +*/ +export interface Hover { +/** +* The contents of this hover. +*/ +contents: MarkedString[]; +/** +* The range to which this hover applies. When missing, the +* editor will use the range at the current position or the +* current position itself. +*/ +range: IRange; +} + +/** +* The hover provider interface defines the contract between extensions and +* the [hover](https://code.visualstudio.com/docs/editor/editingevolved#_hover)-feature. +*/ +export interface HoverProvider { +/** +* Provide a hover for the given position and document. Multiple hovers at the same +* position will be merged by the editor. A hover can have a range which defaults +* to the word range at the position when omitted. +*/ +provideHover(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): Hover|Thenable; +} + +/** +* Interface used to quick fix typing errors while accesing member fields. +*/ +export interface CodeAction { +command: Command; +score: number; +} + +/** +* Represents a parameter of a callable-signature. A parameter can +* have a label and a doc-comment. +*/ +export interface ParameterInformation { +/** +* The label of this signature. Will be shown in +* the UI. +*/ +label: string; +/** +* The human-readable doc-comment of this signature. Will be shown +* in the UI but can be omitted. +*/ +documentation: string; +} + +/** +* Represents the signature of something callable. A signature +* can have a label, like a function-name, a doc-comment, and +* a set of parameters. +*/ +export interface SignatureInformation { +/** +* The label of this signature. Will be shown in +* the UI. +*/ +label: string; +/** +* The human-readable doc-comment of this signature. Will be shown +* in the UI but can be omitted. +*/ +documentation: string; +/** +* The parameters of this signature. +*/ +parameters: ParameterInformation[]; +} + +/** +* Signature help represents the signature of something +* callable. There can be multiple signatures but only one +* active and only one active parameter. +*/ +export interface SignatureHelp { +/** +* One or more signatures. +*/ +signatures: SignatureInformation[]; +/** +* The active signature. +*/ +activeSignature: number; +/** +* The active parameter of the active signature. +*/ +activeParameter: number; +} + +/** +* The signature help provider interface defines the contract between extensions and +* the [parameter hints](https://code.visualstudio.com/docs/editor/editingevolved#_parameter-hints)-feature. +*/ +export interface SignatureHelpProvider { +signatureHelpTriggerCharacters: string[]; +/** +* Provide help for the signature at the given position and document. +*/ +provideSignatureHelp(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): SignatureHelp|Thenable; +} + +/** +* A document highlight kind. +*/ +export enum DocumentHighlightKind { +/** +* A textual occurrence. +*/ +Text=0, +/** +* Read-access of a symbol, like reading a variable. +*/ +Read=1, +/** +* Write-access of a symbol, like writing to a variable. +*/ +Write=2, +} + +/** +* A document highlight is a range inside a text document which deserves +* special attention. Usually a document highlight is visualized by changing +* the background color of its range. +*/ +export interface DocumentHighlight { +/** +* The range this highlight applies to. +*/ +range: IRange; +/** +* The highlight kind, default is [text](#DocumentHighlightKind.Text). +*/ +kind: DocumentHighlightKind; +} + +/** +* The document highlight provider interface defines the contract between extensions and +* the word-highlight-feature. +*/ +export interface DocumentHighlightProvider { +/** +* Provide a set of document highlights, like all occurrences of a variable or +* all exit-points of a function. +*/ +provideDocumentHighlights(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): DocumentHighlight[]|Thenable; +} + +/** +* Value-object that contains additional information when +* requesting references. +*/ +export interface ReferenceContext { +/** +* Include the declaration of the current symbol. +*/ +includeDeclaration: boolean; +} + +/** +* The reference provider interface defines the contract between extensions and +* the [find references](https://code.visualstudio.com/docs/editor/editingevolved#_peek)-feature. +*/ +export interface ReferenceProvider { +/** +* Provide a set of project-wide references for the given position and document. +*/ +provideReferences(model: editor.IReadOnlyModel,position: Position,context: ReferenceContext,token: CancellationToken): Location[]|Thenable; +} + +/** +* Represents a location inside a resource, such as a line +* inside a text file. +*/ +export interface Location { +/** +* The resource identifier of this location. +*/ +uri: Uri; +/** +* The document range of this locations. +*/ +range: IRange; +} + +/** +* The definition of a symbol represented as one or many [locations](#Location). +* For most programming languages there is only one location at which a symbol is +* defined. +*/ +export type Definition=Location|Location[]; + +/** +* The definition provider interface defines the contract between extensions and +* the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition) +* and peek definition features. +*/ +export interface DefinitionProvider { +/** +* Provide the definition of the symbol at the given position and document. +*/ +provideDefinition(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): Definition|Thenable; +} + +/** +* A symbol kind. +*/ +export enum SymbolKind { +File=0, +Module=1, +Namespace=2, +Package=3, +Class=4, +Method=5, +Property=6, +Field=7, +Constructor=8, +Enum=9, +Interface=10, +Function=11, +Variable=12, +Constant=13, +String=14, +Number=15, +Boolean=16, +Array=17, +Object=18, +Key=19, +Null=20, +} + +/** +* Represents information about programming constructs like variables, classes, +* interfaces etc. +*/ +export interface SymbolInformation { +/** +* The name of this symbol. +*/ +name: string; +/** +* The name of the symbol containing this symbol. +*/ +containerName?: string; +/** +* The kind of this symbol. +*/ +kind: SymbolKind; +/** +* The location of this symbol. +*/ +location: Location; +} + +/** +* The document symbol provider interface defines the contract between extensions and +* the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_goto-symbol)-feature. +*/ +export interface DocumentSymbolProvider { +/** +* Provide symbol information for the given document. +*/ +provideDocumentSymbols(model: editor.IReadOnlyModel,token: CancellationToken): SymbolInformation[]|Thenable; +} + +/** +* Interface used to format a model +*/ +export interface FormattingOptions { +/** +* Size of a tab in spaces. +*/ +tabSize: number; +/** +* Prefer spaces over tabs. +*/ +insertSpaces: boolean; +} + +/** +* The document formatting provider interface defines the contract between extensions and +* the formatting-feature. +*/ +export interface DocumentFormattingEditProvider { +/** +* Provide formatting edits for a whole document. +*/ +provideDocumentFormattingEdits(model: editor.IReadOnlyModel,options: FormattingOptions,token: CancellationToken): editor.ISingleEditOperation[]|Thenable; +} + +/** +* The document formatting provider interface defines the contract between extensions and +* the formatting-feature. +*/ +export interface DocumentRangeFormattingEditProvider { +/** +* Provide formatting edits for a range in a document. +* +* The given range is a hint and providers can decide to format a smaller +* or larger range. Often this is done by adjusting the start and end +* of the range to full syntax nodes. +*/ +provideDocumentRangeFormattingEdits(model: editor.IReadOnlyModel,range: Range,options: FormattingOptions,token: CancellationToken): editor.ISingleEditOperation[]|Thenable; +} + +/** +* The document formatting provider interface defines the contract between extensions and +* the formatting-feature. +*/ +export interface OnTypeFormattingEditProvider { +autoFormatTriggerCharacters: string[]; +/** +* Provide formatting edits after a character has been typed. +* +* The given position and character should hint to the provider +* what range the position to expand to, like find the matching `{` +* when `}` has been entered. +*/ +provideOnTypeFormattingEdits(model: editor.IReadOnlyModel,position: Position,ch: string,options: FormattingOptions,token: CancellationToken): editor.ISingleEditOperation[]|Thenable; +} + +/** +* A link inside the editor. +*/ +export interface ILink { +range: IRange; +url: string; +} + +/** +* A provider of links. +*/ +export interface LinkProvider { +provideLinks(model: editor.IReadOnlyModel,token: CancellationToken): ILink[]|Thenable; +resolveLink?: (link: ILink,token: CancellationToken) => ILink|Thenable; +} + +export interface IResourceEdit { +resource: Uri; +range: IRange; +newText: string; +} + +export interface WorkspaceEdit { +edits: IResourceEdit[]; +rejectReason?: string; +} + +export interface RenameProvider { +provideRenameEdits(model: editor.IReadOnlyModel,position: Position,newName: string,token: CancellationToken): WorkspaceEdit|Thenable; +} + +export interface Command { +id: string; +title: string; +arguments?: any[]; +} + +export interface ICodeLensSymbol { +range: IRange; +id?: string; +command?: Command; +} + +export interface CodeLensProvider { +provideCodeLenses(model: editor.IReadOnlyModel,token: CancellationToken): ICodeLensSymbol[]|Thenable; +resolveCodeLens?(model: editor.IReadOnlyModel,codeLens: ICodeLensSymbol,token: CancellationToken): ICodeLensSymbol|Thenable; +} + +/** +* A tuple of two characters, like a pair of +* opening and closing brackets. +*/ +export type CharacterPair=[string,string]; + +export interface IAutoClosingPairConditional extends IAutoClosingPair { +notIn?: string[]; +} + +/** +* Describes what to do with the indentation when pressing Enter. +*/ +export enum IndentAction { +/** +* Insert new line and copy the previous line's indentation. +*/ +None=0, +/** +* Insert new line and indent once (relative to the previous line's indentation). +*/ +Indent=1, +/** +* Insert two new lines: +* - the first one indented which will hold the cursor +* - the second one at the same indentation level +*/ +IndentOutdent=2, +/** +* Insert new line and outdent once (relative to the previous line's indentation). +*/ +Outdent=3, +} + +/** +* Describes what to do when pressing Enter. +*/ +export interface EnterAction { +/** +* Describe what to do with the indentation. +*/ +indentAction: IndentAction; +/** +* Describes text to be appended after the new line and after the indentation. +*/ +appendText?: string; +/** +* Describes the number of characters to remove from the new line's indentation. +*/ +removeText?: number; +} + +export interface IAutoClosingPair { +open: string; +close: string; +} + +export interface ILanguageExtensionPoint { +id: string; +extensions?: string[]; +filenames?: string[]; +filenamePatterns?: string[]; +firstLine?: string; +aliases?: string[]; +mimetypes?: string[]; +configuration?: string; +} +/** +* A Monarch language definition +*/ +export interface IMonarchLanguage { +/** +* map from string to ILanguageRule[] +*/ +tokenizer: { +[name: string]: IMonarchLanguageRule[]; +}; +/** +* is the language case insensitive? +*/ +ignoreCase?: boolean; +/** +* if no match in the tokenizer assign this token class (default 'source') +*/ +defaultToken?: string; +/** +* for example [['{','}','delimiter.curly']] +*/ +brackets?: IMonarchLanguageBracket[]; +/** +* start symbol in the tokenizer (by default the first entry is used) +*/ +start?: string; +/** +* attach this to every token class (by default '.' + name) +*/ +tokenPostfix: string; +} + +/** +* A rule is either a regular expression and an action +* shorthands: [reg,act] == { regex: reg, action: act} +* and : [reg,act,nxt] == { regex: reg, action: act{ next: nxt }} +*/ +export interface IMonarchLanguageRule { +/** +* match tokens +*/ +regex?: string|RegExp; +/** +* action to take on match +*/ +action?: IMonarchLanguageAction; +/** +* or an include rule. include all rules from the included state +*/ +include?: string; +} + +/** +* An action is either an array of actions... +* ... or a case statement with guards... +* ... or a basic action with a token value. +*/ +export interface IMonarchLanguageAction { +/** +* array of actions for each parenthesized match group +*/ +group?: IMonarchLanguageAction[]; +/** +* map from string to ILanguageAction +*/ +cases?: Object; +/** +* token class (ie. css class) (or "@brackets" or "@rematch") +*/ +token?: string; +/** +* the next state to push, or "@push", "@pop", "@popall" +*/ +next?: string; +/** +* switch to this state +*/ +switchTo?: string; +/** +* go back n characters in the stream +*/ +goBack?: number; +/** +* @open or @close +*/ +bracket?: string; +/** +* switch to embedded language (useing the mimetype) or get out using "@pop" +*/ +nextEmbedded?: string; +/** +* log a message to the browser console window +*/ +log?: string; +} + +/** +* This interface can be shortened as an array, ie. ['{','}','delimiter.curly'] +*/ +export interface IMonarchLanguageBracket { +/** +* open bracket +*/ +open: string; +/** +* closeing bracket +*/ +close: string; +/** +* token class +*/ +token: string; +} } declare module monaco.worker { - export interface IMirrorModel { - readonly uri: Uri; - readonly version: number; - getValue(): string; - } +export interface IMirrorModel { +readonly uri: Uri; +readonly version: number; +getValue(): string; +} - export interface IWorkerContext { - /** - * Get all available mirror models in this worker. - */ - getMirrorModels(): IMirrorModel[]; - } +export interface IWorkerContext { +/** +* Get all available mirror models in this worker. +*/ +getMirrorModels(): IMirrorModel[]; +} } \ No newline at end of file From 46143ad9d4dda16129c88b2f056798ba0c6a2637 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 09:37:34 +0200 Subject: [PATCH 068/242] debug: set 'initializing' state earlier fixes #14498 --- .../parts/debug/electron-browser/debugService.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index bcb6278f211..a22becbaf9b 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -534,6 +534,8 @@ export class DebugService implements debug.IDebugService { public createProcess(configurationOrName: debug.IConfig | string): TPromise { this.removeReplExpressions(); + const sessionId = uuid.generateUuid(); + this.setStateAndEmit(sessionId, debug.State.Initializing); return this.textFileService.saveAll() // make sure all dirty files are saved .then(() => this.configurationService.reloadConfiguration() // make sure configuration is up to date @@ -565,7 +567,7 @@ export class DebugService implements debug.IDebugService { const successExitCode = taskSummary && taskSummary.exitCode === 0; const failureExitCode = taskSummary && taskSummary.exitCode !== undefined && taskSummary.exitCode !== 0; if (successExitCode || (errorCount === 0 && !failureExitCode)) { - return this.doCreateProcess(configuration); + return this.doCreateProcess(sessionId, configuration); } this.messageService.show(severity.Error, { @@ -574,7 +576,7 @@ export class DebugService implements debug.IDebugService { nls.localize('preLaunchTaskExitCode', "The preLaunchTask '{0}' terminated with exit code {1}.", configuration.preLaunchTask, taskSummary.exitCode), actions: [new Action('debug.continue', nls.localize('debugAnyway', "Debug Anyway"), null, true, () => { this.messageService.hideAll(); - return this.doCreateProcess(configuration); + return this.doCreateProcess(sessionId, configuration); }), CloseAction] }); }, (err: TaskError) => { @@ -590,9 +592,7 @@ export class DebugService implements debug.IDebugService { })))); } - private doCreateProcess(configuration: debug.IExtHostConfig): TPromise { - const sessionId = uuid.generateUuid(); - this.setStateAndEmit(sessionId, debug.State.Initializing); + private doCreateProcess(sessionId: string, configuration: debug.IExtHostConfig): TPromise { return this.telemetryService.getTelemetryInfo().then(info => { const telemetryInfo: { [key: string]: string } = Object.create(null); @@ -753,8 +753,10 @@ export class DebugService implements debug.IDebugService { return session.attach({ port }); } + const sessionId = uuid.generateUuid(); + this.setStateAndEmit(sessionId, debug.State.Initializing); return this.configurationManager.getConfiguration(this.viewModel.selectedConfigurationName).then((configuration: debug.IExtHostConfig) => - this.doCreateProcess({ + this.doCreateProcess(sessionId, { type: configuration.type, request: 'attach', port, From 64ddcad455b5ea727d8dfc9d4d525178309ab503 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 09:44:06 +0200 Subject: [PATCH 069/242] distro --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ab21bfb4951..c91775e1ebf 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "code-oss-dev", "version": "1.7.0", "electronVersion": "1.3.8", - "distro": "d0dac3a2a226f976eb5922a930734dd5450d1d17", + "distro": "1fb24fffbc4d6428622dae7fd15b9a059e5c52d1", "author": { "name": "Microsoft Corporation" }, @@ -113,4 +113,4 @@ "windows-mutex": "^0.2.0", "fsevents": "0.3.8" } -} \ No newline at end of file +} From 773b47e907d057b270ce60ab772ade1b8620aebe Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 26 Oct 2016 09:46:57 +0200 Subject: [PATCH 070/242] d.ts changes --- src/vs/monaco.d.ts | 9542 ++++++++++++++++++++++---------------------- 1 file changed, 4771 insertions(+), 4771 deletions(-) diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 9b94ad7c2f4..0329b1eb5c0 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -1,4822 +1,4822 @@ declare module monaco { -interface Thenable { -/** -* Attaches callbacks for the resolution and/or rejection of the Promise. -* @param onfulfilled The callback to execute when the Promise is resolved. -* @param onrejected The callback to execute when the Promise is rejected. -* @returns A Promise for the completion of which ever callback is executed. -*/ -then(onfulfilled?: (value: T) => TResult|Thenable,onrejected?: (reason: any) => TResult|Thenable): Thenable; -then(onfulfilled?: (value: T) => TResult|Thenable,onrejected?: (reason: any) => void): Thenable; -} + interface Thenable { + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onfulfilled The callback to execute when the Promise is resolved. + * @param onrejected The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onfulfilled?: (value: T) => TResult | Thenable, onrejected?: (reason: any) => TResult | Thenable): Thenable; + then(onfulfilled?: (value: T) => TResult | Thenable, onrejected?: (reason: any) => void): Thenable; + } -export interface IDisposable { -dispose(): void; -} + export interface IDisposable { + dispose(): void; + } -export interface IEvent { -(listener: (e: T) => any,thisArg?: any): IDisposable; -} + export interface IEvent { + (listener: (e: T) => any, thisArg?: any): IDisposable; + } -/** -* A helper that allows to emit and listen to typed events -*/ -export class Emitter { -constructor(); -readonly event: IEvent; -fire(event?: T): void; -dispose(): void; -} + /** + * A helper that allows to emit and listen to typed events + */ + export class Emitter { + constructor(); + readonly event: IEvent; + fire(event?: T): void; + dispose(): void; + } -export enum Severity { -Ignore=0, -Info=1, -Warning=2, -Error=3, -} + export enum Severity { + Ignore = 0, + Info = 1, + Warning = 2, + Error = 3, + } -/** -* The value callback to complete a promise -*/ -export interface TValueCallback { -(value: T): void; -} + /** + * The value callback to complete a promise + */ + export interface TValueCallback { + (value: T): void; + } -export interface ProgressCallback { -(progress: any): any; -} + export interface ProgressCallback { + (progress: any): any; + } -/** -* A Promise implementation that supports progress and cancelation. -*/ -export class Promise { + /** + * A Promise implementation that supports progress and cancelation. + */ + export class Promise { -constructor(init: (complete: TValueCallback,error: (err: any) => void,progress: ProgressCallback) => void,oncancel?: any); + constructor(init: (complete: TValueCallback, error: (err: any) => void, progress: ProgressCallback) => void, oncancel?: any); -public then(success?: (value: V) => Promise,error?: (err: any) => Promise,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => Promise,error?: (err: any) => Promise|U,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => Promise,error?: (err: any) => U,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => Promise,error?: (err: any) => void,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => Promise|U,error?: (err: any) => Promise,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => Promise|U,error?: (err: any) => Promise|U,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => Promise|U,error?: (err: any) => U,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => Promise|U,error?: (err: any) => void,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => U,error?: (err: any) => Promise,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => U,error?: (err: any) => Promise|U,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => U,error?: (err: any) => U,progress?: ProgressCallback): Promise; -public then(success?: (value: V) => U,error?: (err: any) => void,progress?: ProgressCallback): Promise; + public then(success?: (value: V) => Promise, error?: (err: any) => Promise, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => Promise, error?: (err: any) => Promise | U, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => Promise, error?: (err: any) => U, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => Promise, error?: (err: any) => void, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => Promise | U, error?: (err: any) => Promise, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => Promise | U, error?: (err: any) => Promise | U, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => Promise | U, error?: (err: any) => U, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => Promise | U, error?: (err: any) => void, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => U, error?: (err: any) => Promise, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => U, error?: (err: any) => Promise | U, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => U, error?: (err: any) => U, progress?: ProgressCallback): Promise; + public then(success?: (value: V) => U, error?: (err: any) => void, progress?: ProgressCallback): Promise; -public done(success?: (value: V) => void,error?: (err: any) => any,progress?: ProgressCallback): void; -public cancel(): void; + public done(success?: (value: V) => void, error?: (err: any) => any, progress?: ProgressCallback): void; + public cancel(): void; -public static as(value: ValueType): Promise; -public static is(value: any): value is Thenable; -public static timeout(delay: number): Promise; -public static join(promises: Promise[]): Promise; -public static join(promises: Thenable[]): Thenable; -public static join(promises: { [n: string]: Promise }): Promise<{ [n: string]: ValueType }>; -public static any(promises: Promise[]): Promise<{ key: string; value: Promise; }>; + public static as(value: ValueType): Promise; + public static is(value: any): value is Thenable; + public static timeout(delay: number): Promise; + public static join(promises: Promise[]): Promise; + public static join(promises: Thenable[]): Thenable; + public static join(promises: { [n: string]: Promise }): Promise<{ [n: string]: ValueType }>; + public static any(promises: Promise[]): Promise<{ key: string; value: Promise; }>; -public static wrap(value: Thenable): Promise; -public static wrap(value: ValueType): Promise; + public static wrap(value: Thenable): Promise; + public static wrap(value: ValueType): Promise; -public static wrapError(error: any): Promise; -} + public static wrapError(error: any): Promise; + } -export class CancellationTokenSource { -readonly token: CancellationToken; -cancel(): void; -dispose(): void; -} + export class CancellationTokenSource { + readonly token: CancellationToken; + cancel(): void; + dispose(): void; + } -export interface CancellationToken { -readonly isCancellationRequested: boolean; -/** -* An event emitted when cancellation is requested -* @event -*/ -readonly onCancellationRequested: IEvent; -} -/** -* Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986. -* This class is a simple parser which creates the basic component paths -* (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation -* and encoding. -* -* foo://example.com:8042/over/there?name=ferret#nose -* \_/ \______________/\_________/ \_________/ \__/ -* | | | | | -* scheme authority path query fragment -* | _____________________|__ -* / \ / \ -* urn:example:animal:ferret:nose -* -* -*/ -export class Uri { -static isUri(thing: any): thing is Uri; -protected constructor(); -/** -* scheme is the 'http' part of 'http://www.msft.com/some/path?query#fragment'. -* The part before the first colon. -*/ -readonly scheme: string; -/** -* authority is the 'www.msft.com' part of 'http://www.msft.com/some/path?query#fragment'. -* The part between the first double slashes and the next slash. -*/ -readonly authority: string; -/** -* path is the '/some/path' part of 'http://www.msft.com/some/path?query#fragment'. -*/ -readonly path: string; -/** -* query is the 'query' part of 'http://www.msft.com/some/path?query#fragment'. -*/ -readonly query: string; -/** -* fragment is the 'fragment' part of 'http://www.msft.com/some/path?query#fragment'. -*/ -readonly fragment: string; -/** -* Returns a string representing the corresponding file system path of this Uri. -* Will handle UNC paths and normalize windows drive letters to lower-case. Also -* uses the platform specific path separator. Will *not* validate the path for -* invalid characters and semantics. Will *not* look at the scheme of this Uri. -*/ -readonly fsPath: string; -with(change: { -scheme?: string; -authority?: string; -path?: string; -query?: string; -fragment?: string; -}): Uri; -static parse(value: string): Uri; -static file(path: string): Uri; -static from(components: { -scheme?: string; -authority?: string; -path?: string; -query?: string; -fragment?: string; -}): Uri; -/** -* -* @param skipEncoding Do not encode the result, default is `false` -*/ -toString(skipEncoding?: boolean): string; -toJSON(): any; -static revive(data: any): Uri; -} + export interface CancellationToken { + readonly isCancellationRequested: boolean; + /** + * An event emitted when cancellation is requested + * @event + */ + readonly onCancellationRequested: IEvent; + } + /** + * Uniform Resource Identifier (Uri) http://tools.ietf.org/html/rfc3986. + * This class is a simple parser which creates the basic component paths + * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation + * and encoding. + * + * foo://example.com:8042/over/there?name=ferret#nose + * \_/ \______________/\_________/ \_________/ \__/ + * | | | | | + * scheme authority path query fragment + * | _____________________|__ + * / \ / \ + * urn:example:animal:ferret:nose + * + * + */ + export class Uri { + static isUri(thing: any): thing is Uri; + protected constructor(); + /** + * scheme is the 'http' part of 'http://www.msft.com/some/path?query#fragment'. + * The part before the first colon. + */ + readonly scheme: string; + /** + * authority is the 'www.msft.com' part of 'http://www.msft.com/some/path?query#fragment'. + * The part between the first double slashes and the next slash. + */ + readonly authority: string; + /** + * path is the '/some/path' part of 'http://www.msft.com/some/path?query#fragment'. + */ + readonly path: string; + /** + * query is the 'query' part of 'http://www.msft.com/some/path?query#fragment'. + */ + readonly query: string; + /** + * fragment is the 'fragment' part of 'http://www.msft.com/some/path?query#fragment'. + */ + readonly fragment: string; + /** + * Returns a string representing the corresponding file system path of this Uri. + * Will handle UNC paths and normalize windows drive letters to lower-case. Also + * uses the platform specific path separator. Will *not* validate the path for + * invalid characters and semantics. Will *not* look at the scheme of this Uri. + */ + readonly fsPath: string; + with(change: { + scheme?: string; + authority?: string; + path?: string; + query?: string; + fragment?: string; + }): Uri; + static parse(value: string): Uri; + static file(path: string): Uri; + static from(components: { + scheme?: string; + authority?: string; + path?: string; + query?: string; + fragment?: string; + }): Uri; + /** + * + * @param skipEncoding Do not encode the result, default is `false` + */ + toString(skipEncoding?: boolean): string; + toJSON(): any; + static revive(data: any): Uri; + } -/** -* Virtual Key Codes, the value does not hold any inherent meaning. -* Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx -* But these are "more general", as they should work across browsers & OS`s. -*/ -export enum KeyCode { -/** -* Placed first to cover the 0 value of the enum. -*/ -Unknown=0, -Backspace=1, -Tab=2, -Enter=3, -Shift=4, -Ctrl=5, -Alt=6, -PauseBreak=7, -CapsLock=8, -Escape=9, -Space=10, -PageUp=11, -PageDown=12, -End=13, -Home=14, -LeftArrow=15, -UpArrow=16, -RightArrow=17, -DownArrow=18, -Insert=19, -Delete=20, -KEY_0=21, -KEY_1=22, -KEY_2=23, -KEY_3=24, -KEY_4=25, -KEY_5=26, -KEY_6=27, -KEY_7=28, -KEY_8=29, -KEY_9=30, -KEY_A=31, -KEY_B=32, -KEY_C=33, -KEY_D=34, -KEY_E=35, -KEY_F=36, -KEY_G=37, -KEY_H=38, -KEY_I=39, -KEY_J=40, -KEY_K=41, -KEY_L=42, -KEY_M=43, -KEY_N=44, -KEY_O=45, -KEY_P=46, -KEY_Q=47, -KEY_R=48, -KEY_S=49, -KEY_T=50, -KEY_U=51, -KEY_V=52, -KEY_W=53, -KEY_X=54, -KEY_Y=55, -KEY_Z=56, -Meta=57, -ContextMenu=58, -F1=59, -F2=60, -F3=61, -F4=62, -F5=63, -F6=64, -F7=65, -F8=66, -F9=67, -F10=68, -F11=69, -F12=70, -F13=71, -F14=72, -F15=73, -F16=74, -F17=75, -F18=76, -F19=77, -NumLock=78, -ScrollLock=79, -/** -* Used for miscellaneous characters; it can vary by keyboard. -* For the US standard keyboard, the ';:' key -*/ -US_SEMICOLON=80, -/** -* For any country/region, the '+' key -* For the US standard keyboard, the '=+' key -*/ -US_EQUAL=81, -/** -* For any country/region, the ',' key -* For the US standard keyboard, the ',<' key -*/ -US_COMMA=82, -/** -* For any country/region, the '-' key -* For the US standard keyboard, the '-_' key -*/ -US_MINUS=83, -/** -* For any country/region, the '.' key -* For the US standard keyboard, the '.>' key -*/ -US_DOT=84, -/** -* Used for miscellaneous characters; it can vary by keyboard. -* For the US standard keyboard, the '/?' key -*/ -US_SLASH=85, -/** -* Used for miscellaneous characters; it can vary by keyboard. -* For the US standard keyboard, the '`~' key -*/ -US_BACKTICK=86, -/** -* Used for miscellaneous characters; it can vary by keyboard. -* For the US standard keyboard, the '[{' key -*/ -US_OPEN_SQUARE_BRACKET=87, -/** -* Used for miscellaneous characters; it can vary by keyboard. -* For the US standard keyboard, the '\|' key -*/ -US_BACKSLASH=88, -/** -* Used for miscellaneous characters; it can vary by keyboard. -* For the US standard keyboard, the ']}' key -*/ -US_CLOSE_SQUARE_BRACKET=89, -/** -* Used for miscellaneous characters; it can vary by keyboard. -* For the US standard keyboard, the ''"' key -*/ -US_QUOTE=90, -/** -* Used for miscellaneous characters; it can vary by keyboard. -*/ -OEM_8=91, -/** -* Either the angle bracket key or the backslash key on the RT 102-key keyboard. -*/ -OEM_102=92, -NUMPAD_0=93, -NUMPAD_1=94, -NUMPAD_2=95, -NUMPAD_3=96, -NUMPAD_4=97, -NUMPAD_5=98, -NUMPAD_6=99, -NUMPAD_7=100, -NUMPAD_8=101, -NUMPAD_9=102, -NUMPAD_MULTIPLY=103, -NUMPAD_ADD=104, -NUMPAD_SEPARATOR=105, -NUMPAD_SUBTRACT=106, -NUMPAD_DECIMAL=107, -NUMPAD_DIVIDE=108, -/** -* Placed last to cover the length of the enum. -* Please do not depend on this value! -*/ -MAX_VALUE=109, -} + /** + * Virtual Key Codes, the value does not hold any inherent meaning. + * Inspired somewhat from https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx + * But these are "more general", as they should work across browsers & OS`s. + */ + export enum KeyCode { + /** + * Placed first to cover the 0 value of the enum. + */ + Unknown = 0, + Backspace = 1, + Tab = 2, + Enter = 3, + Shift = 4, + Ctrl = 5, + Alt = 6, + PauseBreak = 7, + CapsLock = 8, + Escape = 9, + Space = 10, + PageUp = 11, + PageDown = 12, + End = 13, + Home = 14, + LeftArrow = 15, + UpArrow = 16, + RightArrow = 17, + DownArrow = 18, + Insert = 19, + Delete = 20, + KEY_0 = 21, + KEY_1 = 22, + KEY_2 = 23, + KEY_3 = 24, + KEY_4 = 25, + KEY_5 = 26, + KEY_6 = 27, + KEY_7 = 28, + KEY_8 = 29, + KEY_9 = 30, + KEY_A = 31, + KEY_B = 32, + KEY_C = 33, + KEY_D = 34, + KEY_E = 35, + KEY_F = 36, + KEY_G = 37, + KEY_H = 38, + KEY_I = 39, + KEY_J = 40, + KEY_K = 41, + KEY_L = 42, + KEY_M = 43, + KEY_N = 44, + KEY_O = 45, + KEY_P = 46, + KEY_Q = 47, + KEY_R = 48, + KEY_S = 49, + KEY_T = 50, + KEY_U = 51, + KEY_V = 52, + KEY_W = 53, + KEY_X = 54, + KEY_Y = 55, + KEY_Z = 56, + Meta = 57, + ContextMenu = 58, + F1 = 59, + F2 = 60, + F3 = 61, + F4 = 62, + F5 = 63, + F6 = 64, + F7 = 65, + F8 = 66, + F9 = 67, + F10 = 68, + F11 = 69, + F12 = 70, + F13 = 71, + F14 = 72, + F15 = 73, + F16 = 74, + F17 = 75, + F18 = 76, + F19 = 77, + NumLock = 78, + ScrollLock = 79, + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ';:' key + */ + US_SEMICOLON = 80, + /** + * For any country/region, the '+' key + * For the US standard keyboard, the '=+' key + */ + US_EQUAL = 81, + /** + * For any country/region, the ',' key + * For the US standard keyboard, the ',<' key + */ + US_COMMA = 82, + /** + * For any country/region, the '-' key + * For the US standard keyboard, the '-_' key + */ + US_MINUS = 83, + /** + * For any country/region, the '.' key + * For the US standard keyboard, the '.>' key + */ + US_DOT = 84, + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '/?' key + */ + US_SLASH = 85, + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '`~' key + */ + US_BACKTICK = 86, + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '[{' key + */ + US_OPEN_SQUARE_BRACKET = 87, + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the '\|' key + */ + US_BACKSLASH = 88, + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ']}' key + */ + US_CLOSE_SQUARE_BRACKET = 89, + /** + * Used for miscellaneous characters; it can vary by keyboard. + * For the US standard keyboard, the ''"' key + */ + US_QUOTE = 90, + /** + * Used for miscellaneous characters; it can vary by keyboard. + */ + OEM_8 = 91, + /** + * Either the angle bracket key or the backslash key on the RT 102-key keyboard. + */ + OEM_102 = 92, + NUMPAD_0 = 93, + NUMPAD_1 = 94, + NUMPAD_2 = 95, + NUMPAD_3 = 96, + NUMPAD_4 = 97, + NUMPAD_5 = 98, + NUMPAD_6 = 99, + NUMPAD_7 = 100, + NUMPAD_8 = 101, + NUMPAD_9 = 102, + NUMPAD_MULTIPLY = 103, + NUMPAD_ADD = 104, + NUMPAD_SEPARATOR = 105, + NUMPAD_SUBTRACT = 106, + NUMPAD_DECIMAL = 107, + NUMPAD_DIVIDE = 108, + /** + * Placed last to cover the length of the enum. + * Please do not depend on this value! + */ + MAX_VALUE = 109, + } -export class KeyMod { -static readonly CtrlCmd: number; -static readonly Shift: number; -static readonly Alt: number; -static readonly WinCtrl: number; -static chord(firstPart: number,secondPart: number): number; -} -/** -* MarkedString can be used to render human readable text. It is either a markdown string -* or a code-block that provides a language and a code snippet. Note that -* markdown strings will be sanitized - that means html will be escaped. -*/ -export type MarkedString=string|{ -readonly language: string; -readonly value: string; -}; + export class KeyMod { + static readonly CtrlCmd: number; + static readonly Shift: number; + static readonly Alt: number; + static readonly WinCtrl: number; + static chord(firstPart: number, secondPart: number): number; + } + /** + * MarkedString can be used to render human readable text. It is either a markdown string + * or a code-block that provides a language and a code snippet. Note that + * markdown strings will be sanitized - that means html will be escaped. + */ + export type MarkedString = string | { + readonly language: string; + readonly value: string; + }; -export interface IKeyboardEvent { -readonly browserEvent: KeyboardEvent; -readonly target: HTMLElement; -readonly ctrlKey: boolean; -readonly shiftKey: boolean; -readonly altKey: boolean; -readonly metaKey: boolean; -readonly keyCode: KeyCode; -asKeybinding(): number; -equals(keybinding: number): boolean; -preventDefault(): void; -stopPropagation(): void; -} -export interface IMouseEvent { -readonly browserEvent: MouseEvent; -readonly leftButton: boolean; -readonly middleButton: boolean; -readonly rightButton: boolean; -readonly target: HTMLElement; -readonly detail: number; -readonly posx: number; -readonly posy: number; -readonly ctrlKey: boolean; -readonly shiftKey: boolean; -readonly altKey: boolean; -readonly metaKey: boolean; -readonly timestamp: number; -preventDefault(): void; -stopPropagation(): void; -} + export interface IKeyboardEvent { + readonly browserEvent: KeyboardEvent; + readonly target: HTMLElement; + readonly ctrlKey: boolean; + readonly shiftKey: boolean; + readonly altKey: boolean; + readonly metaKey: boolean; + readonly keyCode: KeyCode; + asKeybinding(): number; + equals(keybinding: number): boolean; + preventDefault(): void; + stopPropagation(): void; + } + export interface IMouseEvent { + readonly browserEvent: MouseEvent; + readonly leftButton: boolean; + readonly middleButton: boolean; + readonly rightButton: boolean; + readonly target: HTMLElement; + readonly detail: number; + readonly posx: number; + readonly posy: number; + readonly ctrlKey: boolean; + readonly shiftKey: boolean; + readonly altKey: boolean; + readonly metaKey: boolean; + readonly timestamp: number; + preventDefault(): void; + stopPropagation(): void; + } -export interface IScrollEvent { -readonly scrollTop: number; -readonly scrollLeft: number; -readonly scrollWidth: number; -readonly scrollHeight: number; -readonly scrollTopChanged: boolean; -readonly scrollLeftChanged: boolean; -readonly scrollWidthChanged: boolean; -readonly scrollHeightChanged: boolean; -} + export interface IScrollEvent { + readonly scrollTop: number; + readonly scrollLeft: number; + readonly scrollWidth: number; + readonly scrollHeight: number; + readonly scrollTopChanged: boolean; + readonly scrollLeftChanged: boolean; + readonly scrollWidthChanged: boolean; + readonly scrollHeightChanged: boolean; + } -/** -* A position in the editor. This interface is suitable for serialization. -*/ -export interface IPosition { -/** -* line number (starts at 1) -*/ -readonly lineNumber: number; -/** -* column (the first character in a line is between column 1 and column 2) -*/ -readonly column: number; -} + /** + * A position in the editor. This interface is suitable for serialization. + */ + export interface IPosition { + /** + * line number (starts at 1) + */ + readonly lineNumber: number; + /** + * column (the first character in a line is between column 1 and column 2) + */ + readonly column: number; + } -/** -* A range in the editor. This interface is suitable for serialization. -*/ -export interface IRange { -/** -* Line number on which the range starts (starts at 1). -*/ -readonly startLineNumber: number; -/** -* Column on which the range starts in line `startLineNumber` (starts at 1). -*/ -readonly startColumn: number; -/** -* Line number on which the range ends. -*/ -readonly endLineNumber: number; -/** -* Column on which the range ends in line `endLineNumber`. -*/ -readonly endColumn: number; -} + /** + * A range in the editor. This interface is suitable for serialization. + */ + export interface IRange { + /** + * Line number on which the range starts (starts at 1). + */ + readonly startLineNumber: number; + /** + * Column on which the range starts in line `startLineNumber` (starts at 1). + */ + readonly startColumn: number; + /** + * Line number on which the range ends. + */ + readonly endLineNumber: number; + /** + * Column on which the range ends in line `endLineNumber`. + */ + readonly endColumn: number; + } -/** -* A selection in the editor. -* The selection is a range that has an orientation. -*/ -export interface ISelection { -/** -* The line number on which the selection has started. -*/ -readonly selectionStartLineNumber: number; -/** -* The column on `selectionStartLineNumber` where the selection has started. -*/ -readonly selectionStartColumn: number; -/** -* The line number on which the selection has ended. -*/ -readonly positionLineNumber: number; -/** -* The column on `positionLineNumber` where the selection has ended. -*/ -readonly positionColumn: number; -} + /** + * A selection in the editor. + * The selection is a range that has an orientation. + */ + export interface ISelection { + /** + * The line number on which the selection has started. + */ + readonly selectionStartLineNumber: number; + /** + * The column on `selectionStartLineNumber` where the selection has started. + */ + readonly selectionStartColumn: number; + /** + * The line number on which the selection has ended. + */ + readonly positionLineNumber: number; + /** + * The column on `positionLineNumber` where the selection has ended. + */ + readonly positionColumn: number; + } -/** -* A position in the editor. -*/ -export class Position { -/** -* line number (starts at 1) -*/ -readonly lineNumber: number; -/** -* column (the first character in a line is between column 1 and column 2) -*/ -readonly column: number; -constructor(lineNumber: number,column: number); -/** -* Test if this position equals other position -*/ -equals(other: IPosition): boolean; -/** -* Test if position `a` equals position `b` -*/ -static equals(a: IPosition,b: IPosition): boolean; -/** -* Test if this position is before other position. -* If the two positions are equal, the result will be false. -*/ -isBefore(other: IPosition): boolean; -/** -* Test if position `a` is before position `b`. -* If the two positions are equal, the result will be false. -*/ -static isBefore(a: IPosition,b: IPosition): boolean; -/** -* Test if this position is before other position. -* If the two positions are equal, the result will be true. -*/ -isBeforeOrEqual(other: IPosition): boolean; -/** -* Test if position `a` is before position `b`. -* If the two positions are equal, the result will be true. -*/ -static isBeforeOrEqual(a: IPosition,b: IPosition): boolean; -/** -* Clone this position. -*/ -clone(): Position; -/** -* Convert to a human-readable representation. -*/ -toString(): string; -/** -* Create a `Position` from an `IPosition`. -*/ -static lift(pos: IPosition): Position; -/** -* Test if `obj` is an `IPosition`. -*/ -static isIPosition(obj: any): obj is IPosition; -} + /** + * A position in the editor. + */ + export class Position { + /** + * line number (starts at 1) + */ + readonly lineNumber: number; + /** + * column (the first character in a line is between column 1 and column 2) + */ + readonly column: number; + constructor(lineNumber: number, column: number); + /** + * Test if this position equals other position + */ + equals(other: IPosition): boolean; + /** + * Test if position `a` equals position `b` + */ + static equals(a: IPosition, b: IPosition): boolean; + /** + * Test if this position is before other position. + * If the two positions are equal, the result will be false. + */ + isBefore(other: IPosition): boolean; + /** + * Test if position `a` is before position `b`. + * If the two positions are equal, the result will be false. + */ + static isBefore(a: IPosition, b: IPosition): boolean; + /** + * Test if this position is before other position. + * If the two positions are equal, the result will be true. + */ + isBeforeOrEqual(other: IPosition): boolean; + /** + * Test if position `a` is before position `b`. + * If the two positions are equal, the result will be true. + */ + static isBeforeOrEqual(a: IPosition, b: IPosition): boolean; + /** + * Clone this position. + */ + clone(): Position; + /** + * Convert to a human-readable representation. + */ + toString(): string; + /** + * Create a `Position` from an `IPosition`. + */ + static lift(pos: IPosition): Position; + /** + * Test if `obj` is an `IPosition`. + */ + static isIPosition(obj: any): obj is IPosition; + } -/** -* A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn) -*/ -export class Range { -/** -* Line number on which the range starts (starts at 1). -*/ -readonly startLineNumber: number; -/** -* Column on which the range starts in line `startLineNumber` (starts at 1). -*/ -readonly startColumn: number; -/** -* Line number on which the range ends. -*/ -readonly endLineNumber: number; -/** -* Column on which the range ends in line `endLineNumber`. -*/ -readonly endColumn: number; -constructor(startLineNumber: number,startColumn: number,endLineNumber: number,endColumn: number); -/** -* Test if this range is empty. -*/ -isEmpty(): boolean; -/** -* Test if `range` is empty. -*/ -static isEmpty(range: IRange): boolean; -/** -* Test if position is in this range. If the position is at the edges, will return true. -*/ -containsPosition(position: IPosition): boolean; -/** -* Test if `position` is in `range`. If the position is at the edges, will return true. -*/ -static containsPosition(range: IRange,position: IPosition): boolean; -/** -* Test if range is in this range. If the range is equal to this range, will return true. -*/ -containsRange(range: IRange): boolean; -/** -* Test if `otherRange` is in `range`. If the ranges are equal, will return true. -*/ -static containsRange(range: IRange,otherRange: IRange): boolean; -/** -* A reunion of the two ranges. -* The smallest position will be used as the start point, and the largest one as the end point. -*/ -plusRange(range: IRange): Range; -/** -* A reunion of the two ranges. -* The smallest position will be used as the start point, and the largest one as the end point. -*/ -static plusRange(a: IRange,b: IRange): Range; -/** -* A intersection of the two ranges. -*/ -intersectRanges(range: IRange): Range; -/** -* A intersection of the two ranges. -*/ -static intersectRanges(a: IRange,b: IRange): Range; -/** -* Test if this range equals other. -*/ -equalsRange(other: IRange): boolean; -/** -* Test if range `a` equals `b`. -*/ -static equalsRange(a: IRange,b: IRange): boolean; -/** -* Return the end position (which will be after or equal to the start position) -*/ -getEndPosition(): Position; -/** -* Return the start position (which will be before or equal to the end position) -*/ -getStartPosition(): Position; -/** -* Clone this range. -*/ -cloneRange(): Range; -/** -* Transform to a user presentable string representation. -*/ -toString(): string; -/** -* Create a new range using this range's start position, and using endLineNumber and endColumn as the end position. -*/ -setEndPosition(endLineNumber: number,endColumn: number): Range; -/** -* Create a new range using this range's end position, and using startLineNumber and startColumn as the start position. -*/ -setStartPosition(startLineNumber: number,startColumn: number): Range; -/** -* Create a new empty range using this range's start position. -*/ -collapseToStart(): Range; -/** -* Create a new empty range using this range's start position. -*/ -static collapseToStart(range: IRange): Range; -/** -* Create a `Range` from an `IRange`. -*/ -static lift(range: IRange): Range; -/** -* Test if `obj` is an `IRange`. -*/ -static isIRange(obj: any): obj is IRange; -/** -* Test if the two ranges are touching in any way. -*/ -static areIntersectingOrTouching(a: IRange,b: IRange): boolean; -/** -* A function that compares ranges, useful for sorting ranges -* It will first compare ranges on the startPosition and then on the endPosition -*/ -static compareRangesUsingStarts(a: IRange,b: IRange): number; -/** -* A function that compares ranges, useful for sorting ranges -* It will first compare ranges on the endPosition and then on the startPosition -*/ -static compareRangesUsingEnds(a: IRange,b: IRange): number; -/** -* Test if the range spans multiple lines. -*/ -static spansMultipleLines(range: IRange): boolean; -} + /** + * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn) + */ + export class Range { + /** + * Line number on which the range starts (starts at 1). + */ + readonly startLineNumber: number; + /** + * Column on which the range starts in line `startLineNumber` (starts at 1). + */ + readonly startColumn: number; + /** + * Line number on which the range ends. + */ + readonly endLineNumber: number; + /** + * Column on which the range ends in line `endLineNumber`. + */ + readonly endColumn: number; + constructor(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number); + /** + * Test if this range is empty. + */ + isEmpty(): boolean; + /** + * Test if `range` is empty. + */ + static isEmpty(range: IRange): boolean; + /** + * Test if position is in this range. If the position is at the edges, will return true. + */ + containsPosition(position: IPosition): boolean; + /** + * Test if `position` is in `range`. If the position is at the edges, will return true. + */ + static containsPosition(range: IRange, position: IPosition): boolean; + /** + * Test if range is in this range. If the range is equal to this range, will return true. + */ + containsRange(range: IRange): boolean; + /** + * Test if `otherRange` is in `range`. If the ranges are equal, will return true. + */ + static containsRange(range: IRange, otherRange: IRange): boolean; + /** + * A reunion of the two ranges. + * The smallest position will be used as the start point, and the largest one as the end point. + */ + plusRange(range: IRange): Range; + /** + * A reunion of the two ranges. + * The smallest position will be used as the start point, and the largest one as the end point. + */ + static plusRange(a: IRange, b: IRange): Range; + /** + * A intersection of the two ranges. + */ + intersectRanges(range: IRange): Range; + /** + * A intersection of the two ranges. + */ + static intersectRanges(a: IRange, b: IRange): Range; + /** + * Test if this range equals other. + */ + equalsRange(other: IRange): boolean; + /** + * Test if range `a` equals `b`. + */ + static equalsRange(a: IRange, b: IRange): boolean; + /** + * Return the end position (which will be after or equal to the start position) + */ + getEndPosition(): Position; + /** + * Return the start position (which will be before or equal to the end position) + */ + getStartPosition(): Position; + /** + * Clone this range. + */ + cloneRange(): Range; + /** + * Transform to a user presentable string representation. + */ + toString(): string; + /** + * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position. + */ + setEndPosition(endLineNumber: number, endColumn: number): Range; + /** + * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position. + */ + setStartPosition(startLineNumber: number, startColumn: number): Range; + /** + * Create a new empty range using this range's start position. + */ + collapseToStart(): Range; + /** + * Create a new empty range using this range's start position. + */ + static collapseToStart(range: IRange): Range; + /** + * Create a `Range` from an `IRange`. + */ + static lift(range: IRange): Range; + /** + * Test if `obj` is an `IRange`. + */ + static isIRange(obj: any): obj is IRange; + /** + * Test if the two ranges are touching in any way. + */ + static areIntersectingOrTouching(a: IRange, b: IRange): boolean; + /** + * A function that compares ranges, useful for sorting ranges + * It will first compare ranges on the startPosition and then on the endPosition + */ + static compareRangesUsingStarts(a: IRange, b: IRange): number; + /** + * A function that compares ranges, useful for sorting ranges + * It will first compare ranges on the endPosition and then on the startPosition + */ + static compareRangesUsingEnds(a: IRange, b: IRange): number; + /** + * Test if the range spans multiple lines. + */ + static spansMultipleLines(range: IRange): boolean; + } -/** -* A selection in the editor. -* The selection is a range that has an orientation. -*/ -export class Selection extends Range { -/** -* The line number on which the selection has started. -*/ -readonly selectionStartLineNumber: number; -/** -* The column on `selectionStartLineNumber` where the selection has started. -*/ -readonly selectionStartColumn: number; -/** -* The line number on which the selection has ended. -*/ -readonly positionLineNumber: number; -/** -* The column on `positionLineNumber` where the selection has ended. -*/ -readonly positionColumn: number; -constructor(selectionStartLineNumber: number,selectionStartColumn: number,positionLineNumber: number,positionColumn: number); -/** -* Clone this selection. -*/ -clone(): Selection; -/** -* Transform to a human-readable representation. -*/ -toString(): string; -/** -* Test if equals other selection. -*/ -equalsSelection(other: ISelection): boolean; -/** -* Test if the two selections are equal. -*/ -static selectionsEqual(a: ISelection,b: ISelection): boolean; -/** -* Get directions (LTR or RTL). -*/ -getDirection(): SelectionDirection; -/** -* Create a new selection with a different `positionLineNumber` and `positionColumn`. -*/ -setEndPosition(endLineNumber: number,endColumn: number): Selection; -/** -* Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`. -*/ -setStartPosition(startLineNumber: number,startColumn: number): Selection; -/** -* Create a `Selection` from an `ISelection`. -*/ -static liftSelection(sel: ISelection): Selection; -/** -* `a` equals `b`. -*/ -static selectionsArrEqual(a: ISelection[],b: ISelection[]): boolean; -/** -* Test if `obj` is an `ISelection`. -*/ -static isISelection(obj: any): obj is ISelection; -/** -* Create with a direction. -*/ -static createWithDirection(startLineNumber: number,startColumn: number,endLineNumber: number,endColumn: number,direction: SelectionDirection): Selection; -} + /** + * A selection in the editor. + * The selection is a range that has an orientation. + */ + export class Selection extends Range { + /** + * The line number on which the selection has started. + */ + readonly selectionStartLineNumber: number; + /** + * The column on `selectionStartLineNumber` where the selection has started. + */ + readonly selectionStartColumn: number; + /** + * The line number on which the selection has ended. + */ + readonly positionLineNumber: number; + /** + * The column on `positionLineNumber` where the selection has ended. + */ + readonly positionColumn: number; + constructor(selectionStartLineNumber: number, selectionStartColumn: number, positionLineNumber: number, positionColumn: number); + /** + * Clone this selection. + */ + clone(): Selection; + /** + * Transform to a human-readable representation. + */ + toString(): string; + /** + * Test if equals other selection. + */ + equalsSelection(other: ISelection): boolean; + /** + * Test if the two selections are equal. + */ + static selectionsEqual(a: ISelection, b: ISelection): boolean; + /** + * Get directions (LTR or RTL). + */ + getDirection(): SelectionDirection; + /** + * Create a new selection with a different `positionLineNumber` and `positionColumn`. + */ + setEndPosition(endLineNumber: number, endColumn: number): Selection; + /** + * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`. + */ + setStartPosition(startLineNumber: number, startColumn: number): Selection; + /** + * Create a `Selection` from an `ISelection`. + */ + static liftSelection(sel: ISelection): Selection; + /** + * `a` equals `b`. + */ + static selectionsArrEqual(a: ISelection[], b: ISelection[]): boolean; + /** + * Test if `obj` is an `ISelection`. + */ + static isISelection(obj: any): obj is ISelection; + /** + * Create with a direction. + */ + static createWithDirection(startLineNumber: number, startColumn: number, endLineNumber: number, endColumn: number, direction: SelectionDirection): Selection; + } -/** -* The direction of a selection. -*/ -export enum SelectionDirection { -/** -* The selection starts above where it ends. -*/ -LTR=0, -/** -* The selection starts below where it ends. -*/ -RTL=1, -} + /** + * The direction of a selection. + */ + export enum SelectionDirection { + /** + * The selection starts above where it ends. + */ + LTR = 0, + /** + * The selection starts below where it ends. + */ + RTL = 1, + } } declare module monaco.editor { -/** -* Create a new editor under `domElement`. -* `domElement` should be empty (not contain other dom nodes). -* The editor will read the size of `domElement`. -*/ -export function create(domElement: HTMLElement,options?: IEditorConstructionOptions,override?: IEditorOverrideServices): IStandaloneCodeEditor; - -/** -* Create a new diff editor under `domElement`. -* `domElement` should be empty (not contain other dom nodes). -* The editor will read the size of `domElement`. -*/ -export function createDiffEditor(domElement: HTMLElement,options?: IDiffEditorConstructionOptions,override?: IEditorOverrideServices): IStandaloneDiffEditor; - -export interface IDiffNavigator { -canNavigate(): boolean; -next(): void; -previous(): void; -dispose(): void; -} - -export interface IDiffNavigatorOptions { -readonly followsCaret?: boolean; -readonly ignoreCharChanges?: boolean; -readonly alwaysRevealFirst?: boolean; -} - -export function createDiffNavigator(diffEditor: IStandaloneDiffEditor,opts?: IDiffNavigatorOptions): IDiffNavigator; - -/** -* Create a new editor model. -* You can specify the language that should be set for this model or let the language be inferred from the `uri`. -*/ -export function createModel(value: string,language?: string,uri?: Uri): IModel; - -/** -* Change the language for a model. -*/ -export function setModelLanguage(model: IModel,language: string): void; - -/** -* Set the markers for a model. -*/ -export function setModelMarkers(model: IModel,owner: string,markers: IMarkerData[]): void; - -/** -* Get the model that has `uri` if it exists. -*/ -export function getModel(uri: Uri): IModel; - -/** -* Get all the created models. -*/ -export function getModels(): IModel[]; - -/** -* Emitted when a model is created. -* @event -*/ -export function onDidCreateModel(listener: (model: IModel) => void): IDisposable; - -/** -* Emitted right before a model is disposed. -* @event -*/ -export function onWillDisposeModel(listener: (model: IModel) => void): IDisposable; - -/** -* Emitted when a different language is set to a model. -* @event -*/ -export function onDidChangeModelLanguage(listener: (e: { -readonly model: IModel; -readonly oldLanguage: string; -}) => void): IDisposable; - -/** -* Create a new web worker that has model syncing capabilities built in. -* Specify an AMD module to load that will `create` an object that will be proxied. -*/ -export function createWebWorker(opts: IWebWorkerOptions): MonacoWebWorker; - -/** -* Colorize the contents of `domNode` using attribute `data-lang`. -*/ -export function colorizeElement(domNode: HTMLElement,options: IColorizerElementOptions): Promise; - -/** -* Colorize `text` using language `languageId`. -*/ -export function colorize(text: string,languageId: string,options: IColorizerOptions): Promise; - -/** -* Colorize a line in a model. -*/ -export function colorizeModelLine(model: IModel,lineNumber: number,tabSize?: number): string; - -/** -* A web worker that can provide a proxy to an arbitrary file. -*/ -export interface MonacoWebWorker { -/** -* Terminate the web worker, thus invalidating the returned proxy. -*/ -dispose(): void; -/** -* Get a proxy to the arbitrary loaded code. -*/ -getProxy(): Promise; -/** -* Synchronize (send) the models at `resources` to the web worker, -* making them available in the monaco.worker.getMirrorModels(). -*/ -withSyncedResources(resources: Uri[]): Promise; -} - -export interface IWebWorkerOptions { -/** -* The AMD moduleId to load. -* It should export a function `create` that should return the exported proxy. -*/ -moduleId: string; -/** -* The data to send over when calling create on the module. -*/ -createData?: any; -/** -* A label to be used to identify the web worker for debugging purposes. -*/ -label?: string; -} - -/** -* The options to create an editor. -*/ -export interface IEditorConstructionOptions extends ICodeEditorWidgetCreationOptions { -/** -* The initial value of the auto created model in the editor. -* To not create automatically a model, use `model: null`. -*/ -value?: string; -/** -* The initial language of the auto created model in the editor. -* To not create automatically a model, use `model: null`. -*/ -language?: string; -} - -/** -* The options to create a diff editor. -*/ -export interface IDiffEditorConstructionOptions extends IDiffEditorOptions { -} - -export interface IStandaloneCodeEditor extends ICodeEditor { -addCommand(keybinding: number,handler: ICommandHandler,context: string): string; -createContextKey(key: string,defaultValue: T): IContextKey; -addAction(descriptor: IActionDescriptor): void; -} - -export interface IStandaloneDiffEditor extends IDiffEditor { -addCommand(keybinding: number,handler: ICommandHandler,context: string): string; -createContextKey(key: string,defaultValue: T): IContextKey; -addAction(descriptor: IActionDescriptor): void; -} -export interface ICommandHandler { -(...args: any[]): void; -} - -export interface IContextKey { -set(value: T): void; -reset(): void; -get(): T; -} - -export interface IEditorOverrideServices { -} - -/** -* A structure defining a problem/warning/etc. -*/ -export interface IMarkerData { -code?: string; -severity: Severity; -message: string; -source?: string; -startLineNumber: number; -startColumn: number; -endLineNumber: number; -endColumn: number; -} - -export interface IColorizerOptions { -tabSize?: number; -} - -export interface IColorizerElementOptions extends IColorizerOptions { -theme?: string; -mimeType?: string; -} - -export enum ScrollbarVisibility { -Auto=1, -Hidden=2, -Visible=3, -} - -/** -* Configuration options for editor scrollbars -*/ -export interface IEditorScrollbarOptions { -/** -* The size of arrows (if displayed). -* Defaults to 11. -*/ -arrowSize?: number; -/** -* Render vertical scrollbar. -* Accepted values: 'auto', 'visible', 'hidden'. -* Defaults to 'auto'. -*/ -vertical?: string; -/** -* Render horizontal scrollbar. -* Accepted values: 'auto', 'visible', 'hidden'. -* Defaults to 'auto'. -*/ -horizontal?: string; -/** -* Cast horizontal and vertical shadows when the content is scrolled. -* Defaults to true. -*/ -useShadows?: boolean; -/** -* Render arrows at the top and bottom of the vertical scrollbar. -* Defaults to false. -*/ -verticalHasArrows?: boolean; -/** -* Render arrows at the left and right of the horizontal scrollbar. -* Defaults to false. -*/ -horizontalHasArrows?: boolean; -/** -* Listen to mouse wheel events and react to them by scrolling. -* Defaults to true. -*/ -handleMouseWheel?: boolean; -/** -* Height in pixels for the horizontal scrollbar. -* Defaults to 10 (px). -*/ -horizontalScrollbarSize?: number; -/** -* Width in pixels for the vertical scrollbar. -* Defaults to 10 (px). -*/ -verticalScrollbarSize?: number; -/** -* Width in pixels for the vertical slider. -* Defaults to `verticalScrollbarSize`. -*/ -verticalSliderSize?: number; -/** -* Height in pixels for the horizontal slider. -* Defaults to `horizontalScrollbarSize`. -*/ -horizontalSliderSize?: number; -} - -/** -* Describes how to indent wrapped lines. -*/ -export enum WrappingIndent { -/** -* No indentation => wrapped lines begin at column 1. -*/ -None=0, -/** -* Same => wrapped lines get the same indentation as the parent. -*/ -Same=1, -/** -* Indent => wrapped lines get +1 indentation as the parent. -*/ -Indent=2, -} - -export type LineNumbersOption='on'|'off'|'relative'|((lineNumber: number) => string); - -/** -* Configuration options for the editor. -*/ -export interface IEditorOptions { -/** -* Enable experimental screen reader support. -* Defaults to `true`. -*/ -experimentalScreenReader?: boolean; -/** -* The aria label for the editor's textarea (when it is focused). -*/ -ariaLabel?: string; -/** -* Render vertical lines at the specified columns. -* Defaults to empty array. -*/ -rulers?: number[]; -/** -* A string containing the word separators used when doing word navigation. -* Defaults to `~!@#$%^&*()-=+[{]}\\|;:\'",.<>/? -*/ -wordSeparators?: string; -/** -* Enable Linux primary clipboard. -* Defaults to true. -*/ -selectionClipboard?: boolean; -/** -* Control the rendering of line numbers. -* If it is a function, it will be invoked when rendering a line number and the return value will be rendered. -* Otherwise, if it is a truey, line numbers will be rendered normally (equivalent of using an identity function). -* Otherwise, line numbers will not be rendered. -* Defaults to true. -*/ -lineNumbers?: LineNumbersOption; -/** -* Should the corresponding line be selected when clicking on the line number? -* Defaults to true. -*/ -selectOnLineNumbers?: boolean; -/** -* Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits. -* Defaults to 5. -*/ -lineNumbersMinChars?: number; -/** -* Enable the rendering of the glyph margin. -* Defaults to true in vscode and to false in monaco-editor. -*/ -glyphMargin?: boolean; -/** -* The width reserved for line decorations (in px). -* Line decorations are placed between line numbers and the editor content. -* Defaults to 10. -*/ -lineDecorationsWidth?: number; -/** -* When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle. -* This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport. -* Defaults to 30 (px). -*/ -revealHorizontalRightPadding?: number; -/** -* Render the editor selection with rounded borders. -* Defaults to true. -*/ -roundedSelection?: boolean; -/** -* Theme to be used for rendering. Consists of two parts, the UI theme and the syntax theme, -* separated by a space. -* The current available UI themes are: 'vs' (default), 'vs-dark', 'hc-black' -* The syntax themes are contributed. The default is 'default-theme' -*/ -theme?: string; -/** -* Should the editor be read only. -* Defaults to false. -*/ -readOnly?: boolean; -/** -* Control the behavior and rendering of the scrollbars. -*/ -scrollbar?: IEditorScrollbarOptions; -/** -* Display overflow widgets as `fixed`. -* Defaults to `false`. -*/ -fixedOverflowWidgets?: boolean; -/** -* The number of vertical lanes the overview ruler should render. -* Defaults to 2. -*/ -overviewRulerLanes?: number; -/** -* Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'. -* Defaults to 'blink'. -*/ -cursorBlinking?: string; -/** -* Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl. -* Defaults to false. -*/ -mouseWheelZoom?: boolean; -/** -* Control the cursor style, either 'block' or 'line'. -* Defaults to 'line'. -*/ -cursorStyle?: string; -/** -* Enable font ligatures. -* Defaults to false. -*/ -fontLigatures?: boolean; -/** -* Disable the use of `translate3d`. -* Defaults to false. -*/ -disableTranslate3d?: boolean; -/** -* Should the cursor be hidden in the overview ruler. -* Defaults to false. -*/ -hideCursorInOverviewRuler?: boolean; -/** -* Enable that scrolling can go one screen size after the last line. -* Defaults to true. -*/ -scrollBeyondLastLine?: boolean; -/** -* Enable that the editor will install an interval to check if its container dom node size has changed. -* Enabling this might have a severe performance impact. -* Defaults to false. -*/ -automaticLayout?: boolean; -/** -* Control the wrapping strategy of the editor. -* Using -1 means no wrapping whatsoever. -* Using 0 means viewport width wrapping (ajusts with the resizing of the editor). -* Using a positive number means wrapping after a fixed number of characters. -* Defaults to 300. -*/ -wrappingColumn?: number; -/** -* Control the alternate style of viewport wrapping. -* When set to true viewport wrapping is used only when the window width is less than the number of columns specified in the wrappingColumn property. Has no effect if wrappingColumn is not a positive number. -* Defaults to false. -*/ -wordWrap?: boolean; -/** -* Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'. -* Defaults to 'same' in vscode and to 'none' in monaco-editor. -*/ -wrappingIndent?: string; -/** -* Configure word wrapping characters. A break will be introduced before these characters. -* Defaults to '{([+'. -*/ -wordWrapBreakBeforeCharacters?: string; -/** -* Configure word wrapping characters. A break will be introduced after these characters. -* Defaults to ' \t})]?|&,;'. -*/ -wordWrapBreakAfterCharacters?: string; -/** -* Configure word wrapping characters. A break will be introduced after these characters only if no `wordWrapBreakBeforeCharacters` or `wordWrapBreakAfterCharacters` were found. -* Defaults to '.'. -*/ -wordWrapBreakObtrusiveCharacters?: string; -/** -* Performance guard: Stop rendering a line after x characters. -* Defaults to 10000 if wrappingColumn is -1. Defaults to -1 if wrappingColumn is >= 0. -* Use -1 to never stop rendering -*/ -stopRenderingLineAfter?: number; -/** -* Enable hover. -* Defaults to true. -*/ -hover?: boolean; -/** -* Enable custom contextmenu. -* Defaults to true. -*/ -contextmenu?: boolean; -/** -* A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events. -* Defaults to 1. -*/ -mouseWheelScrollSensitivity?: number; -/** -* Enable quick suggestions (shadow suggestions) -* Defaults to true. -*/ -quickSuggestions?: boolean; -/** -* Quick suggestions show delay (in ms) -* Defaults to 500 (ms) -*/ -quickSuggestionsDelay?: number; -/** -* Enables parameter hints -*/ -parameterHints?: boolean; -/** -* Render icons in suggestions box. -* Defaults to true. -*/ -iconsInSuggestions?: boolean; -/** -* Enable auto closing brackets. -* Defaults to true. -*/ -autoClosingBrackets?: boolean; -/** -* Enable format on type. -* Defaults to false. -*/ -formatOnType?: boolean; -/** -* Enable the suggestion box to pop-up on trigger characters. -* Defaults to true. -*/ -suggestOnTriggerCharacters?: boolean; -/** -* Accept suggestions on ENTER. -* Defaults to true. -*/ -acceptSuggestionOnEnter?: boolean; -/** -* Enable snippet suggestions. Default to 'true'. -*/ -snippetSuggestions?: 'top'|'bottom'|'inline'|'none'; -/** -* Copying without a selection copies the current line. -*/ -emptySelectionClipboard?: boolean; -/** -* Enable tab completion. Defaults to 'false' -*/ -tabCompletion?: boolean; -/** -* Enable word based suggestions. Defaults to 'true' -*/ -wordBasedSuggestions?: boolean; -/** -* The font size for the suggest widget. -* Defaults to the editor font size. -*/ -suggestFontSize?: number; -/** -* The line height for the suggest widget. -* Defaults to the editor line height. -*/ -suggestLineHeight?: number; -/** -* Enable selection highlight. -* Defaults to true. -*/ -selectionHighlight?: boolean; -/** -* Show code lens -* Defaults to true. -*/ -codeLens?: boolean; -/** -* Enable code folding -* Defaults to true in vscode and to false in monaco-editor. -*/ -folding?: boolean; -/** -* Enable rendering of whitespace. -* Defaults to none. -*/ -renderWhitespace?: 'none'|'boundary'|'all'; -/** -* Enable rendering of control characters. -* Defaults to false. -*/ -renderControlCharacters?: boolean; -/** -* Enable rendering of indent guides. -* Defaults to false. -*/ -renderIndentGuides?: boolean; -/** -* Enable rendering of current line highlight. -* Defaults to true. -*/ -renderLineHighlight?: boolean; -/** -* Inserting and deleting whitespace follows tab stops. -*/ -useTabStops?: boolean; -/** -* The font family -*/ -fontFamily?: string; -/** -* The font weight -*/ -fontWeight?: 'normal'|'bold'|'bolder'|'lighter'|'initial'|'inherit'|'100'|'200'|'300'|'400'|'500'|'600'|'700'|'800'|'900'; -/** -* The font size -*/ -fontSize?: number; -/** -* The line height -*/ -lineHeight?: number; -} - -/** -* Configuration options for the diff editor. -*/ -export interface IDiffEditorOptions extends IEditorOptions { -/** -* Allow the user to resize the diff editor split view. -* Defaults to true. -*/ -enableSplitViewResizing?: boolean; -/** -* Render the differences in two side-by-side editors. -* Defaults to true. -*/ -renderSideBySide?: boolean; -/** -* Compute the diff by ignoring leading/trailing whitespace -* Defaults to true. -*/ -ignoreTrimWhitespace?: boolean; -/** -* Original model should be editable? -* Defaults to false. -*/ -originalEditable?: boolean; -} - -export class InternalEditorScrollbarOptions { -readonly _internalEditorScrollbarOptionsBrand: void; -readonly arrowSize: number; -readonly vertical: ScrollbarVisibility; -readonly horizontal: ScrollbarVisibility; -readonly useShadows: boolean; -readonly verticalHasArrows: boolean; -readonly horizontalHasArrows: boolean; -readonly handleMouseWheel: boolean; -readonly horizontalScrollbarSize: number; -readonly horizontalSliderSize: number; -readonly verticalScrollbarSize: number; -readonly verticalSliderSize: number; -readonly mouseWheelScrollSensitivity: number; -} - -export class EditorWrappingInfo { -readonly _editorWrappingInfoBrand: void; -readonly isViewportWrapping: boolean; -readonly wrappingColumn: number; -readonly wrappingIndent: WrappingIndent; -readonly wordWrapBreakBeforeCharacters: string; -readonly wordWrapBreakAfterCharacters: string; -readonly wordWrapBreakObtrusiveCharacters: string; -} - -export class InternalEditorViewOptions { -readonly _internalEditorViewOptionsBrand: void; -readonly theme: string; -readonly canUseTranslate3d: boolean; -readonly experimentalScreenReader: boolean; -readonly rulers: number[]; -readonly ariaLabel: string; -readonly renderLineNumbers: boolean; -readonly renderCustomLineNumbers: (lineNumber: number) => string; -readonly renderRelativeLineNumbers: boolean; -readonly selectOnLineNumbers: boolean; -readonly glyphMargin: boolean; -readonly revealHorizontalRightPadding: number; -readonly roundedSelection: boolean; -readonly overviewRulerLanes: number; -readonly cursorBlinking: TextEditorCursorBlinkingStyle; -readonly mouseWheelZoom: boolean; -readonly cursorStyle: TextEditorCursorStyle; -readonly hideCursorInOverviewRuler: boolean; -readonly scrollBeyondLastLine: boolean; -readonly editorClassName: string; -readonly stopRenderingLineAfter: number; -readonly renderWhitespace: 'none'|'boundary'|'all'; -readonly renderControlCharacters: boolean; -readonly renderIndentGuides: boolean; -readonly renderLineHighlight: boolean; -readonly scrollbar: InternalEditorScrollbarOptions; -readonly fixedOverflowWidgets: boolean; -} - -export interface IViewConfigurationChangedEvent { -readonly theme: boolean; -readonly canUseTranslate3d: boolean; -readonly experimentalScreenReader: boolean; -readonly rulers: boolean; -readonly ariaLabel: boolean; -readonly renderLineNumbers: boolean; -readonly renderCustomLineNumbers: boolean; -readonly renderRelativeLineNumbers: boolean; -readonly selectOnLineNumbers: boolean; -readonly glyphMargin: boolean; -readonly revealHorizontalRightPadding: boolean; -readonly roundedSelection: boolean; -readonly overviewRulerLanes: boolean; -readonly cursorBlinking: boolean; -readonly mouseWheelZoom: boolean; -readonly cursorStyle: boolean; -readonly hideCursorInOverviewRuler: boolean; -readonly scrollBeyondLastLine: boolean; -readonly editorClassName: boolean; -readonly stopRenderingLineAfter: boolean; -readonly renderWhitespace: boolean; -readonly renderControlCharacters: boolean; -readonly renderIndentGuides: boolean; -readonly renderLineHighlight: boolean; -readonly scrollbar: boolean; -readonly fixedOverflowWidgets: boolean; -} - -export class EditorContribOptions { -readonly selectionClipboard: boolean; -readonly hover: boolean; -readonly contextmenu: boolean; -readonly quickSuggestions: boolean; -readonly quickSuggestionsDelay: number; -readonly parameterHints: boolean; -readonly iconsInSuggestions: boolean; -readonly formatOnType: boolean; -readonly suggestOnTriggerCharacters: boolean; -readonly acceptSuggestionOnEnter: boolean; -readonly snippetSuggestions: 'top'|'bottom'|'inline'|'none'; -readonly emptySelectionClipboard: boolean; -readonly tabCompletion: boolean; -readonly wordBasedSuggestions: boolean; -readonly suggestFontSize: number; -readonly suggestLineHeight: number; -readonly selectionHighlight: boolean; -readonly codeLens: boolean; -readonly folding: boolean; -} - -/** -* Internal configuration options (transformed or computed) for the editor. -*/ -export class InternalEditorOptions { -readonly _internalEditorOptionsBrand: void; -readonly lineHeight: number; -readonly readOnly: boolean; -readonly wordSeparators: string; -readonly autoClosingBrackets: boolean; -readonly useTabStops: boolean; -readonly tabFocusMode: boolean; -readonly layoutInfo: EditorLayoutInfo; -readonly fontInfo: FontInfo; -readonly viewInfo: InternalEditorViewOptions; -readonly wrappingInfo: EditorWrappingInfo; -readonly contribInfo: EditorContribOptions; -} - -/** -* An event describing that the configuration of the editor has changed. -*/ -export interface IConfigurationChangedEvent { -readonly lineHeight: boolean; -readonly readOnly: boolean; -readonly wordSeparators: boolean; -readonly autoClosingBrackets: boolean; -readonly useTabStops: boolean; -readonly tabFocusMode: boolean; -readonly layoutInfo: boolean; -readonly fontInfo: boolean; -readonly viewInfo: IViewConfigurationChangedEvent; -readonly wrappingInfo: boolean; -readonly contribInfo: boolean; -} - -/** -* Vertical Lane in the overview ruler of the editor. -*/ -export enum OverviewRulerLane { -Left=1, -Center=2, -Right=4, -Full=7, -} - -/** -* Options for rendering a model decoration in the overview ruler. -*/ -export interface IModelDecorationOverviewRulerOptions { -/** -* CSS color to render in the overview ruler. -* e.g.: rgba(100, 100, 100, 0.5) -*/ -color: string; -/** -* CSS color to render in the overview ruler. -* e.g.: rgba(100, 100, 100, 0.5) -*/ -darkColor: string; -/** -* The position in the overview ruler. -*/ -position: OverviewRulerLane; -} - -/** -* Options for a model decoration. -*/ -export interface IModelDecorationOptions { -/** -* Customize the growing behaviour of the decoration when typing at the edges of the decoration. -* Defaults to TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges -*/ -stickiness?: TrackedRangeStickiness; -/** -* CSS class name describing the decoration. -*/ -className?: string; -/** -* Array of MarkedString to render as the decoration message. -*/ -hoverMessage?: MarkedString|MarkedString[]; -/** -* Should the decoration expand to encompass a whole line. -*/ -isWholeLine?: boolean; -/** -* @deprecated : Use `overviewRuler` instead -*/ -showInOverviewRuler?: string; -/** -* If set, render this decoration in the overview ruler. -*/ -overviewRuler?: IModelDecorationOverviewRulerOptions; -/** -* If set, the decoration will be rendered in the glyph margin with this CSS class name. -*/ -glyphMarginClassName?: string; -/** -* If set, the decoration will be rendered in the lines decorations with this CSS class name. -*/ -linesDecorationsClassName?: string; -/** -* If set, the decoration will be rendered inline with the text with this CSS class name. -* Please use this only for CSS rules that must impact the text. For example, use `className` -* to have a background color decoration. -*/ -inlineClassName?: string; -/** -* If set, the decoration will be rendered before the text with this CSS class name. -*/ -beforeContentClassName?: string; -/** -* If set, the decoration will be rendered after the text with this CSS class name. -*/ -afterContentClassName?: string; -} - -/** -* New model decorations. -*/ -export interface IModelDeltaDecoration { -/** -* Range that this decoration covers. -*/ -range: IRange; -/** -* Options associated with this decoration. -*/ -options: IModelDecorationOptions; -} - -/** -* A decoration in the model. -*/ -export interface IModelDecoration { -/** -* Identifier for a decoration. -*/ -readonly id: string; -/** -* Identifier for a decoration's owener. -*/ -readonly ownerId: number; -/** -* Range that this decoration covers. -*/ -readonly range: Range; -/** -* Options associated with this decoration. -*/ -readonly options: IModelDecorationOptions; -} - -/** -* Word inside a model. -*/ -export interface IWordAtPosition { -/** -* The word. -*/ -readonly word: string; -/** -* The column where the word starts. -*/ -readonly startColumn: number; -/** -* The column where the word ends. -*/ -readonly endColumn: number; -} - -/** -* End of line character preference. -*/ -export enum EndOfLinePreference { -/** -* Use the end of line character identified in the text buffer. -*/ -TextDefined=0, -/** -* Use line feed (\n) as the end of line character. -*/ -LF=1, -/** -* Use carriage return and line feed (\r\n) as the end of line character. -*/ -CRLF=2, -} - -/** -* The default end of line to use when instantiating models. -*/ -export enum DefaultEndOfLine { -/** -* Use line feed (\n) as the end of line character. -*/ -LF=1, -/** -* Use carriage return and line feed (\r\n) as the end of line character. -*/ -CRLF=2, -} - -/** -* End of line character preference. -*/ -export enum EndOfLineSequence { -/** -* Use line feed (\n) as the end of line character. -*/ -LF=0, -/** -* Use carriage return and line feed (\r\n) as the end of line character. -*/ -CRLF=1, -} - -/** -* And identifier for a single edit operation. -*/ -export interface ISingleEditOperationIdentifier { -/** -* Identifier major -*/ -major: number; -/** -* Identifier minor -*/ -minor: number; -} - -/** -* A builder and helper for edit operations for a command. -*/ -export interface IEditOperationBuilder { -/** -* Add a new edit operation (a replace operation). -* @param range The range to replace (delete). May be empty to represent a simple insert. -* @param text The text to replace with. May be null to represent a simple delete. -*/ -addEditOperation(range: Range,text: string): void; -/** -* Track `selection` when applying edit operations. -* A best effort will be made to not grow/expand the selection. -* An empty selection will clamp to a nearby character. -* @param selection The selection to track. -* @param trackPreviousOnEmpty If set, and the selection is empty, indicates whether the selection -* should clamp to the previous or the next character. -* @return A unique identifer. -*/ -trackSelection(selection: Selection,trackPreviousOnEmpty?: boolean): string; -} - -/** -* A helper for computing cursor state after a command. -*/ -export interface ICursorStateComputerData { -/** -* Get the inverse edit operations of the added edit operations. -*/ -getInverseEditOperations(): IIdentifiedSingleEditOperation[]; -/** -* Get a previously tracked selection. -* @param id The unique identifier returned by `trackSelection`. -* @return The selection. -*/ -getTrackedSelection(id: string): Selection; -} - -/** -* A command that modifies text / cursor state on a model. -*/ -export interface ICommand { -/** -* Get the edit operations needed to execute this command. -* @param model The model the command will execute on. -* @param builder A helper to collect the needed edit operations and to track selections. -*/ -getEditOperations(model: ITokenizedModel,builder: IEditOperationBuilder): void; -/** -* Compute the cursor state after the edit operations were applied. -* @param model The model the commad has executed on. -* @param helper A helper to get inverse edit operations and to get previously tracked selections. -* @return The cursor state after the command executed. -*/ -computeCursorState(model: ITokenizedModel,helper: ICursorStateComputerData): Selection; -} - -/** -* A single edit operation, that acts as a simple replace. -* i.e. Replace text at `range` with `text` in model. -*/ -export interface ISingleEditOperation { -/** -* The range to replace. This can be empty to emulate a simple insert. -*/ -range: IRange; -/** -* The text to replace with. This can be null to emulate a simple delete. -*/ -text: string; -/** -* This indicates that this operation has "insert" semantics. -* i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. -*/ -forceMoveMarkers?: boolean; -} - -/** -* A single edit operation, that has an identifier. -*/ -export interface IIdentifiedSingleEditOperation { -/** -* An identifier associated with this single edit operation. -*/ -identifier: ISingleEditOperationIdentifier; -/** -* The range to replace. This can be empty to emulate a simple insert. -*/ -range: Range; -/** -* The text to replace with. This can be null to emulate a simple delete. -*/ -text: string; -/** -* This indicates that this operation has "insert" semantics. -* i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. -*/ -forceMoveMarkers: boolean; -/** -* This indicates that this operation is inserting automatic whitespace -* that can be removed on next model edit operation if `config.trimAutoWhitespace` is true. -*/ -isAutoWhitespaceEdit?: boolean; -} - -/** -* A callback that can compute the cursor state after applying a series of edit operations. -*/ -export interface ICursorStateComputer { -/** -* A callback that can compute the resulting cursors state after some edit operations have been executed. -*/ -(inverseEditOperations: IIdentifiedSingleEditOperation[]): Selection[]; -} - -export class TextModelResolvedOptions { -_textModelResolvedOptionsBrand: void; -readonly tabSize: number; -readonly insertSpaces: boolean; -readonly defaultEOL: DefaultEndOfLine; -readonly trimAutoWhitespace: boolean; -} - -export interface ITextModelUpdateOptions { -tabSize?: number; -insertSpaces?: boolean; -trimAutoWhitespace?: boolean; -} - -export interface IModelOptionsChangedEvent { -readonly tabSize: boolean; -readonly insertSpaces: boolean; -readonly trimAutoWhitespace: boolean; -} - -/** -* A textual read-only model. -*/ -export interface ITextModel { -getOptions(): TextModelResolvedOptions; -/** -* Get the current version id of the model. -* Anytime a change happens to the model (even undo/redo), -* the version id is incremented. -*/ -getVersionId(): number; -/** -* Get the alternative version id of the model. -* This alternative version id is not always incremented, -* it will return the same values in the case of undo-redo. -*/ -getAlternativeVersionId(): number; -/** -* Replace the entire text buffer value contained in this model. -*/ -setValue(newValue: string): void; -/** -* Replace the entire text buffer value contained in this model. -*/ -setValueFromRawText(newValue: IRawText): void; -/** -* Get the text stored in this model. -* @param eol The end of line character preference. Defaults to `EndOfLinePreference.TextDefined`. -* @param preserverBOM Preserve a BOM character if it was detected when the model was constructed. -* @return The text. -*/ -getValue(eol?: EndOfLinePreference,preserveBOM?: boolean): string; -/** -* Get the length of the text stored in this model. -*/ -getValueLength(eol?: EndOfLinePreference,preserveBOM?: boolean): number; -/** -* Get the raw text stored in this model. -*/ -toRawText(): IRawText; -/** -* Check if the raw text stored in this model equals another raw text. -*/ -equals(other: IRawText): boolean; -/** -* Get the text in a certain range. -* @param range The range describing what text to get. -* @param eol The end of line character preference. This will only be used for multiline ranges. Defaults to `EndOfLinePreference.TextDefined`. -* @return The text. -*/ -getValueInRange(range: IRange,eol?: EndOfLinePreference): string; -/** -* Get the length of text in a certain range. -* @param range The range describing what text length to get. -* @return The text length. -*/ -getValueLengthInRange(range: IRange): number; -/** -* Get the number of lines in the model. -*/ -getLineCount(): number; -/** -* Get the text for a certain line. -*/ -getLineContent(lineNumber: number): string; -/** -* Get the text for all lines. -*/ -getLinesContent(): string[]; -/** -* Get the end of line sequence predominantly used in the text buffer. -* @return EOL char sequence (e.g.: '\n' or '\r\n'). -*/ -getEOL(): string; -/** -* Change the end of line sequence used in the text buffer. -*/ -setEOL(eol: EndOfLineSequence): void; -/** -* Get the minimum legal column for line at `lineNumber` -*/ -getLineMinColumn(lineNumber: number): number; -/** -* Get the maximum legal column for line at `lineNumber` -*/ -getLineMaxColumn(lineNumber: number): number; -/** -* Returns the column before the first non whitespace character for line at `lineNumber`. -* Returns 0 if line is empty or contains only whitespace. -*/ -getLineFirstNonWhitespaceColumn(lineNumber: number): number; -/** -* Returns the column after the last non whitespace character for line at `lineNumber`. -* Returns 0 if line is empty or contains only whitespace. -*/ -getLineLastNonWhitespaceColumn(lineNumber: number): number; -/** -* Create a valid position, -*/ -validatePosition(position: IPosition): Position; -/** -* Advances the given position by the given offest (negative offsets are also accepted) -* and returns it as a new valid position. -* -* If the offset and position are such that their combination goes beyond the beginning or -* end of the model, throws an exception. -* -* If the ofsset is such that the new position would be in the middle of a multi-byte -* line terminator, throws an exception. -*/ -modifyPosition(position: IPosition,offset: number): Position; -/** -* Create a valid range. -*/ -validateRange(range: IRange): Range; -/** -* Converts the position to a zero-based offset. -* -* The position will be [adjusted](#TextDocument.validatePosition). -* -* @param position A position. -* @return A valid zero-based offset. -*/ -getOffsetAt(position: IPosition): number; -/** -* Converts a zero-based offset to a position. -* -* @param offset A zero-based offset. -* @return A valid [position](#Position). -*/ -getPositionAt(offset: number): Position; -/** -* Get a range covering the entire model -*/ -getFullModelRange(): Range; -/** -* Returns iff the model was disposed or not. -*/ -isDisposed(): boolean; -/** -* Search the model. -* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. -* @param searchOnlyEditableRange Limit the searching to only search inside the editable range of the model. -* @param isRegex Used to indicate that `searchString` is a regular expression. -* @param matchCase Force the matching to match lower/upper case exactly. -* @param wholeWord Force the matching to match entire words only. -* @param limitResultCount Limit the number of results -* @return The ranges where the matches are. It is empty if not matches have been found. -*/ -findMatches(searchString: string,searchOnlyEditableRange: boolean,isRegex: boolean,matchCase: boolean,wholeWord: boolean,limitResultCount?: number): Range[]; -/** -* Search the model. -* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. -* @param searchScope Limit the searching to only search inside this range. -* @param isRegex Used to indicate that `searchString` is a regular expression. -* @param matchCase Force the matching to match lower/upper case exactly. -* @param wholeWord Force the matching to match entire words only. -* @param limitResultCount Limit the number of results -* @return The ranges where the matches are. It is empty if no matches have been found. -*/ -findMatches(searchString: string,searchScope: IRange,isRegex: boolean,matchCase: boolean,wholeWord: boolean,limitResultCount?: number): Range[]; -/** -* Search the model for the next match. Loops to the beginning of the model if needed. -* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. -* @param searchStart Start the searching at the specified position. -* @param isRegex Used to indicate that `searchString` is a regular expression. -* @param matchCase Force the matching to match lower/upper case exactly. -* @param wholeWord Force the matching to match entire words only. -* @return The range where the next match is. It is null if no next match has been found. -*/ -findNextMatch(searchString: string,searchStart: IPosition,isRegex: boolean,matchCase: boolean,wholeWord: boolean): Range; -/** -* Search the model for the previous match. Loops to the end of the model if needed. -* @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. -* @param searchStart Start the searching at the specified position. -* @param isRegex Used to indicate that `searchString` is a regular expression. -* @param matchCase Force the matching to match lower/upper case exactly. -* @param wholeWord Force the matching to match entire words only. -* @return The range where the previous match is. It is null if no previous match has been found. -*/ -findPreviousMatch(searchString: string,searchStart: IPosition,isRegex: boolean,matchCase: boolean,wholeWord: boolean): Range; -} - -export interface IReadOnlyModel extends ITextModel { -/** -* Gets the resource associated with this editor model. -*/ -readonly uri: Uri; -/** -* Get the language associated with this model. -*/ -getModeId(): string; -/** -* Get the word under or besides `position`. -* @param position The position to look for a word. -* @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. -* @return The word under or besides `position`. Might be null. -*/ -getWordAtPosition(position: IPosition): IWordAtPosition; -/** -* Get the word under or besides `position` trimmed to `position`.column -* @param position The position to look for a word. -* @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. -* @return The word under or besides `position`. Will never be null. -*/ -getWordUntilPosition(position: IPosition): IWordAtPosition; -} - -/** -* A model that is tokenized. -*/ -export interface ITokenizedModel extends ITextModel { -/** -* Get the current language mode associated with the model. -*/ -getMode(): languages.IMode; -/** -* Get the language associated with this model. -*/ -getModeId(): string; -/** -* Get the word under or besides `position`. -* @param position The position to look for a word. -* @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. -* @return The word under or besides `position`. Might be null. -*/ -getWordAtPosition(position: IPosition): IWordAtPosition; -/** -* Get the word under or besides `position` trimmed to `position`.column -* @param position The position to look for a word. -* @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. -* @return The word under or besides `position`. Will never be null. -*/ -getWordUntilPosition(position: IPosition): IWordAtPosition; -} - -/** -* A model that can track markers. -*/ -export interface ITextModelWithMarkers extends ITextModel { -} - -/** -* Describes the behaviour of decorations when typing/editing near their edges. -*/ -export enum TrackedRangeStickiness { -AlwaysGrowsWhenTypingAtEdges=0, -NeverGrowsWhenTypingAtEdges=1, -GrowsOnlyWhenTypingBefore=2, -GrowsOnlyWhenTypingAfter=3, -} - -/** -* A model that can track ranges. -*/ -export interface ITextModelWithTrackedRanges extends ITextModel { -} - -/** -* A model that can have decorations. -*/ -export interface ITextModelWithDecorations { -/** -* Perform a minimum ammount of operations, in order to transform the decorations -* identified by `oldDecorations` to the decorations described by `newDecorations` -* and returns the new identifiers associated with the resulting decorations. -* -* @param oldDecorations Array containing previous decorations identifiers. -* @param newDecorations Array describing what decorations should result after the call. -* @param ownerId Identifies the editor id in which these decorations should appear. If no `ownerId` is provided, the decorations will appear in all editors that attach this model. -* @return An array containing the new decorations identifiers. -*/ -deltaDecorations(oldDecorations: string[],newDecorations: IModelDeltaDecoration[],ownerId?: number): string[]; -/** -* Get the options associated with a decoration. -* @param id The decoration id. -* @return The decoration options or null if the decoration was not found. -*/ -getDecorationOptions(id: string): IModelDecorationOptions; -/** -* Get the range associated with a decoration. -* @param id The decoration id. -* @return The decoration range or null if the decoration was not found. -*/ -getDecorationRange(id: string): Range; -/** -* Gets all the decorations for the line `lineNumber` as an array. -* @param lineNumber The line number -* @param ownerId If set, it will ignore decorations belonging to other owners. -* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). -* @return An array with the decorations -*/ -getLineDecorations(lineNumber: number,ownerId?: number,filterOutValidation?: boolean): IModelDecoration[]; -/** -* Gets all the decorations for the lines between `startLineNumber` and `endLineNumber` as an array. -* @param startLineNumber The start line number -* @param endLineNumber The end line number -* @param ownerId If set, it will ignore decorations belonging to other owners. -* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). -* @return An array with the decorations -*/ -getLinesDecorations(startLineNumber: number,endLineNumber: number,ownerId?: number,filterOutValidation?: boolean): IModelDecoration[]; -/** -* Gets all the deocorations in a range as an array. Only `startLineNumber` and `endLineNumber` from `range` are used for filtering. -* So for now it returns all the decorations on the same line as `range`. -* @param range The range to search in -* @param ownerId If set, it will ignore decorations belonging to other owners. -* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). -* @return An array with the decorations -*/ -getDecorationsInRange(range: IRange,ownerId?: number,filterOutValidation?: boolean): IModelDecoration[]; -/** -* Gets all the decorations as an array. -* @param ownerId If set, it will ignore decorations belonging to other owners. -* @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). -*/ -getAllDecorations(ownerId?: number,filterOutValidation?: boolean): IModelDecoration[]; -} - -/** -* An editable text model. -*/ -export interface IEditableTextModel extends ITextModelWithMarkers { -/** -* Normalize a string containing whitespace according to indentation rules (converts to spaces or to tabs). -*/ -normalizeIndentation(str: string): string; -/** -* Get what is considered to be one indent (e.g. a tab character or 4 spaces, etc.). -*/ -getOneIndent(): string; -/** -* Change the options of this model. -*/ -updateOptions(newOpts: ITextModelUpdateOptions): void; -/** -* Detect the indentation options for this model from its content. -*/ -detectIndentation(defaultInsertSpaces: boolean,defaultTabSize: number): void; -/** -* Push a stack element onto the undo stack. This acts as an undo/redo point. -* The idea is to use `pushEditOperations` to edit the model and then to -* `pushStackElement` to create an undo/redo stop point. -*/ -pushStackElement(): void; -/** -* Push edit operations, basically editing the model. This is the preferred way -* of editing the model. The edit operations will land on the undo stack. -* @param beforeCursorState The cursor state before the edit operaions. This cursor state will be returned when `undo` or `redo` are invoked. -* @param editOperations The edit operations. -* @param cursorStateComputer A callback that can compute the resulting cursors state after the edit operations have been executed. -* @return The cursor state returned by the `cursorStateComputer`. -*/ -pushEditOperations(beforeCursorState: Selection[],editOperations: IIdentifiedSingleEditOperation[],cursorStateComputer: ICursorStateComputer): Selection[]; -/** -* Edit the model without adding the edits to the undo stack. -* This can have dire consequences on the undo stack! See @pushEditOperations for the preferred way. -* @param operations The edit operations. -* @return The inverse edit operations, that, when applied, will bring the model back to the previous state. -*/ -applyEdits(operations: IIdentifiedSingleEditOperation[]): IIdentifiedSingleEditOperation[]; -} - -/** -* A model. -*/ -export interface IModel extends IReadOnlyModel,IEditableTextModel,ITextModelWithMarkers,ITokenizedModel,ITextModelWithTrackedRanges,ITextModelWithDecorations,IEditorModel { -/** -* An event emitted when the contents of the model have changed. -* @event -*/ -onDidChangeContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; -/** -* An event emitted when decorations of the model have changed. -* @event -*/ -onDidChangeDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; -/** -* An event emitted when the model options have changed. -* @event -*/ -onDidChangeOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; -/** -* An event emitted when the language associated with the model has changed. -* @event -*/ -onDidChangeMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; -/** -* An event emitted right before disposing the model. -* @event -*/ -onWillDispose(listener: () => void): IDisposable; -/** -* A unique identifier associated with this model. -*/ -readonly id: string; -/** -* Destroy this model. This will unbind the model from the mode -* and make all necessary clean-up to release this object to the GC. -*/ -dispose(): void; -} - -/** -* An event describing that the current mode associated with a model has changed. -*/ -export interface IModelModeChangedEvent { -/** -* Previous mode -*/ -readonly oldMode: languages.IMode; -/** -* New mode -*/ -readonly newMode: languages.IMode; -} - -/** -* An event describing a change in the text of a model. -*/ -export interface IModelContentChangedEvent2 { -/** -* The range that got replaced. -*/ -readonly range: IRange; -/** -* The length of the range that got replaced. -*/ -readonly rangeLength: number; -/** -* The new text for the range. -*/ -readonly text: string; -/** -* The (new) end-of-line character. -*/ -readonly eol: string; -/** -* The new version id the model has transitioned to. -*/ -versionId: number; -/** -* Flag that indicates that this event was generated while undoing. -*/ -readonly isUndoing: boolean; -/** -* Flag that indicates that this event was generated while redoing. -*/ -readonly isRedoing: boolean; -} - -/** -* The raw text backing a model. -*/ -export interface IRawText { -/** -* The entire text length. -*/ -readonly length: number; -/** -* The text split into lines. -*/ -readonly lines: string[]; -/** -* The BOM (leading character sequence of the file). -*/ -readonly BOM: string; -/** -* The end of line sequence. -*/ -readonly EOL: string; -/** -* The text contains Unicode characters classified as "R" or "AL". -*/ -readonly containsRTL: boolean; -/** -* The options associated with this text. -*/ -readonly options: { -readonly tabSize: number; -readonly insertSpaces: boolean; -readonly defaultEOL: DefaultEndOfLine; -readonly trimAutoWhitespace: boolean; -}; -} - -/** -* Decoration data associated with a model decorations changed event. -*/ -export interface IModelDecorationsChangedEventDecorationData { -/** -* The id of the decoration. -*/ -readonly id: string; -/** -* The owner id of the decoration. -*/ -readonly ownerId: number; -/** -* The range of the decoration. -*/ -readonly range: IRange; -/** -* A flag describing if this is a problem decoration (e.g. warning/error). -*/ -readonly isForValidation: boolean; -/** -* The options for this decoration. -*/ -readonly options: IModelDecorationOptions; -} - -/** -* An event describing that model decorations have changed. -*/ -export interface IModelDecorationsChangedEvent { -/** -* A summary with ids of decorations that have changed. -*/ -readonly ids: string[]; -/** -* Lists of details for added or changed decorations. -*/ -readonly addedOrChangedDecorations: IModelDecorationsChangedEventDecorationData[]; -/** -* List of ids for removed decorations. -*/ -readonly removedDecorations: string[]; -/** -* Details regarding old options. -*/ -readonly oldOptions: { -[decorationId: string]: IModelDecorationOptions; -}; -/** -* Details regarding old ranges. -*/ -readonly oldRanges: { -[decorationId: string]: IRange; -}; -} - -/** -* An event describing that some ranges of lines have been tokenized (their tokens have changed). -*/ -export interface IModelTokensChangedEvent { -readonly ranges: { -/** -* The start of the range (inclusive) -*/ -readonly fromLineNumber: number; -/** -* The end of the range (inclusive) -*/ -readonly toLineNumber: number; -}[]; -} - -/** -* Describes the reason the cursor has changed its position. -*/ -export enum CursorChangeReason { -/** -* Unknown or not set. -*/ -NotSet=0, -/** -* A `model.setValue()` was called. -*/ -ContentFlush=1, -/** -* The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers. -*/ -RecoverFromMarkers=2, -/** -* There was an explicit user gesture. -*/ -Explicit=3, -/** -* There was a Paste. -*/ -Paste=4, -/** -* There was an Undo. -*/ -Undo=5, -/** -* There was a Redo. -*/ -Redo=6, -} - -/** -* An event describing that the cursor position has changed. -*/ -export interface ICursorPositionChangedEvent { -/** -* Primary cursor's position. -*/ -readonly position: Position; -/** -* Primary cursor's view position -*/ -readonly viewPosition: Position; -/** -* Secondary cursors' position. -*/ -readonly secondaryPositions: Position[]; -/** -* Secondary cursors' view position. -*/ -readonly secondaryViewPositions: Position[]; -/** -* Reason. -*/ -readonly reason: CursorChangeReason; -/** -* Source of the call that caused the event. -*/ -readonly source: string; -/** -* Is the primary cursor in the editable range? -*/ -readonly isInEditableRange: boolean; -} - -/** -* An event describing that the cursor selection has changed. -*/ -export interface ICursorSelectionChangedEvent { -/** -* The primary selection. -*/ -readonly selection: Selection; -/** -* The primary selection in view coordinates. -*/ -readonly viewSelection: Selection; -/** -* The secondary selections. -*/ -readonly secondarySelections: Selection[]; -/** -* The secondary selections in view coordinates. -*/ -readonly secondaryViewSelections: Selection[]; -/** -* Source of the call that caused the event. -*/ -readonly source: string; -/** -* Reason. -*/ -readonly reason: CursorChangeReason; -} - -/** -* An event describing that an editor has had its model reset (i.e. `editor.setModel()`). -*/ -export interface IModelChangedEvent { -/** -* The `uri` of the previous model or null. -*/ -readonly oldModelUrl: Uri; -/** -* The `uri` of the new model or null. -*/ -readonly newModelUrl: Uri; -} - -/** -* A description for the overview ruler position. -*/ -export class OverviewRulerPosition { -readonly _overviewRulerPositionBrand: void; -/** -* Width of the overview ruler -*/ -readonly width: number; -/** -* Height of the overview ruler -*/ -readonly height: number; -/** -* Top position for the overview ruler -*/ -readonly top: number; -/** -* Right position for the overview ruler -*/ -readonly right: number; -} - -/** -* The internal layout details of the editor. -*/ -export class EditorLayoutInfo { -readonly _editorLayoutInfoBrand: void; -/** -* Full editor width. -*/ -readonly width: number; -/** -* Full editor height. -*/ -readonly height: number; -/** -* Left position for the glyph margin. -*/ -readonly glyphMarginLeft: number; -/** -* The width of the glyph margin. -*/ -readonly glyphMarginWidth: number; -/** -* The height of the glyph margin. -*/ -readonly glyphMarginHeight: number; -/** -* Left position for the line numbers. -*/ -readonly lineNumbersLeft: number; -/** -* The width of the line numbers. -*/ -readonly lineNumbersWidth: number; -/** -* The height of the line numbers. -*/ -readonly lineNumbersHeight: number; -/** -* Left position for the line decorations. -*/ -readonly decorationsLeft: number; -/** -* The width of the line decorations. -*/ -readonly decorationsWidth: number; -/** -* The height of the line decorations. -*/ -readonly decorationsHeight: number; -/** -* Left position for the content (actual text) -*/ -readonly contentLeft: number; -/** -* The width of the content (actual text) -*/ -readonly contentWidth: number; -/** -* The height of the content (actual height) -*/ -readonly contentHeight: number; -/** -* The width of the vertical scrollbar. -*/ -readonly verticalScrollbarWidth: number; -/** -* The height of the horizontal scrollbar. -*/ -readonly horizontalScrollbarHeight: number; -/** -* The position of the overview ruler. -*/ -readonly overviewRuler: OverviewRulerPosition; -} - -/** -* Options for creating the editor. -*/ -export interface ICodeEditorWidgetCreationOptions extends IEditorOptions { -/** -* The initial model associated with this code editor. -*/ -model?: IModel; -} - -/** -* An editor model. -*/ -export interface IEditorModel { -} - -/** -* An editor view state. -*/ -export interface IEditorViewState { -} - -export interface IDimension { -width: number; -height: number; -} - -/** -* A (serializable) state of the cursors. -*/ -export interface ICursorState { -inSelectionMode: boolean; -selectionStart: IPosition; -position: IPosition; -} - -/** -* A (serializable) state of the view. -*/ -export interface IViewState { -scrollTop: number; -scrollTopWithoutViewZones: number; -scrollLeft: number; -} - -/** -* A (serializable) state of the code editor. -*/ -export interface ICodeEditorViewState extends IEditorViewState { -cursorState: ICursorState[]; -viewState: IViewState; -contributionsState: { -[id: string]: any; -}; -} - -/** -* Type of hit element with the mouse in the editor. -*/ -export enum MouseTargetType { -/** -* Mouse is on top of an unknown element. -*/ -UNKNOWN=0, -/** -* Mouse is on top of the textarea used for input. -*/ -TEXTAREA=1, -/** -* Mouse is on top of the glyph margin -*/ -GUTTER_GLYPH_MARGIN=2, -/** -* Mouse is on top of the line numbers -*/ -GUTTER_LINE_NUMBERS=3, -/** -* Mouse is on top of the line decorations -*/ -GUTTER_LINE_DECORATIONS=4, -/** -* Mouse is on top of the whitespace left in the gutter by a view zone. -*/ -GUTTER_VIEW_ZONE=5, -/** -* Mouse is on top of text in the content. -*/ -CONTENT_TEXT=6, -/** -* Mouse is on top of empty space in the content (e.g. after line text or below last line) -*/ -CONTENT_EMPTY=7, -/** -* Mouse is on top of a view zone in the content. -*/ -CONTENT_VIEW_ZONE=8, -/** -* Mouse is on top of a content widget. -*/ -CONTENT_WIDGET=9, -/** -* Mouse is on top of the decorations overview ruler. -*/ -OVERVIEW_RULER=10, -/** -* Mouse is on top of a scrollbar. -*/ -SCROLLBAR=11, -/** -* Mouse is on top of an overlay widget. -*/ -OVERLAY_WIDGET=12, -} - -/** -* A model for the diff editor. -*/ -export interface IDiffEditorModel extends IEditorModel { -/** -* Original model. -*/ -original: IModel; -/** -* Modified model. -*/ -modified: IModel; -} - -/** -* (Serializable) View state for the diff editor. -*/ -export interface IDiffEditorViewState extends IEditorViewState { -original: ICodeEditorViewState; -modified: ICodeEditorViewState; -} - -/** -* A change -*/ -export interface IChange { -readonly originalStartLineNumber: number; -readonly originalEndLineNumber: number; -readonly modifiedStartLineNumber: number; -readonly modifiedEndLineNumber: number; -} - -/** -* A character level change. -*/ -export interface ICharChange extends IChange { -readonly originalStartColumn: number; -readonly originalEndColumn: number; -readonly modifiedStartColumn: number; -readonly modifiedEndColumn: number; -} - -/** -* A line change -*/ -export interface ILineChange extends IChange { -readonly charChanges: ICharChange[]; -} - -export class BareFontInfo { -readonly _bareFontInfoBrand: void; -readonly fontFamily: string; -readonly fontWeight: string; -readonly fontSize: number; -readonly lineHeight: number; -} - -export class FontInfo extends BareFontInfo { -readonly _editorStylingBrand: void; -readonly typicalHalfwidthCharacterWidth: number; -readonly typicalFullwidthCharacterWidth: number; -readonly spaceWidth: number; -readonly maxDigitWidth: number; -} - -export interface INewScrollPosition { -scrollLeft?: number; -scrollTop?: number; -} - -/** -* Description of an action contribution -*/ -export interface IActionDescriptor { -/** -* An unique identifier of the contributed action. -*/ -id: string; -/** -* A label of the action that will be presented to the user. -*/ -label: string; -/** -* An array of keybindings for the action. -*/ -keybindings?: number[]; -/** -* Control if the action should show up in the context menu and where. -* The context menu of the editor has these default: -* navigation - The navigation group comes first in all cases. -* 1_modification - This group comes next and contains commands that modify your code. -* 9_cutcopypaste - The last default group with the basic editing commands. -* You can also create your own group. -* Defaults to null (don't show in context menu). -*/ -contextMenuGroupId?: string; -/** -* Control the order in the context menu group. -*/ -contextMenuOrder?: number; -/** -* The keybinding rule. -*/ -keybindingContext?: string; -/** -* Method that will be executed when the action is triggered. -* @param editor The editor instance is passed in as a convinience -*/ -run(editor: ICommonCodeEditor): void|Promise; -} - -export interface IEditorAction { -readonly id: string; -readonly label: string; -readonly alias: string; -isSupported(): boolean; -run(): Promise; -} - -/** -* An editor. -*/ -export interface IEditor { -/** -* An event emitted when the content of the current model has changed. -* @event -*/ -onDidChangeModelContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; -/** -* An event emitted when the language of the current model has changed. -* @event -*/ -onDidChangeModelMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; -/** -* An event emitted when the options of the current model has changed. -* @event -*/ -onDidChangeModelOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; -/** -* An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`) -* @event -*/ -onDidChangeConfiguration(listener: (e: IConfigurationChangedEvent) => void): IDisposable; -/** -* An event emitted when the cursor position has changed. -* @event -*/ -onDidChangeCursorPosition(listener: (e: ICursorPositionChangedEvent) => void): IDisposable; -/** -* An event emitted when the cursor selection has changed. -* @event -*/ -onDidChangeCursorSelection(listener: (e: ICursorSelectionChangedEvent) => void): IDisposable; -/** -* An event emitted when the editor has been disposed. -* @event -*/ -onDidDispose(listener: () => void): IDisposable; -/** -* Dispose the editor. -*/ -dispose(): void; -/** -* Get a unique id for this editor instance. -*/ -getId(): string; -/** -* Get the editor type. Please see `EditorType`. -* This is to avoid an instanceof check -*/ -getEditorType(): string; -/** -* Update the editor's options after the editor has been created. -*/ -updateOptions(newOptions: IEditorOptions): void; -/** -* Instructs the editor to remeasure its container. This method should -* be called when the container of the editor gets resized. -*/ -layout(dimension?: IDimension): void; -/** -* Brings browser focus to the editor text -*/ -focus(): void; -/** -* Returns true if this editor has keyboard focus (e.g. cursor is blinking). -*/ -isFocused(): boolean; -/** -* Add a new action to this editor. -*/ -addAction(descriptor: IActionDescriptor): void; -/** -* Returns all actions associated with this editor. -*/ -getActions(): IEditorAction[]; -/** -* Returns all actions associated with this editor. -*/ -getSupportedActions(): IEditorAction[]; -/** -* Saves current view state of the editor in a serializable object. -*/ -saveViewState(): IEditorViewState; -/** -* Restores the view state of the editor from a serializable object generated by `saveViewState`. -*/ -restoreViewState(state: IEditorViewState): void; -/** -* Given a position, returns a column number that takes tab-widths into account. -*/ -getVisibleColumnFromPosition(position: IPosition): number; -/** -* Returns the primary position of the cursor. -*/ -getPosition(): Position; -/** -* Set the primary position of the cursor. This will remove any secondary cursors. -* @param position New primary cursor's position -*/ -setPosition(position: IPosition): void; -/** -* Scroll vertically as necessary and reveal a line. -*/ -revealLine(lineNumber: number): void; -/** -* Scroll vertically as necessary and reveal a line centered vertically. -*/ -revealLineInCenter(lineNumber: number): void; -/** -* Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport. -*/ -revealLineInCenterIfOutsideViewport(lineNumber: number): void; -/** -* Scroll vertically or horizontally as necessary and reveal a position. -*/ -revealPosition(position: IPosition): void; -/** -* Scroll vertically or horizontally as necessary and reveal a position centered vertically. -*/ -revealPositionInCenter(position: IPosition): void; -/** -* Scroll vertically or horizontally as necessary and reveal a position centered vertically only if it lies outside the viewport. -*/ -revealPositionInCenterIfOutsideViewport(position: IPosition): void; -/** -* Returns the primary selection of the editor. -*/ -getSelection(): Selection; -/** -* Returns all the selections of the editor. -*/ -getSelections(): Selection[]; -/** -* Set the primary selection of the editor. This will remove any secondary cursors. -* @param selection The new selection -*/ -setSelection(selection: IRange): void; -/** -* Set the primary selection of the editor. This will remove any secondary cursors. -* @param selection The new selection -*/ -setSelection(selection: Range): void; -/** -* Set the primary selection of the editor. This will remove any secondary cursors. -* @param selection The new selection -*/ -setSelection(selection: ISelection): void; -/** -* Set the primary selection of the editor. This will remove any secondary cursors. -* @param selection The new selection -*/ -setSelection(selection: Selection): void; -/** -* Set the selections for all the cursors of the editor. -* Cursors will be removed or added, as necessary. -*/ -setSelections(selections: ISelection[]): void; -/** -* Scroll vertically as necessary and reveal lines. -*/ -revealLines(startLineNumber: number,endLineNumber: number): void; -/** -* Scroll vertically as necessary and reveal lines centered vertically. -*/ -revealLinesInCenter(lineNumber: number,endLineNumber: number): void; -/** -* Scroll vertically as necessary and reveal lines centered vertically only if it lies outside the viewport. -*/ -revealLinesInCenterIfOutsideViewport(lineNumber: number,endLineNumber: number): void; -/** -* Scroll vertically or horizontally as necessary and reveal a range. -*/ -revealRange(range: IRange): void; -/** -* Scroll vertically or horizontally as necessary and reveal a range centered vertically. -*/ -revealRangeInCenter(range: IRange): void; -/** -* Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport. -*/ -revealRangeInCenterIfOutsideViewport(range: IRange): void; -/** -* Directly trigger a handler or an editor action. -* @param source The source of the call. -* @param handlerId The id of the handler or the id of a contribution. -* @param payload Extra data to be sent to the handler. -*/ -trigger(source: string,handlerId: string,payload: any): void; -/** -* Gets the current model attached to this editor. -*/ -getModel(): IEditorModel; -/** -* Sets the current model attached to this editor. -* If the previous model was created by the editor via the value key in the options -* literal object, it will be destroyed. Otherwise, if the previous model was set -* via setModel, or the model key in the options literal object, the previous model -* will not be destroyed. -* It is safe to call setModel(null) to simply detach the current model from the editor. -*/ -setModel(model: IEditorModel): void; -} - -/** -* An editor contribution that gets created every time a new editor gets created and gets disposed when the editor gets disposed. -*/ -export interface IEditorContribution { -/** -* Get a unique identifier for this contribution. -*/ -getId(): string; -/** -* Dispose this contribution. -*/ -dispose(): void; -/** -* Store view state. -*/ -saveViewState?(): any; -/** -* Restore view state. -*/ -restoreViewState?(state: any): void; -} - -export interface ICommonCodeEditor extends IEditor { -/** -* An event emitted when the model of this editor has changed (e.g. `editor.setModel()`). -* @event -*/ -onDidChangeModel(listener: (e: IModelChangedEvent) => void): IDisposable; -/** -* An event emitted when the decorations of the current model have changed. -* @event -*/ -onDidChangeModelDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; -/** -* An event emitted when the text inside this editor gained focus (i.e. cursor blinking). -* @event -*/ -onDidFocusEditorText(listener: () => void): IDisposable; -/** -* An event emitted when the text inside this editor lost focus. -* @event -*/ -onDidBlurEditorText(listener: () => void): IDisposable; -/** -* An event emitted when the text inside this editor or an editor widget gained focus. -* @event -*/ -onDidFocusEditor(listener: () => void): IDisposable; -/** -* An event emitted when the text inside this editor or an editor widget lost focus. -* @event -*/ -onDidBlurEditor(listener: () => void): IDisposable; -/** -* Returns true if this editor or one of its widgets has keyboard focus. -*/ -hasWidgetFocus(): boolean; -/** -* Get a contribution of this editor. -* @id Unique identifier of the contribution. -* @return The contribution or null if contribution not found. -*/ -getContribution(id: string): T; -/** -* Type the getModel() of IEditor. -*/ -getModel(): IModel; -/** -* Returns the current editor's configuration -*/ -getConfiguration(): InternalEditorOptions; -/** -* Get value of the current model attached to this editor. -* @see IModel.getValue -*/ -getValue(options?: { -preserveBOM: boolean; -lineEnding: string; -}): string; -/** -* Set the value of the current model attached to this editor. -* @see IModel.setValue -*/ -setValue(newValue: string): void; -/** -* Get the scrollWidth of the editor's viewport. -*/ -getScrollWidth(): number; -/** -* Get the scrollLeft of the editor's viewport. -*/ -getScrollLeft(): number; -/** -* Get the scrollHeight of the editor's viewport. -*/ -getScrollHeight(): number; -/** -* Get the scrollTop of the editor's viewport. -*/ -getScrollTop(): number; -/** -* Change the scrollLeft of the editor's viewport. -*/ -setScrollLeft(newScrollLeft: number): void; -/** -* Change the scrollTop of the editor's viewport. -*/ -setScrollTop(newScrollTop: number): void; -/** -* Change the scroll position of the editor's viewport. -*/ -setScrollPosition(position: INewScrollPosition): void; -/** -* Get an action that is a contribution to this editor. -* @id Unique identifier of the contribution. -* @return The action or null if action not found. -*/ -getAction(id: string): IEditorAction; -/** -* Execute a command on the editor. -* @param source The source of the call. -* @param command The command to execute -*/ -executeCommand(source: string,command: ICommand): void; -/** -* Push an "undo stop" in the undo-redo stack. -*/ -pushUndoStop(): boolean; -/** -* Execute a command on the editor. -* @param source The source of the call. -* @param command The command to execute -*/ -executeEdits(source: string,edits: IIdentifiedSingleEditOperation[]): boolean; -/** -* Execute multiple (concommitent) commands on the editor. -* @param source The source of the call. -* @param command The commands to execute -*/ -executeCommands(source: string,commands: ICommand[]): void; -/** -* Get all the decorations on a line (filtering out decorations from other editors). -*/ -getLineDecorations(lineNumber: number): IModelDecoration[]; -/** -* All decorations added through this call will get the ownerId of this editor. -* @see IModel.deltaDecorations -*/ -deltaDecorations(oldDecorations: string[],newDecorations: IModelDeltaDecoration[]): string[]; -/** -* Get the layout info for the editor. -*/ -getLayoutInfo(): EditorLayoutInfo; -} - -export interface ICommonDiffEditor extends IEditor { -/** -* An event emitted when the diff information computed by this diff editor has been updated. -* @event -*/ -onDidUpdateDiff(listener: () => void): IDisposable; -/** -* Type the getModel() of IEditor. -*/ -getModel(): IDiffEditorModel; -/** -* Get the `original` editor. -*/ -getOriginalEditor(): ICommonCodeEditor; -/** -* Get the `modified` editor. -*/ -getModifiedEditor(): ICommonCodeEditor; -/** -* Get the computed diff information. -*/ -getLineChanges(): ILineChange[]; -/** -* @see ICodeEditor.getValue -*/ -getValue(options?: { -preserveBOM: boolean; -lineEnding: string; -}): string; -} - -/** -* The type of the `IEditor`. -*/ -export var EditorType: { -ICodeEditor: string; -IDiffEditor: string; -}; - -/** -* Positions in the view for cursor move command. -*/ -export const CursorMovePosition: { -Left: string; -Right: string; -Up: string; -Down: string; -WrappedLineStart: string; -WrappedLineFirstNonWhitespaceCharacter: string; -WrappedLineColumnCenter: string; -WrappedLineEnd: string; -WrappedLineLastNonWhitespaceCharacter: string; -ViewPortTop: string; -ViewPortCenter: string; -ViewPortBottom: string; -ViewPortIfOutside: string; -}; - -/** -* Units for Cursor move 'by' argument -*/ -export const CursorMoveByUnit: { -Line: string; -WrappedLine: string; -Character: string; -HalfLine: string; -}; - -/** -* Arguments for Cursor move command -*/ -export interface CursorMoveArguments { -to: string; -select?: boolean; -by?: string; -value?: number; -} - -/** -* Directions in the view for editor scroll command. -*/ -export const EditorScrollDirection: { -Up: string; -Down: string; -}; - -/** -* Units for editor scroll 'by' argument -*/ -export const EditorScrollByUnit: { -Line: string; -WrappedLine: string; -Page: string; -HalfPage: string; -}; - -/** -* Arguments for editor scroll command -*/ -export interface EditorScrollArguments { -to: string; -by?: string; -value?: number; -revealCursor?: boolean; -} - -/** -* Arguments for reveal line command -*/ -export interface RevealLineArguments { -lineNumber?: number; -at?: string; -} - -/** -* Values for reveal line 'at' argument -*/ -export const RevealLineAtArgument: { -Top: string; -Center: string; -Bottom: string; -}; - -/** -* Built-in commands. -*/ -export var Handler: { -ExecuteCommand: string; -ExecuteCommands: string; -CursorLeft: string; -CursorLeftSelect: string; -CursorWordLeft: string; -CursorWordStartLeft: string; -CursorWordEndLeft: string; -CursorWordLeftSelect: string; -CursorWordStartLeftSelect: string; -CursorWordEndLeftSelect: string; -CursorRight: string; -CursorRightSelect: string; -CursorWordRight: string; -CursorWordStartRight: string; -CursorWordEndRight: string; -CursorWordRightSelect: string; -CursorWordStartRightSelect: string; -CursorWordEndRightSelect: string; -CursorUp: string; -CursorUpSelect: string; -CursorDown: string; -CursorDownSelect: string; -CursorPageUp: string; -CursorPageUpSelect: string; -CursorPageDown: string; -CursorPageDownSelect: string; -CursorHome: string; -CursorHomeSelect: string; -CursorEnd: string; -CursorEndSelect: string; -ExpandLineSelection: string; -CursorTop: string; -CursorTopSelect: string; -CursorBottom: string; -CursorBottomSelect: string; -CursorColumnSelectLeft: string; -CursorColumnSelectRight: string; -CursorColumnSelectUp: string; -CursorColumnSelectPageUp: string; -CursorColumnSelectDown: string; -CursorColumnSelectPageDown: string; -CursorMove: string; -AddCursorDown: string; -AddCursorUp: string; -CursorUndo: string; -MoveTo: string; -MoveToSelect: string; -ColumnSelect: string; -CreateCursor: string; -LastCursorMoveToSelect: string; -JumpToBracket: string; -Type: string; -ReplacePreviousChar: string; -CompositionStart: string; -CompositionEnd: string; -Paste: string; -Tab: string; -Indent: string; -Outdent: string; -DeleteLeft: string; -DeleteRight: string; -DeleteWordLeft: string; -DeleteWordStartLeft: string; -DeleteWordEndLeft: string; -DeleteWordRight: string; -DeleteWordStartRight: string; -DeleteWordEndRight: string; -DeleteAllLeft: string; -DeleteAllRight: string; -RemoveSecondaryCursors: string; -CancelSelection: string; -Cut: string; -Undo: string; -Redo: string; -WordSelect: string; -WordSelectDrag: string; -LastCursorWordSelect: string; -LineSelect: string; -LineSelectDrag: string; -LastCursorLineSelect: string; -LastCursorLineSelectDrag: string; -LineInsertBefore: string; -LineInsertAfter: string; -LineBreakInsert: string; -SelectAll: string; -EditorScroll: string; -ScrollLineUp: string; -ScrollLineDown: string; -ScrollPageUp: string; -ScrollPageDown: string; -RevealLine: string; -}; - -/** -* The style in which the editor's cursor should be rendered. -*/ -export enum TextEditorCursorStyle { -/** -* As a vertical line (sitting between two characters). -*/ -Line=1, -/** -* As a block (sitting on top of a character). -*/ -Block=2, -/** -* As a horizontal line (sitting under a character). -*/ -Underline=3, -} - -/** -* The kind of animation in which the editor's cursor should be rendered. -*/ -export enum TextEditorCursorBlinkingStyle { -/** -* Hidden -*/ -Hidden=0, -/** -* Blinking -*/ -Blink=1, -/** -* Blinking with smooth fading -*/ -Smooth=2, -/** -* Blinking with prolonged filled state and smooth fading -*/ -Phase=3, -/** -* Expand collapse animation on the y axis -*/ -Expand=4, -/** -* No-Blinking -*/ -Solid=5, -} - -/** -* A view zone is a full horizontal rectangle that 'pushes' text down. -* The editor reserves space for view zones when rendering. -*/ -export interface IViewZone { -/** -* The line number after which this zone should appear. -* Use 0 to place a view zone before the first line number. -*/ -afterLineNumber: number; -/** -* The column after which this zone should appear. -* If not set, the maxLineColumn of `afterLineNumber` will be used. -*/ -afterColumn?: number; -/** -* Suppress mouse down events. -* If set, the editor will attach a mouse down listener to the view zone and .preventDefault on it. -* Defaults to false -*/ -suppressMouseDown?: boolean; -/** -* The height in lines of the view zone. -* If specified, `heightInPx` will be used instead of this. -* If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen. -*/ -heightInLines?: number; -/** -* The height in px of the view zone. -* If this is set, the editor will give preference to it rather than `heightInLines` above. -* If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen. -*/ -heightInPx?: number; -/** -* The dom node of the view zone -*/ -domNode: HTMLElement; -/** -* Callback which gives the relative top of the view zone as it appears (taking scrolling into account). -*/ -onDomNodeTop?: (top: number) => void; -/** -* Callback which gives the height in pixels of the view zone. -*/ -onComputedHeight?: (height: number) => void; -} - -/** -* An accessor that allows for zones to be added or removed. -*/ -export interface IViewZoneChangeAccessor { -/** -* Create a new view zone. -* @param zone Zone to create -* @return A unique identifier to the view zone. -*/ -addZone(zone: IViewZone): number; -/** -* Remove a zone -* @param id A unique identifier to the view zone, as returned by the `addZone` call. -*/ -removeZone(id: number): void; -/** -* Change a zone's position. -* The editor will rescan the `afterLineNumber` and `afterColumn` properties of a view zone. -*/ -layoutZone(id: number): void; -} - -/** -* A positioning preference for rendering content widgets. -*/ -export enum ContentWidgetPositionPreference { -/** -* Place the content widget exactly at a position -*/ -EXACT=0, -/** -* Place the content widget above a position -*/ -ABOVE=1, -/** -* Place the content widget below a position -*/ -BELOW=2, -} - -/** -* A position for rendering content widgets. -*/ -export interface IContentWidgetPosition { -/** -* Desired position for the content widget. -* `preference` will also affect the placement. -*/ -position: IPosition; -/** -* Placement preference for position, in order of preference. -*/ -preference: ContentWidgetPositionPreference[]; -} - -/** -* A content widget renders inline with the text and can be easily placed 'near' an editor position. -*/ -export interface IContentWidget { -/** -* Render this content widget in a location where it could overflow the editor's view dom node. -*/ -allowEditorOverflow?: boolean; -suppressMouseDown?: boolean; -/** -* Get a unique identifier of the content widget. -*/ -getId(): string; -/** -* Get the dom node of the content widget. -*/ -getDomNode(): HTMLElement; -/** -* Get the placement of the content widget. -* If null is returned, the content widget will be placed off screen. -*/ -getPosition(): IContentWidgetPosition; -} - -/** -* A positioning preference for rendering overlay widgets. -*/ -export enum OverlayWidgetPositionPreference { -/** -* Position the overlay widget in the top right corner -*/ -TOP_RIGHT_CORNER=0, -/** -* Position the overlay widget in the bottom right corner -*/ -BOTTOM_RIGHT_CORNER=1, -/** -* Position the overlay widget in the top center -*/ -TOP_CENTER=2, -} - -/** -* A position for rendering overlay widgets. -*/ -export interface IOverlayWidgetPosition { -/** -* The position preference for the overlay widget. -*/ -preference: OverlayWidgetPositionPreference; -} - -/** -* An overlay widgets renders on top of the text. -*/ -export interface IOverlayWidget { -/** -* Get a unique identifier of the overlay widget. -*/ -getId(): string; -/** -* Get the dom node of the overlay widget. -*/ -getDomNode(): HTMLElement; -/** -* Get the placement of the overlay widget. -* If null is returned, the overlay widget is responsible to place itself. -*/ -getPosition(): IOverlayWidgetPosition; -} - -/** -* Target hit with the mouse in the editor. -*/ -export interface IMouseTarget { -/** -* The target element -*/ -readonly element: Element; -/** -* The target type -*/ -readonly type: MouseTargetType; -/** -* The 'approximate' editor position -*/ -readonly position: Position; -/** -* Desired mouse column (e.g. when position.column gets clamped to text length -- clicking after text on a line). -*/ -readonly mouseColumn: number; -/** -* The 'approximate' editor range -*/ -readonly range: Range; -/** -* Some extra detail. -*/ -readonly detail: any; -} - -/** -* A mouse event originating from the editor. -*/ -export interface IEditorMouseEvent { -readonly event: IMouseEvent; -readonly target: IMouseTarget; -} - -/** -* A rich code editor. -*/ -export interface ICodeEditor extends ICommonCodeEditor { -/** -* An event emitted on a "mouseup". -* @event -*/ -onMouseUp(listener: (e: IEditorMouseEvent) => void): IDisposable; -/** -* An event emitted on a "mousedown". -* @event -*/ -onMouseDown(listener: (e: IEditorMouseEvent) => void): IDisposable; -/** -* An event emitted on a "contextmenu". -* @event -*/ -onContextMenu(listener: (e: IEditorMouseEvent) => void): IDisposable; -/** -* An event emitted on a "mousemove". -* @event -*/ -onMouseMove(listener: (e: IEditorMouseEvent) => void): IDisposable; -/** -* An event emitted on a "mouseleave". -* @event -*/ -onMouseLeave(listener: (e: IEditorMouseEvent) => void): IDisposable; -/** -* An event emitted on a "keyup". -* @event -*/ -onKeyUp(listener: (e: IKeyboardEvent) => void): IDisposable; -/** -* An event emitted on a "keydown". -* @event -*/ -onKeyDown(listener: (e: IKeyboardEvent) => void): IDisposable; -/** -* An event emitted when the layout of the editor has changed. -* @event -*/ -onDidLayoutChange(listener: (e: EditorLayoutInfo) => void): IDisposable; -/** -* An event emitted when the scroll in the editor has changed. -* @event -*/ -onDidScrollChange(listener: (e: IScrollEvent) => void): IDisposable; -/** -* Returns the editor's dom node -*/ -getDomNode(): HTMLElement; -/** -* Add a content widget. Widgets must have unique ids, otherwise they will be overwritten. -*/ -addContentWidget(widget: IContentWidget): void; -/** -* Layout/Reposition a content widget. This is a ping to the editor to call widget.getPosition() -* and update appropiately. -*/ -layoutContentWidget(widget: IContentWidget): void; -/** -* Remove a content widget. -*/ -removeContentWidget(widget: IContentWidget): void; -/** -* Add an overlay widget. Widgets must have unique ids, otherwise they will be overwritten. -*/ -addOverlayWidget(widget: IOverlayWidget): void; -/** -* Layout/Reposition an overlay widget. This is a ping to the editor to call widget.getPosition() -* and update appropiately. -*/ -layoutOverlayWidget(widget: IOverlayWidget): void; -/** -* Remove an overlay widget. -*/ -removeOverlayWidget(widget: IOverlayWidget): void; -/** -* Change the view zones. View zones are lost when a new model is attached to the editor. -*/ -changeViewZones(callback: (accessor: IViewZoneChangeAccessor) => void): void; -/** -* Returns the range that is currently centered in the view port. -*/ -getCenteredRangeInViewport(): Range; -/** -* Get the horizontal position (left offset) for the column w.r.t to the beginning of the line. -* This method works only if the line `lineNumber` is currently rendered (in the editor's viewport). -* Use this method with caution. -*/ -getOffsetForColumn(lineNumber: number,column: number): number; -/** -* Force an editor render now. -*/ -render(): void; -/** -* Get the vertical position (top offset) for the line w.r.t. to the first line. -*/ -getTopForLineNumber(lineNumber: number): number; -/** -* Get the vertical position (top offset) for the position w.r.t. to the first line. -*/ -getTopForPosition(lineNumber: number,column: number): number; -/** -* Get the visible position for `position`. -* The result position takes scrolling into account and is relative to the top left corner of the editor. -* Explanation 1: the results of this method will change for the same `position` if the user scrolls the editor. -* Explanation 2: the results of this method will not change if the container of the editor gets repositioned. -* Warning: the results of this method are innacurate for positions that are outside the current editor viewport. -*/ -getScrolledVisiblePosition(position: IPosition): { -top: number; -left: number; -height: number; -}; -/** -* Apply the same font settings as the editor to `target`. -*/ -applyFontInfo(target: HTMLElement): void; -} - -/** -* A rich diff editor. -*/ -export interface IDiffEditor extends ICommonDiffEditor { -/** -* @see ICodeEditor.getDomNode -*/ -getDomNode(): HTMLElement; -} + /** + * Create a new editor under `domElement`. + * `domElement` should be empty (not contain other dom nodes). + * The editor will read the size of `domElement`. + */ + export function create(domElement: HTMLElement, options?: IEditorConstructionOptions, override?: IEditorOverrideServices): IStandaloneCodeEditor; + + /** + * Create a new diff editor under `domElement`. + * `domElement` should be empty (not contain other dom nodes). + * The editor will read the size of `domElement`. + */ + export function createDiffEditor(domElement: HTMLElement, options?: IDiffEditorConstructionOptions, override?: IEditorOverrideServices): IStandaloneDiffEditor; + + export interface IDiffNavigator { + canNavigate(): boolean; + next(): void; + previous(): void; + dispose(): void; + } + + export interface IDiffNavigatorOptions { + readonly followsCaret?: boolean; + readonly ignoreCharChanges?: boolean; + readonly alwaysRevealFirst?: boolean; + } + + export function createDiffNavigator(diffEditor: IStandaloneDiffEditor, opts?: IDiffNavigatorOptions): IDiffNavigator; + + /** + * Create a new editor model. + * You can specify the language that should be set for this model or let the language be inferred from the `uri`. + */ + export function createModel(value: string, language?: string, uri?: Uri): IModel; + + /** + * Change the language for a model. + */ + export function setModelLanguage(model: IModel, language: string): void; + + /** + * Set the markers for a model. + */ + export function setModelMarkers(model: IModel, owner: string, markers: IMarkerData[]): void; + + /** + * Get the model that has `uri` if it exists. + */ + export function getModel(uri: Uri): IModel; + + /** + * Get all the created models. + */ + export function getModels(): IModel[]; + + /** + * Emitted when a model is created. + * @event + */ + export function onDidCreateModel(listener: (model: IModel) => void): IDisposable; + + /** + * Emitted right before a model is disposed. + * @event + */ + export function onWillDisposeModel(listener: (model: IModel) => void): IDisposable; + + /** + * Emitted when a different language is set to a model. + * @event + */ + export function onDidChangeModelLanguage(listener: (e: { + readonly model: IModel; + readonly oldLanguage: string; + }) => void): IDisposable; + + /** + * Create a new web worker that has model syncing capabilities built in. + * Specify an AMD module to load that will `create` an object that will be proxied. + */ + export function createWebWorker(opts: IWebWorkerOptions): MonacoWebWorker; + + /** + * Colorize the contents of `domNode` using attribute `data-lang`. + */ + export function colorizeElement(domNode: HTMLElement, options: IColorizerElementOptions): Promise; + + /** + * Colorize `text` using language `languageId`. + */ + export function colorize(text: string, languageId: string, options: IColorizerOptions): Promise; + + /** + * Colorize a line in a model. + */ + export function colorizeModelLine(model: IModel, lineNumber: number, tabSize?: number): string; + + /** + * A web worker that can provide a proxy to an arbitrary file. + */ + export interface MonacoWebWorker { + /** + * Terminate the web worker, thus invalidating the returned proxy. + */ + dispose(): void; + /** + * Get a proxy to the arbitrary loaded code. + */ + getProxy(): Promise; + /** + * Synchronize (send) the models at `resources` to the web worker, + * making them available in the monaco.worker.getMirrorModels(). + */ + withSyncedResources(resources: Uri[]): Promise; + } + + export interface IWebWorkerOptions { + /** + * The AMD moduleId to load. + * It should export a function `create` that should return the exported proxy. + */ + moduleId: string; + /** + * The data to send over when calling create on the module. + */ + createData?: any; + /** + * A label to be used to identify the web worker for debugging purposes. + */ + label?: string; + } + + /** + * The options to create an editor. + */ + export interface IEditorConstructionOptions extends ICodeEditorWidgetCreationOptions { + /** + * The initial value of the auto created model in the editor. + * To not create automatically a model, use `model: null`. + */ + value?: string; + /** + * The initial language of the auto created model in the editor. + * To not create automatically a model, use `model: null`. + */ + language?: string; + } + + /** + * The options to create a diff editor. + */ + export interface IDiffEditorConstructionOptions extends IDiffEditorOptions { + } + + export interface IStandaloneCodeEditor extends ICodeEditor { + addCommand(keybinding: number, handler: ICommandHandler, context: string): string; + createContextKey(key: string, defaultValue: T): IContextKey; + addAction(descriptor: IActionDescriptor): void; + } + + export interface IStandaloneDiffEditor extends IDiffEditor { + addCommand(keybinding: number, handler: ICommandHandler, context: string): string; + createContextKey(key: string, defaultValue: T): IContextKey; + addAction(descriptor: IActionDescriptor): void; + } + export interface ICommandHandler { + (...args: any[]): void; + } + + export interface IContextKey { + set(value: T): void; + reset(): void; + get(): T; + } + + export interface IEditorOverrideServices { + } + + /** + * A structure defining a problem/warning/etc. + */ + export interface IMarkerData { + code?: string; + severity: Severity; + message: string; + source?: string; + startLineNumber: number; + startColumn: number; + endLineNumber: number; + endColumn: number; + } + + export interface IColorizerOptions { + tabSize?: number; + } + + export interface IColorizerElementOptions extends IColorizerOptions { + theme?: string; + mimeType?: string; + } + + export enum ScrollbarVisibility { + Auto = 1, + Hidden = 2, + Visible = 3, + } + + /** + * Configuration options for editor scrollbars + */ + export interface IEditorScrollbarOptions { + /** + * The size of arrows (if displayed). + * Defaults to 11. + */ + arrowSize?: number; + /** + * Render vertical scrollbar. + * Accepted values: 'auto', 'visible', 'hidden'. + * Defaults to 'auto'. + */ + vertical?: string; + /** + * Render horizontal scrollbar. + * Accepted values: 'auto', 'visible', 'hidden'. + * Defaults to 'auto'. + */ + horizontal?: string; + /** + * Cast horizontal and vertical shadows when the content is scrolled. + * Defaults to true. + */ + useShadows?: boolean; + /** + * Render arrows at the top and bottom of the vertical scrollbar. + * Defaults to false. + */ + verticalHasArrows?: boolean; + /** + * Render arrows at the left and right of the horizontal scrollbar. + * Defaults to false. + */ + horizontalHasArrows?: boolean; + /** + * Listen to mouse wheel events and react to them by scrolling. + * Defaults to true. + */ + handleMouseWheel?: boolean; + /** + * Height in pixels for the horizontal scrollbar. + * Defaults to 10 (px). + */ + horizontalScrollbarSize?: number; + /** + * Width in pixels for the vertical scrollbar. + * Defaults to 10 (px). + */ + verticalScrollbarSize?: number; + /** + * Width in pixels for the vertical slider. + * Defaults to `verticalScrollbarSize`. + */ + verticalSliderSize?: number; + /** + * Height in pixels for the horizontal slider. + * Defaults to `horizontalScrollbarSize`. + */ + horizontalSliderSize?: number; + } + + /** + * Describes how to indent wrapped lines. + */ + export enum WrappingIndent { + /** + * No indentation => wrapped lines begin at column 1. + */ + None = 0, + /** + * Same => wrapped lines get the same indentation as the parent. + */ + Same = 1, + /** + * Indent => wrapped lines get +1 indentation as the parent. + */ + Indent = 2, + } + + export type LineNumbersOption = 'on' | 'off' | 'relative' | ((lineNumber: number) => string); + + /** + * Configuration options for the editor. + */ + export interface IEditorOptions { + /** + * Enable experimental screen reader support. + * Defaults to `true`. + */ + experimentalScreenReader?: boolean; + /** + * The aria label for the editor's textarea (when it is focused). + */ + ariaLabel?: string; + /** + * Render vertical lines at the specified columns. + * Defaults to empty array. + */ + rulers?: number[]; + /** + * A string containing the word separators used when doing word navigation. + * Defaults to `~!@#$%^&*()-=+[{]}\\|;:\'",.<>/? + */ + wordSeparators?: string; + /** + * Enable Linux primary clipboard. + * Defaults to true. + */ + selectionClipboard?: boolean; + /** + * Control the rendering of line numbers. + * If it is a function, it will be invoked when rendering a line number and the return value will be rendered. + * Otherwise, if it is a truey, line numbers will be rendered normally (equivalent of using an identity function). + * Otherwise, line numbers will not be rendered. + * Defaults to true. + */ + lineNumbers?: LineNumbersOption; + /** + * Should the corresponding line be selected when clicking on the line number? + * Defaults to true. + */ + selectOnLineNumbers?: boolean; + /** + * Control the width of line numbers, by reserving horizontal space for rendering at least an amount of digits. + * Defaults to 5. + */ + lineNumbersMinChars?: number; + /** + * Enable the rendering of the glyph margin. + * Defaults to true in vscode and to false in monaco-editor. + */ + glyphMargin?: boolean; + /** + * The width reserved for line decorations (in px). + * Line decorations are placed between line numbers and the editor content. + * Defaults to 10. + */ + lineDecorationsWidth?: number; + /** + * When revealing the cursor, a virtual padding (px) is added to the cursor, turning it into a rectangle. + * This virtual padding ensures that the cursor gets revealed before hitting the edge of the viewport. + * Defaults to 30 (px). + */ + revealHorizontalRightPadding?: number; + /** + * Render the editor selection with rounded borders. + * Defaults to true. + */ + roundedSelection?: boolean; + /** + * Theme to be used for rendering. Consists of two parts, the UI theme and the syntax theme, + * separated by a space. + * The current available UI themes are: 'vs' (default), 'vs-dark', 'hc-black' + * The syntax themes are contributed. The default is 'default-theme' + */ + theme?: string; + /** + * Should the editor be read only. + * Defaults to false. + */ + readOnly?: boolean; + /** + * Control the behavior and rendering of the scrollbars. + */ + scrollbar?: IEditorScrollbarOptions; + /** + * Display overflow widgets as `fixed`. + * Defaults to `false`. + */ + fixedOverflowWidgets?: boolean; + /** + * The number of vertical lanes the overview ruler should render. + * Defaults to 2. + */ + overviewRulerLanes?: number; + /** + * Control the cursor animation style, possible values are 'blink', 'smooth', 'phase', 'expand' and 'solid'. + * Defaults to 'blink'. + */ + cursorBlinking?: string; + /** + * Zoom the font in the editor when using the mouse wheel in combination with holding Ctrl. + * Defaults to false. + */ + mouseWheelZoom?: boolean; + /** + * Control the cursor style, either 'block' or 'line'. + * Defaults to 'line'. + */ + cursorStyle?: string; + /** + * Enable font ligatures. + * Defaults to false. + */ + fontLigatures?: boolean; + /** + * Disable the use of `translate3d`. + * Defaults to false. + */ + disableTranslate3d?: boolean; + /** + * Should the cursor be hidden in the overview ruler. + * Defaults to false. + */ + hideCursorInOverviewRuler?: boolean; + /** + * Enable that scrolling can go one screen size after the last line. + * Defaults to true. + */ + scrollBeyondLastLine?: boolean; + /** + * Enable that the editor will install an interval to check if its container dom node size has changed. + * Enabling this might have a severe performance impact. + * Defaults to false. + */ + automaticLayout?: boolean; + /** + * Control the wrapping strategy of the editor. + * Using -1 means no wrapping whatsoever. + * Using 0 means viewport width wrapping (ajusts with the resizing of the editor). + * Using a positive number means wrapping after a fixed number of characters. + * Defaults to 300. + */ + wrappingColumn?: number; + /** + * Control the alternate style of viewport wrapping. + * When set to true viewport wrapping is used only when the window width is less than the number of columns specified in the wrappingColumn property. Has no effect if wrappingColumn is not a positive number. + * Defaults to false. + */ + wordWrap?: boolean; + /** + * Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'. + * Defaults to 'same' in vscode and to 'none' in monaco-editor. + */ + wrappingIndent?: string; + /** + * Configure word wrapping characters. A break will be introduced before these characters. + * Defaults to '{([+'. + */ + wordWrapBreakBeforeCharacters?: string; + /** + * Configure word wrapping characters. A break will be introduced after these characters. + * Defaults to ' \t})]?|&,;'. + */ + wordWrapBreakAfterCharacters?: string; + /** + * Configure word wrapping characters. A break will be introduced after these characters only if no `wordWrapBreakBeforeCharacters` or `wordWrapBreakAfterCharacters` were found. + * Defaults to '.'. + */ + wordWrapBreakObtrusiveCharacters?: string; + /** + * Performance guard: Stop rendering a line after x characters. + * Defaults to 10000 if wrappingColumn is -1. Defaults to -1 if wrappingColumn is >= 0. + * Use -1 to never stop rendering + */ + stopRenderingLineAfter?: number; + /** + * Enable hover. + * Defaults to true. + */ + hover?: boolean; + /** + * Enable custom contextmenu. + * Defaults to true. + */ + contextmenu?: boolean; + /** + * A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events. + * Defaults to 1. + */ + mouseWheelScrollSensitivity?: number; + /** + * Enable quick suggestions (shadow suggestions) + * Defaults to true. + */ + quickSuggestions?: boolean; + /** + * Quick suggestions show delay (in ms) + * Defaults to 500 (ms) + */ + quickSuggestionsDelay?: number; + /** + * Enables parameter hints + */ + parameterHints?: boolean; + /** + * Render icons in suggestions box. + * Defaults to true. + */ + iconsInSuggestions?: boolean; + /** + * Enable auto closing brackets. + * Defaults to true. + */ + autoClosingBrackets?: boolean; + /** + * Enable format on type. + * Defaults to false. + */ + formatOnType?: boolean; + /** + * Enable the suggestion box to pop-up on trigger characters. + * Defaults to true. + */ + suggestOnTriggerCharacters?: boolean; + /** + * Accept suggestions on ENTER. + * Defaults to true. + */ + acceptSuggestionOnEnter?: boolean; + /** + * Enable snippet suggestions. Default to 'true'. + */ + snippetSuggestions?: 'top' | 'bottom' | 'inline' | 'none'; + /** + * Copying without a selection copies the current line. + */ + emptySelectionClipboard?: boolean; + /** + * Enable tab completion. Defaults to 'false' + */ + tabCompletion?: boolean; + /** + * Enable word based suggestions. Defaults to 'true' + */ + wordBasedSuggestions?: boolean; + /** + * The font size for the suggest widget. + * Defaults to the editor font size. + */ + suggestFontSize?: number; + /** + * The line height for the suggest widget. + * Defaults to the editor line height. + */ + suggestLineHeight?: number; + /** + * Enable selection highlight. + * Defaults to true. + */ + selectionHighlight?: boolean; + /** + * Show code lens + * Defaults to true. + */ + codeLens?: boolean; + /** + * Enable code folding + * Defaults to true in vscode and to false in monaco-editor. + */ + folding?: boolean; + /** + * Enable rendering of whitespace. + * Defaults to none. + */ + renderWhitespace?: 'none' | 'boundary' | 'all'; + /** + * Enable rendering of control characters. + * Defaults to false. + */ + renderControlCharacters?: boolean; + /** + * Enable rendering of indent guides. + * Defaults to false. + */ + renderIndentGuides?: boolean; + /** + * Enable rendering of current line highlight. + * Defaults to true. + */ + renderLineHighlight?: boolean; + /** + * Inserting and deleting whitespace follows tab stops. + */ + useTabStops?: boolean; + /** + * The font family + */ + fontFamily?: string; + /** + * The font weight + */ + fontWeight?: 'normal' | 'bold' | 'bolder' | 'lighter' | 'initial' | 'inherit' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900'; + /** + * The font size + */ + fontSize?: number; + /** + * The line height + */ + lineHeight?: number; + } + + /** + * Configuration options for the diff editor. + */ + export interface IDiffEditorOptions extends IEditorOptions { + /** + * Allow the user to resize the diff editor split view. + * Defaults to true. + */ + enableSplitViewResizing?: boolean; + /** + * Render the differences in two side-by-side editors. + * Defaults to true. + */ + renderSideBySide?: boolean; + /** + * Compute the diff by ignoring leading/trailing whitespace + * Defaults to true. + */ + ignoreTrimWhitespace?: boolean; + /** + * Original model should be editable? + * Defaults to false. + */ + originalEditable?: boolean; + } + + export class InternalEditorScrollbarOptions { + readonly _internalEditorScrollbarOptionsBrand: void; + readonly arrowSize: number; + readonly vertical: ScrollbarVisibility; + readonly horizontal: ScrollbarVisibility; + readonly useShadows: boolean; + readonly verticalHasArrows: boolean; + readonly horizontalHasArrows: boolean; + readonly handleMouseWheel: boolean; + readonly horizontalScrollbarSize: number; + readonly horizontalSliderSize: number; + readonly verticalScrollbarSize: number; + readonly verticalSliderSize: number; + readonly mouseWheelScrollSensitivity: number; + } + + export class EditorWrappingInfo { + readonly _editorWrappingInfoBrand: void; + readonly isViewportWrapping: boolean; + readonly wrappingColumn: number; + readonly wrappingIndent: WrappingIndent; + readonly wordWrapBreakBeforeCharacters: string; + readonly wordWrapBreakAfterCharacters: string; + readonly wordWrapBreakObtrusiveCharacters: string; + } + + export class InternalEditorViewOptions { + readonly _internalEditorViewOptionsBrand: void; + readonly theme: string; + readonly canUseTranslate3d: boolean; + readonly experimentalScreenReader: boolean; + readonly rulers: number[]; + readonly ariaLabel: string; + readonly renderLineNumbers: boolean; + readonly renderCustomLineNumbers: (lineNumber: number) => string; + readonly renderRelativeLineNumbers: boolean; + readonly selectOnLineNumbers: boolean; + readonly glyphMargin: boolean; + readonly revealHorizontalRightPadding: number; + readonly roundedSelection: boolean; + readonly overviewRulerLanes: number; + readonly cursorBlinking: TextEditorCursorBlinkingStyle; + readonly mouseWheelZoom: boolean; + readonly cursorStyle: TextEditorCursorStyle; + readonly hideCursorInOverviewRuler: boolean; + readonly scrollBeyondLastLine: boolean; + readonly editorClassName: string; + readonly stopRenderingLineAfter: number; + readonly renderWhitespace: 'none' | 'boundary' | 'all'; + readonly renderControlCharacters: boolean; + readonly renderIndentGuides: boolean; + readonly renderLineHighlight: boolean; + readonly scrollbar: InternalEditorScrollbarOptions; + readonly fixedOverflowWidgets: boolean; + } + + export interface IViewConfigurationChangedEvent { + readonly theme: boolean; + readonly canUseTranslate3d: boolean; + readonly experimentalScreenReader: boolean; + readonly rulers: boolean; + readonly ariaLabel: boolean; + readonly renderLineNumbers: boolean; + readonly renderCustomLineNumbers: boolean; + readonly renderRelativeLineNumbers: boolean; + readonly selectOnLineNumbers: boolean; + readonly glyphMargin: boolean; + readonly revealHorizontalRightPadding: boolean; + readonly roundedSelection: boolean; + readonly overviewRulerLanes: boolean; + readonly cursorBlinking: boolean; + readonly mouseWheelZoom: boolean; + readonly cursorStyle: boolean; + readonly hideCursorInOverviewRuler: boolean; + readonly scrollBeyondLastLine: boolean; + readonly editorClassName: boolean; + readonly stopRenderingLineAfter: boolean; + readonly renderWhitespace: boolean; + readonly renderControlCharacters: boolean; + readonly renderIndentGuides: boolean; + readonly renderLineHighlight: boolean; + readonly scrollbar: boolean; + readonly fixedOverflowWidgets: boolean; + } + + export class EditorContribOptions { + readonly selectionClipboard: boolean; + readonly hover: boolean; + readonly contextmenu: boolean; + readonly quickSuggestions: boolean; + readonly quickSuggestionsDelay: number; + readonly parameterHints: boolean; + readonly iconsInSuggestions: boolean; + readonly formatOnType: boolean; + readonly suggestOnTriggerCharacters: boolean; + readonly acceptSuggestionOnEnter: boolean; + readonly snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none'; + readonly emptySelectionClipboard: boolean; + readonly tabCompletion: boolean; + readonly wordBasedSuggestions: boolean; + readonly suggestFontSize: number; + readonly suggestLineHeight: number; + readonly selectionHighlight: boolean; + readonly codeLens: boolean; + readonly folding: boolean; + } + + /** + * Internal configuration options (transformed or computed) for the editor. + */ + export class InternalEditorOptions { + readonly _internalEditorOptionsBrand: void; + readonly lineHeight: number; + readonly readOnly: boolean; + readonly wordSeparators: string; + readonly autoClosingBrackets: boolean; + readonly useTabStops: boolean; + readonly tabFocusMode: boolean; + readonly layoutInfo: EditorLayoutInfo; + readonly fontInfo: FontInfo; + readonly viewInfo: InternalEditorViewOptions; + readonly wrappingInfo: EditorWrappingInfo; + readonly contribInfo: EditorContribOptions; + } + + /** + * An event describing that the configuration of the editor has changed. + */ + export interface IConfigurationChangedEvent { + readonly lineHeight: boolean; + readonly readOnly: boolean; + readonly wordSeparators: boolean; + readonly autoClosingBrackets: boolean; + readonly useTabStops: boolean; + readonly tabFocusMode: boolean; + readonly layoutInfo: boolean; + readonly fontInfo: boolean; + readonly viewInfo: IViewConfigurationChangedEvent; + readonly wrappingInfo: boolean; + readonly contribInfo: boolean; + } + + /** + * Vertical Lane in the overview ruler of the editor. + */ + export enum OverviewRulerLane { + Left = 1, + Center = 2, + Right = 4, + Full = 7, + } + + /** + * Options for rendering a model decoration in the overview ruler. + */ + export interface IModelDecorationOverviewRulerOptions { + /** + * CSS color to render in the overview ruler. + * e.g.: rgba(100, 100, 100, 0.5) + */ + color: string; + /** + * CSS color to render in the overview ruler. + * e.g.: rgba(100, 100, 100, 0.5) + */ + darkColor: string; + /** + * The position in the overview ruler. + */ + position: OverviewRulerLane; + } + + /** + * Options for a model decoration. + */ + export interface IModelDecorationOptions { + /** + * Customize the growing behaviour of the decoration when typing at the edges of the decoration. + * Defaults to TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges + */ + stickiness?: TrackedRangeStickiness; + /** + * CSS class name describing the decoration. + */ + className?: string; + /** + * Array of MarkedString to render as the decoration message. + */ + hoverMessage?: MarkedString | MarkedString[]; + /** + * Should the decoration expand to encompass a whole line. + */ + isWholeLine?: boolean; + /** + * @deprecated : Use `overviewRuler` instead + */ + showInOverviewRuler?: string; + /** + * If set, render this decoration in the overview ruler. + */ + overviewRuler?: IModelDecorationOverviewRulerOptions; + /** + * If set, the decoration will be rendered in the glyph margin with this CSS class name. + */ + glyphMarginClassName?: string; + /** + * If set, the decoration will be rendered in the lines decorations with this CSS class name. + */ + linesDecorationsClassName?: string; + /** + * If set, the decoration will be rendered inline with the text with this CSS class name. + * Please use this only for CSS rules that must impact the text. For example, use `className` + * to have a background color decoration. + */ + inlineClassName?: string; + /** + * If set, the decoration will be rendered before the text with this CSS class name. + */ + beforeContentClassName?: string; + /** + * If set, the decoration will be rendered after the text with this CSS class name. + */ + afterContentClassName?: string; + } + + /** + * New model decorations. + */ + export interface IModelDeltaDecoration { + /** + * Range that this decoration covers. + */ + range: IRange; + /** + * Options associated with this decoration. + */ + options: IModelDecorationOptions; + } + + /** + * A decoration in the model. + */ + export interface IModelDecoration { + /** + * Identifier for a decoration. + */ + readonly id: string; + /** + * Identifier for a decoration's owener. + */ + readonly ownerId: number; + /** + * Range that this decoration covers. + */ + readonly range: Range; + /** + * Options associated with this decoration. + */ + readonly options: IModelDecorationOptions; + } + + /** + * Word inside a model. + */ + export interface IWordAtPosition { + /** + * The word. + */ + readonly word: string; + /** + * The column where the word starts. + */ + readonly startColumn: number; + /** + * The column where the word ends. + */ + readonly endColumn: number; + } + + /** + * End of line character preference. + */ + export enum EndOfLinePreference { + /** + * Use the end of line character identified in the text buffer. + */ + TextDefined = 0, + /** + * Use line feed (\n) as the end of line character. + */ + LF = 1, + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + CRLF = 2, + } + + /** + * The default end of line to use when instantiating models. + */ + export enum DefaultEndOfLine { + /** + * Use line feed (\n) as the end of line character. + */ + LF = 1, + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + CRLF = 2, + } + + /** + * End of line character preference. + */ + export enum EndOfLineSequence { + /** + * Use line feed (\n) as the end of line character. + */ + LF = 0, + /** + * Use carriage return and line feed (\r\n) as the end of line character. + */ + CRLF = 1, + } + + /** + * And identifier for a single edit operation. + */ + export interface ISingleEditOperationIdentifier { + /** + * Identifier major + */ + major: number; + /** + * Identifier minor + */ + minor: number; + } + + /** + * A builder and helper for edit operations for a command. + */ + export interface IEditOperationBuilder { + /** + * Add a new edit operation (a replace operation). + * @param range The range to replace (delete). May be empty to represent a simple insert. + * @param text The text to replace with. May be null to represent a simple delete. + */ + addEditOperation(range: Range, text: string): void; + /** + * Track `selection` when applying edit operations. + * A best effort will be made to not grow/expand the selection. + * An empty selection will clamp to a nearby character. + * @param selection The selection to track. + * @param trackPreviousOnEmpty If set, and the selection is empty, indicates whether the selection + * should clamp to the previous or the next character. + * @return A unique identifer. + */ + trackSelection(selection: Selection, trackPreviousOnEmpty?: boolean): string; + } + + /** + * A helper for computing cursor state after a command. + */ + export interface ICursorStateComputerData { + /** + * Get the inverse edit operations of the added edit operations. + */ + getInverseEditOperations(): IIdentifiedSingleEditOperation[]; + /** + * Get a previously tracked selection. + * @param id The unique identifier returned by `trackSelection`. + * @return The selection. + */ + getTrackedSelection(id: string): Selection; + } + + /** + * A command that modifies text / cursor state on a model. + */ + export interface ICommand { + /** + * Get the edit operations needed to execute this command. + * @param model The model the command will execute on. + * @param builder A helper to collect the needed edit operations and to track selections. + */ + getEditOperations(model: ITokenizedModel, builder: IEditOperationBuilder): void; + /** + * Compute the cursor state after the edit operations were applied. + * @param model The model the commad has executed on. + * @param helper A helper to get inverse edit operations and to get previously tracked selections. + * @return The cursor state after the command executed. + */ + computeCursorState(model: ITokenizedModel, helper: ICursorStateComputerData): Selection; + } + + /** + * A single edit operation, that acts as a simple replace. + * i.e. Replace text at `range` with `text` in model. + */ + export interface ISingleEditOperation { + /** + * The range to replace. This can be empty to emulate a simple insert. + */ + range: IRange; + /** + * The text to replace with. This can be null to emulate a simple delete. + */ + text: string; + /** + * This indicates that this operation has "insert" semantics. + * i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. + */ + forceMoveMarkers?: boolean; + } + + /** + * A single edit operation, that has an identifier. + */ + export interface IIdentifiedSingleEditOperation { + /** + * An identifier associated with this single edit operation. + */ + identifier: ISingleEditOperationIdentifier; + /** + * The range to replace. This can be empty to emulate a simple insert. + */ + range: Range; + /** + * The text to replace with. This can be null to emulate a simple delete. + */ + text: string; + /** + * This indicates that this operation has "insert" semantics. + * i.e. forceMoveMarkers = true => if `range` is collapsed, all markers at the position will be moved. + */ + forceMoveMarkers: boolean; + /** + * This indicates that this operation is inserting automatic whitespace + * that can be removed on next model edit operation if `config.trimAutoWhitespace` is true. + */ + isAutoWhitespaceEdit?: boolean; + } + + /** + * A callback that can compute the cursor state after applying a series of edit operations. + */ + export interface ICursorStateComputer { + /** + * A callback that can compute the resulting cursors state after some edit operations have been executed. + */ + (inverseEditOperations: IIdentifiedSingleEditOperation[]): Selection[]; + } + + export class TextModelResolvedOptions { + _textModelResolvedOptionsBrand: void; + readonly tabSize: number; + readonly insertSpaces: boolean; + readonly defaultEOL: DefaultEndOfLine; + readonly trimAutoWhitespace: boolean; + } + + export interface ITextModelUpdateOptions { + tabSize?: number; + insertSpaces?: boolean; + trimAutoWhitespace?: boolean; + } + + export interface IModelOptionsChangedEvent { + readonly tabSize: boolean; + readonly insertSpaces: boolean; + readonly trimAutoWhitespace: boolean; + } + + /** + * A textual read-only model. + */ + export interface ITextModel { + getOptions(): TextModelResolvedOptions; + /** + * Get the current version id of the model. + * Anytime a change happens to the model (even undo/redo), + * the version id is incremented. + */ + getVersionId(): number; + /** + * Get the alternative version id of the model. + * This alternative version id is not always incremented, + * it will return the same values in the case of undo-redo. + */ + getAlternativeVersionId(): number; + /** + * Replace the entire text buffer value contained in this model. + */ + setValue(newValue: string): void; + /** + * Replace the entire text buffer value contained in this model. + */ + setValueFromRawText(newValue: IRawText): void; + /** + * Get the text stored in this model. + * @param eol The end of line character preference. Defaults to `EndOfLinePreference.TextDefined`. + * @param preserverBOM Preserve a BOM character if it was detected when the model was constructed. + * @return The text. + */ + getValue(eol?: EndOfLinePreference, preserveBOM?: boolean): string; + /** + * Get the length of the text stored in this model. + */ + getValueLength(eol?: EndOfLinePreference, preserveBOM?: boolean): number; + /** + * Get the raw text stored in this model. + */ + toRawText(): IRawText; + /** + * Check if the raw text stored in this model equals another raw text. + */ + equals(other: IRawText): boolean; + /** + * Get the text in a certain range. + * @param range The range describing what text to get. + * @param eol The end of line character preference. This will only be used for multiline ranges. Defaults to `EndOfLinePreference.TextDefined`. + * @return The text. + */ + getValueInRange(range: IRange, eol?: EndOfLinePreference): string; + /** + * Get the length of text in a certain range. + * @param range The range describing what text length to get. + * @return The text length. + */ + getValueLengthInRange(range: IRange): number; + /** + * Get the number of lines in the model. + */ + getLineCount(): number; + /** + * Get the text for a certain line. + */ + getLineContent(lineNumber: number): string; + /** + * Get the text for all lines. + */ + getLinesContent(): string[]; + /** + * Get the end of line sequence predominantly used in the text buffer. + * @return EOL char sequence (e.g.: '\n' or '\r\n'). + */ + getEOL(): string; + /** + * Change the end of line sequence used in the text buffer. + */ + setEOL(eol: EndOfLineSequence): void; + /** + * Get the minimum legal column for line at `lineNumber` + */ + getLineMinColumn(lineNumber: number): number; + /** + * Get the maximum legal column for line at `lineNumber` + */ + getLineMaxColumn(lineNumber: number): number; + /** + * Returns the column before the first non whitespace character for line at `lineNumber`. + * Returns 0 if line is empty or contains only whitespace. + */ + getLineFirstNonWhitespaceColumn(lineNumber: number): number; + /** + * Returns the column after the last non whitespace character for line at `lineNumber`. + * Returns 0 if line is empty or contains only whitespace. + */ + getLineLastNonWhitespaceColumn(lineNumber: number): number; + /** + * Create a valid position, + */ + validatePosition(position: IPosition): Position; + /** + * Advances the given position by the given offest (negative offsets are also accepted) + * and returns it as a new valid position. + * + * If the offset and position are such that their combination goes beyond the beginning or + * end of the model, throws an exception. + * + * If the ofsset is such that the new position would be in the middle of a multi-byte + * line terminator, throws an exception. + */ + modifyPosition(position: IPosition, offset: number): Position; + /** + * Create a valid range. + */ + validateRange(range: IRange): Range; + /** + * Converts the position to a zero-based offset. + * + * The position will be [adjusted](#TextDocument.validatePosition). + * + * @param position A position. + * @return A valid zero-based offset. + */ + getOffsetAt(position: IPosition): number; + /** + * Converts a zero-based offset to a position. + * + * @param offset A zero-based offset. + * @return A valid [position](#Position). + */ + getPositionAt(offset: number): Position; + /** + * Get a range covering the entire model + */ + getFullModelRange(): Range; + /** + * Returns iff the model was disposed or not. + */ + isDisposed(): boolean; + /** + * Search the model. + * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. + * @param searchOnlyEditableRange Limit the searching to only search inside the editable range of the model. + * @param isRegex Used to indicate that `searchString` is a regular expression. + * @param matchCase Force the matching to match lower/upper case exactly. + * @param wholeWord Force the matching to match entire words only. + * @param limitResultCount Limit the number of results + * @return The ranges where the matches are. It is empty if not matches have been found. + */ + findMatches(searchString: string, searchOnlyEditableRange: boolean, isRegex: boolean, matchCase: boolean, wholeWord: boolean, limitResultCount?: number): Range[]; + /** + * Search the model. + * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. + * @param searchScope Limit the searching to only search inside this range. + * @param isRegex Used to indicate that `searchString` is a regular expression. + * @param matchCase Force the matching to match lower/upper case exactly. + * @param wholeWord Force the matching to match entire words only. + * @param limitResultCount Limit the number of results + * @return The ranges where the matches are. It is empty if no matches have been found. + */ + findMatches(searchString: string, searchScope: IRange, isRegex: boolean, matchCase: boolean, wholeWord: boolean, limitResultCount?: number): Range[]; + /** + * Search the model for the next match. Loops to the beginning of the model if needed. + * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. + * @param searchStart Start the searching at the specified position. + * @param isRegex Used to indicate that `searchString` is a regular expression. + * @param matchCase Force the matching to match lower/upper case exactly. + * @param wholeWord Force the matching to match entire words only. + * @return The range where the next match is. It is null if no next match has been found. + */ + findNextMatch(searchString: string, searchStart: IPosition, isRegex: boolean, matchCase: boolean, wholeWord: boolean): Range; + /** + * Search the model for the previous match. Loops to the end of the model if needed. + * @param searchString The string used to search. If it is a regular expression, set `isRegex` to true. + * @param searchStart Start the searching at the specified position. + * @param isRegex Used to indicate that `searchString` is a regular expression. + * @param matchCase Force the matching to match lower/upper case exactly. + * @param wholeWord Force the matching to match entire words only. + * @return The range where the previous match is. It is null if no previous match has been found. + */ + findPreviousMatch(searchString: string, searchStart: IPosition, isRegex: boolean, matchCase: boolean, wholeWord: boolean): Range; + } + + export interface IReadOnlyModel extends ITextModel { + /** + * Gets the resource associated with this editor model. + */ + readonly uri: Uri; + /** + * Get the language associated with this model. + */ + getModeId(): string; + /** + * Get the word under or besides `position`. + * @param position The position to look for a word. + * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. + * @return The word under or besides `position`. Might be null. + */ + getWordAtPosition(position: IPosition): IWordAtPosition; + /** + * Get the word under or besides `position` trimmed to `position`.column + * @param position The position to look for a word. + * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. + * @return The word under or besides `position`. Will never be null. + */ + getWordUntilPosition(position: IPosition): IWordAtPosition; + } + + /** + * A model that is tokenized. + */ + export interface ITokenizedModel extends ITextModel { + /** + * Get the current language mode associated with the model. + */ + getMode(): languages.IMode; + /** + * Get the language associated with this model. + */ + getModeId(): string; + /** + * Get the word under or besides `position`. + * @param position The position to look for a word. + * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. + * @return The word under or besides `position`. Might be null. + */ + getWordAtPosition(position: IPosition): IWordAtPosition; + /** + * Get the word under or besides `position` trimmed to `position`.column + * @param position The position to look for a word. + * @param skipSyntaxTokens Ignore syntax tokens, as identified by the mode. + * @return The word under or besides `position`. Will never be null. + */ + getWordUntilPosition(position: IPosition): IWordAtPosition; + } + + /** + * A model that can track markers. + */ + export interface ITextModelWithMarkers extends ITextModel { + } + + /** + * Describes the behaviour of decorations when typing/editing near their edges. + */ + export enum TrackedRangeStickiness { + AlwaysGrowsWhenTypingAtEdges = 0, + NeverGrowsWhenTypingAtEdges = 1, + GrowsOnlyWhenTypingBefore = 2, + GrowsOnlyWhenTypingAfter = 3, + } + + /** + * A model that can track ranges. + */ + export interface ITextModelWithTrackedRanges extends ITextModel { + } + + /** + * A model that can have decorations. + */ + export interface ITextModelWithDecorations { + /** + * Perform a minimum ammount of operations, in order to transform the decorations + * identified by `oldDecorations` to the decorations described by `newDecorations` + * and returns the new identifiers associated with the resulting decorations. + * + * @param oldDecorations Array containing previous decorations identifiers. + * @param newDecorations Array describing what decorations should result after the call. + * @param ownerId Identifies the editor id in which these decorations should appear. If no `ownerId` is provided, the decorations will appear in all editors that attach this model. + * @return An array containing the new decorations identifiers. + */ + deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[], ownerId?: number): string[]; + /** + * Get the options associated with a decoration. + * @param id The decoration id. + * @return The decoration options or null if the decoration was not found. + */ + getDecorationOptions(id: string): IModelDecorationOptions; + /** + * Get the range associated with a decoration. + * @param id The decoration id. + * @return The decoration range or null if the decoration was not found. + */ + getDecorationRange(id: string): Range; + /** + * Gets all the decorations for the line `lineNumber` as an array. + * @param lineNumber The line number + * @param ownerId If set, it will ignore decorations belonging to other owners. + * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). + * @return An array with the decorations + */ + getLineDecorations(lineNumber: number, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; + /** + * Gets all the decorations for the lines between `startLineNumber` and `endLineNumber` as an array. + * @param startLineNumber The start line number + * @param endLineNumber The end line number + * @param ownerId If set, it will ignore decorations belonging to other owners. + * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). + * @return An array with the decorations + */ + getLinesDecorations(startLineNumber: number, endLineNumber: number, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; + /** + * Gets all the deocorations in a range as an array. Only `startLineNumber` and `endLineNumber` from `range` are used for filtering. + * So for now it returns all the decorations on the same line as `range`. + * @param range The range to search in + * @param ownerId If set, it will ignore decorations belonging to other owners. + * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). + * @return An array with the decorations + */ + getDecorationsInRange(range: IRange, ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; + /** + * Gets all the decorations as an array. + * @param ownerId If set, it will ignore decorations belonging to other owners. + * @param filterOutValidation If set, it will ignore decorations specific to validation (i.e. warnings, errors). + */ + getAllDecorations(ownerId?: number, filterOutValidation?: boolean): IModelDecoration[]; + } + + /** + * An editable text model. + */ + export interface IEditableTextModel extends ITextModelWithMarkers { + /** + * Normalize a string containing whitespace according to indentation rules (converts to spaces or to tabs). + */ + normalizeIndentation(str: string): string; + /** + * Get what is considered to be one indent (e.g. a tab character or 4 spaces, etc.). + */ + getOneIndent(): string; + /** + * Change the options of this model. + */ + updateOptions(newOpts: ITextModelUpdateOptions): void; + /** + * Detect the indentation options for this model from its content. + */ + detectIndentation(defaultInsertSpaces: boolean, defaultTabSize: number): void; + /** + * Push a stack element onto the undo stack. This acts as an undo/redo point. + * The idea is to use `pushEditOperations` to edit the model and then to + * `pushStackElement` to create an undo/redo stop point. + */ + pushStackElement(): void; + /** + * Push edit operations, basically editing the model. This is the preferred way + * of editing the model. The edit operations will land on the undo stack. + * @param beforeCursorState The cursor state before the edit operaions. This cursor state will be returned when `undo` or `redo` are invoked. + * @param editOperations The edit operations. + * @param cursorStateComputer A callback that can compute the resulting cursors state after the edit operations have been executed. + * @return The cursor state returned by the `cursorStateComputer`. + */ + pushEditOperations(beforeCursorState: Selection[], editOperations: IIdentifiedSingleEditOperation[], cursorStateComputer: ICursorStateComputer): Selection[]; + /** + * Edit the model without adding the edits to the undo stack. + * This can have dire consequences on the undo stack! See @pushEditOperations for the preferred way. + * @param operations The edit operations. + * @return The inverse edit operations, that, when applied, will bring the model back to the previous state. + */ + applyEdits(operations: IIdentifiedSingleEditOperation[]): IIdentifiedSingleEditOperation[]; + } + + /** + * A model. + */ + export interface IModel extends IReadOnlyModel, IEditableTextModel, ITextModelWithMarkers, ITokenizedModel, ITextModelWithTrackedRanges, ITextModelWithDecorations, IEditorModel { + /** + * An event emitted when the contents of the model have changed. + * @event + */ + onDidChangeContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; + /** + * An event emitted when decorations of the model have changed. + * @event + */ + onDidChangeDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; + /** + * An event emitted when the model options have changed. + * @event + */ + onDidChangeOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; + /** + * An event emitted when the language associated with the model has changed. + * @event + */ + onDidChangeMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; + /** + * An event emitted right before disposing the model. + * @event + */ + onWillDispose(listener: () => void): IDisposable; + /** + * A unique identifier associated with this model. + */ + readonly id: string; + /** + * Destroy this model. This will unbind the model from the mode + * and make all necessary clean-up to release this object to the GC. + */ + dispose(): void; + } + + /** + * An event describing that the current mode associated with a model has changed. + */ + export interface IModelModeChangedEvent { + /** + * Previous mode + */ + readonly oldMode: languages.IMode; + /** + * New mode + */ + readonly newMode: languages.IMode; + } + + /** + * An event describing a change in the text of a model. + */ + export interface IModelContentChangedEvent2 { + /** + * The range that got replaced. + */ + readonly range: IRange; + /** + * The length of the range that got replaced. + */ + readonly rangeLength: number; + /** + * The new text for the range. + */ + readonly text: string; + /** + * The (new) end-of-line character. + */ + readonly eol: string; + /** + * The new version id the model has transitioned to. + */ + versionId: number; + /** + * Flag that indicates that this event was generated while undoing. + */ + readonly isUndoing: boolean; + /** + * Flag that indicates that this event was generated while redoing. + */ + readonly isRedoing: boolean; + } + + /** + * The raw text backing a model. + */ + export interface IRawText { + /** + * The entire text length. + */ + readonly length: number; + /** + * The text split into lines. + */ + readonly lines: string[]; + /** + * The BOM (leading character sequence of the file). + */ + readonly BOM: string; + /** + * The end of line sequence. + */ + readonly EOL: string; + /** + * The text contains Unicode characters classified as "R" or "AL". + */ + readonly containsRTL: boolean; + /** + * The options associated with this text. + */ + readonly options: { + readonly tabSize: number; + readonly insertSpaces: boolean; + readonly defaultEOL: DefaultEndOfLine; + readonly trimAutoWhitespace: boolean; + }; + } + + /** + * Decoration data associated with a model decorations changed event. + */ + export interface IModelDecorationsChangedEventDecorationData { + /** + * The id of the decoration. + */ + readonly id: string; + /** + * The owner id of the decoration. + */ + readonly ownerId: number; + /** + * The range of the decoration. + */ + readonly range: IRange; + /** + * A flag describing if this is a problem decoration (e.g. warning/error). + */ + readonly isForValidation: boolean; + /** + * The options for this decoration. + */ + readonly options: IModelDecorationOptions; + } + + /** + * An event describing that model decorations have changed. + */ + export interface IModelDecorationsChangedEvent { + /** + * A summary with ids of decorations that have changed. + */ + readonly ids: string[]; + /** + * Lists of details for added or changed decorations. + */ + readonly addedOrChangedDecorations: IModelDecorationsChangedEventDecorationData[]; + /** + * List of ids for removed decorations. + */ + readonly removedDecorations: string[]; + /** + * Details regarding old options. + */ + readonly oldOptions: { + [decorationId: string]: IModelDecorationOptions; + }; + /** + * Details regarding old ranges. + */ + readonly oldRanges: { + [decorationId: string]: IRange; + }; + } + + /** + * An event describing that some ranges of lines have been tokenized (their tokens have changed). + */ + export interface IModelTokensChangedEvent { + readonly ranges: { + /** + * The start of the range (inclusive) + */ + readonly fromLineNumber: number; + /** + * The end of the range (inclusive) + */ + readonly toLineNumber: number; + }[]; + } + + /** + * Describes the reason the cursor has changed its position. + */ + export enum CursorChangeReason { + /** + * Unknown or not set. + */ + NotSet = 0, + /** + * A `model.setValue()` was called. + */ + ContentFlush = 1, + /** + * The `model` has been changed outside of this cursor and the cursor recovers its position from associated markers. + */ + RecoverFromMarkers = 2, + /** + * There was an explicit user gesture. + */ + Explicit = 3, + /** + * There was a Paste. + */ + Paste = 4, + /** + * There was an Undo. + */ + Undo = 5, + /** + * There was a Redo. + */ + Redo = 6, + } + + /** + * An event describing that the cursor position has changed. + */ + export interface ICursorPositionChangedEvent { + /** + * Primary cursor's position. + */ + readonly position: Position; + /** + * Primary cursor's view position + */ + readonly viewPosition: Position; + /** + * Secondary cursors' position. + */ + readonly secondaryPositions: Position[]; + /** + * Secondary cursors' view position. + */ + readonly secondaryViewPositions: Position[]; + /** + * Reason. + */ + readonly reason: CursorChangeReason; + /** + * Source of the call that caused the event. + */ + readonly source: string; + /** + * Is the primary cursor in the editable range? + */ + readonly isInEditableRange: boolean; + } + + /** + * An event describing that the cursor selection has changed. + */ + export interface ICursorSelectionChangedEvent { + /** + * The primary selection. + */ + readonly selection: Selection; + /** + * The primary selection in view coordinates. + */ + readonly viewSelection: Selection; + /** + * The secondary selections. + */ + readonly secondarySelections: Selection[]; + /** + * The secondary selections in view coordinates. + */ + readonly secondaryViewSelections: Selection[]; + /** + * Source of the call that caused the event. + */ + readonly source: string; + /** + * Reason. + */ + readonly reason: CursorChangeReason; + } + + /** + * An event describing that an editor has had its model reset (i.e. `editor.setModel()`). + */ + export interface IModelChangedEvent { + /** + * The `uri` of the previous model or null. + */ + readonly oldModelUrl: Uri; + /** + * The `uri` of the new model or null. + */ + readonly newModelUrl: Uri; + } + + /** + * A description for the overview ruler position. + */ + export class OverviewRulerPosition { + readonly _overviewRulerPositionBrand: void; + /** + * Width of the overview ruler + */ + readonly width: number; + /** + * Height of the overview ruler + */ + readonly height: number; + /** + * Top position for the overview ruler + */ + readonly top: number; + /** + * Right position for the overview ruler + */ + readonly right: number; + } + + /** + * The internal layout details of the editor. + */ + export class EditorLayoutInfo { + readonly _editorLayoutInfoBrand: void; + /** + * Full editor width. + */ + readonly width: number; + /** + * Full editor height. + */ + readonly height: number; + /** + * Left position for the glyph margin. + */ + readonly glyphMarginLeft: number; + /** + * The width of the glyph margin. + */ + readonly glyphMarginWidth: number; + /** + * The height of the glyph margin. + */ + readonly glyphMarginHeight: number; + /** + * Left position for the line numbers. + */ + readonly lineNumbersLeft: number; + /** + * The width of the line numbers. + */ + readonly lineNumbersWidth: number; + /** + * The height of the line numbers. + */ + readonly lineNumbersHeight: number; + /** + * Left position for the line decorations. + */ + readonly decorationsLeft: number; + /** + * The width of the line decorations. + */ + readonly decorationsWidth: number; + /** + * The height of the line decorations. + */ + readonly decorationsHeight: number; + /** + * Left position for the content (actual text) + */ + readonly contentLeft: number; + /** + * The width of the content (actual text) + */ + readonly contentWidth: number; + /** + * The height of the content (actual height) + */ + readonly contentHeight: number; + /** + * The width of the vertical scrollbar. + */ + readonly verticalScrollbarWidth: number; + /** + * The height of the horizontal scrollbar. + */ + readonly horizontalScrollbarHeight: number; + /** + * The position of the overview ruler. + */ + readonly overviewRuler: OverviewRulerPosition; + } + + /** + * Options for creating the editor. + */ + export interface ICodeEditorWidgetCreationOptions extends IEditorOptions { + /** + * The initial model associated with this code editor. + */ + model?: IModel; + } + + /** + * An editor model. + */ + export interface IEditorModel { + } + + /** + * An editor view state. + */ + export interface IEditorViewState { + } + + export interface IDimension { + width: number; + height: number; + } + + /** + * A (serializable) state of the cursors. + */ + export interface ICursorState { + inSelectionMode: boolean; + selectionStart: IPosition; + position: IPosition; + } + + /** + * A (serializable) state of the view. + */ + export interface IViewState { + scrollTop: number; + scrollTopWithoutViewZones: number; + scrollLeft: number; + } + + /** + * A (serializable) state of the code editor. + */ + export interface ICodeEditorViewState extends IEditorViewState { + cursorState: ICursorState[]; + viewState: IViewState; + contributionsState: { + [id: string]: any; + }; + } + + /** + * Type of hit element with the mouse in the editor. + */ + export enum MouseTargetType { + /** + * Mouse is on top of an unknown element. + */ + UNKNOWN = 0, + /** + * Mouse is on top of the textarea used for input. + */ + TEXTAREA = 1, + /** + * Mouse is on top of the glyph margin + */ + GUTTER_GLYPH_MARGIN = 2, + /** + * Mouse is on top of the line numbers + */ + GUTTER_LINE_NUMBERS = 3, + /** + * Mouse is on top of the line decorations + */ + GUTTER_LINE_DECORATIONS = 4, + /** + * Mouse is on top of the whitespace left in the gutter by a view zone. + */ + GUTTER_VIEW_ZONE = 5, + /** + * Mouse is on top of text in the content. + */ + CONTENT_TEXT = 6, + /** + * Mouse is on top of empty space in the content (e.g. after line text or below last line) + */ + CONTENT_EMPTY = 7, + /** + * Mouse is on top of a view zone in the content. + */ + CONTENT_VIEW_ZONE = 8, + /** + * Mouse is on top of a content widget. + */ + CONTENT_WIDGET = 9, + /** + * Mouse is on top of the decorations overview ruler. + */ + OVERVIEW_RULER = 10, + /** + * Mouse is on top of a scrollbar. + */ + SCROLLBAR = 11, + /** + * Mouse is on top of an overlay widget. + */ + OVERLAY_WIDGET = 12, + } + + /** + * A model for the diff editor. + */ + export interface IDiffEditorModel extends IEditorModel { + /** + * Original model. + */ + original: IModel; + /** + * Modified model. + */ + modified: IModel; + } + + /** + * (Serializable) View state for the diff editor. + */ + export interface IDiffEditorViewState extends IEditorViewState { + original: ICodeEditorViewState; + modified: ICodeEditorViewState; + } + + /** + * A change + */ + export interface IChange { + readonly originalStartLineNumber: number; + readonly originalEndLineNumber: number; + readonly modifiedStartLineNumber: number; + readonly modifiedEndLineNumber: number; + } + + /** + * A character level change. + */ + export interface ICharChange extends IChange { + readonly originalStartColumn: number; + readonly originalEndColumn: number; + readonly modifiedStartColumn: number; + readonly modifiedEndColumn: number; + } + + /** + * A line change + */ + export interface ILineChange extends IChange { + readonly charChanges: ICharChange[]; + } + + export class BareFontInfo { + readonly _bareFontInfoBrand: void; + readonly fontFamily: string; + readonly fontWeight: string; + readonly fontSize: number; + readonly lineHeight: number; + } + + export class FontInfo extends BareFontInfo { + readonly _editorStylingBrand: void; + readonly typicalHalfwidthCharacterWidth: number; + readonly typicalFullwidthCharacterWidth: number; + readonly spaceWidth: number; + readonly maxDigitWidth: number; + } + + export interface INewScrollPosition { + scrollLeft?: number; + scrollTop?: number; + } + + /** + * Description of an action contribution + */ + export interface IActionDescriptor { + /** + * An unique identifier of the contributed action. + */ + id: string; + /** + * A label of the action that will be presented to the user. + */ + label: string; + /** + * An array of keybindings for the action. + */ + keybindings?: number[]; + /** + * Control if the action should show up in the context menu and where. + * The context menu of the editor has these default: + * navigation - The navigation group comes first in all cases. + * 1_modification - This group comes next and contains commands that modify your code. + * 9_cutcopypaste - The last default group with the basic editing commands. + * You can also create your own group. + * Defaults to null (don't show in context menu). + */ + contextMenuGroupId?: string; + /** + * Control the order in the context menu group. + */ + contextMenuOrder?: number; + /** + * The keybinding rule. + */ + keybindingContext?: string; + /** + * Method that will be executed when the action is triggered. + * @param editor The editor instance is passed in as a convinience + */ + run(editor: ICommonCodeEditor): void | Promise; + } + + export interface IEditorAction { + readonly id: string; + readonly label: string; + readonly alias: string; + isSupported(): boolean; + run(): Promise; + } + + /** + * An editor. + */ + export interface IEditor { + /** + * An event emitted when the content of the current model has changed. + * @event + */ + onDidChangeModelContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; + /** + * An event emitted when the language of the current model has changed. + * @event + */ + onDidChangeModelMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; + /** + * An event emitted when the options of the current model has changed. + * @event + */ + onDidChangeModelOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; + /** + * An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`) + * @event + */ + onDidChangeConfiguration(listener: (e: IConfigurationChangedEvent) => void): IDisposable; + /** + * An event emitted when the cursor position has changed. + * @event + */ + onDidChangeCursorPosition(listener: (e: ICursorPositionChangedEvent) => void): IDisposable; + /** + * An event emitted when the cursor selection has changed. + * @event + */ + onDidChangeCursorSelection(listener: (e: ICursorSelectionChangedEvent) => void): IDisposable; + /** + * An event emitted when the editor has been disposed. + * @event + */ + onDidDispose(listener: () => void): IDisposable; + /** + * Dispose the editor. + */ + dispose(): void; + /** + * Get a unique id for this editor instance. + */ + getId(): string; + /** + * Get the editor type. Please see `EditorType`. + * This is to avoid an instanceof check + */ + getEditorType(): string; + /** + * Update the editor's options after the editor has been created. + */ + updateOptions(newOptions: IEditorOptions): void; + /** + * Instructs the editor to remeasure its container. This method should + * be called when the container of the editor gets resized. + */ + layout(dimension?: IDimension): void; + /** + * Brings browser focus to the editor text + */ + focus(): void; + /** + * Returns true if this editor has keyboard focus (e.g. cursor is blinking). + */ + isFocused(): boolean; + /** + * Add a new action to this editor. + */ + addAction(descriptor: IActionDescriptor): void; + /** + * Returns all actions associated with this editor. + */ + getActions(): IEditorAction[]; + /** + * Returns all actions associated with this editor. + */ + getSupportedActions(): IEditorAction[]; + /** + * Saves current view state of the editor in a serializable object. + */ + saveViewState(): IEditorViewState; + /** + * Restores the view state of the editor from a serializable object generated by `saveViewState`. + */ + restoreViewState(state: IEditorViewState): void; + /** + * Given a position, returns a column number that takes tab-widths into account. + */ + getVisibleColumnFromPosition(position: IPosition): number; + /** + * Returns the primary position of the cursor. + */ + getPosition(): Position; + /** + * Set the primary position of the cursor. This will remove any secondary cursors. + * @param position New primary cursor's position + */ + setPosition(position: IPosition): void; + /** + * Scroll vertically as necessary and reveal a line. + */ + revealLine(lineNumber: number): void; + /** + * Scroll vertically as necessary and reveal a line centered vertically. + */ + revealLineInCenter(lineNumber: number): void; + /** + * Scroll vertically as necessary and reveal a line centered vertically only if it lies outside the viewport. + */ + revealLineInCenterIfOutsideViewport(lineNumber: number): void; + /** + * Scroll vertically or horizontally as necessary and reveal a position. + */ + revealPosition(position: IPosition): void; + /** + * Scroll vertically or horizontally as necessary and reveal a position centered vertically. + */ + revealPositionInCenter(position: IPosition): void; + /** + * Scroll vertically or horizontally as necessary and reveal a position centered vertically only if it lies outside the viewport. + */ + revealPositionInCenterIfOutsideViewport(position: IPosition): void; + /** + * Returns the primary selection of the editor. + */ + getSelection(): Selection; + /** + * Returns all the selections of the editor. + */ + getSelections(): Selection[]; + /** + * Set the primary selection of the editor. This will remove any secondary cursors. + * @param selection The new selection + */ + setSelection(selection: IRange): void; + /** + * Set the primary selection of the editor. This will remove any secondary cursors. + * @param selection The new selection + */ + setSelection(selection: Range): void; + /** + * Set the primary selection of the editor. This will remove any secondary cursors. + * @param selection The new selection + */ + setSelection(selection: ISelection): void; + /** + * Set the primary selection of the editor. This will remove any secondary cursors. + * @param selection The new selection + */ + setSelection(selection: Selection): void; + /** + * Set the selections for all the cursors of the editor. + * Cursors will be removed or added, as necessary. + */ + setSelections(selections: ISelection[]): void; + /** + * Scroll vertically as necessary and reveal lines. + */ + revealLines(startLineNumber: number, endLineNumber: number): void; + /** + * Scroll vertically as necessary and reveal lines centered vertically. + */ + revealLinesInCenter(lineNumber: number, endLineNumber: number): void; + /** + * Scroll vertically as necessary and reveal lines centered vertically only if it lies outside the viewport. + */ + revealLinesInCenterIfOutsideViewport(lineNumber: number, endLineNumber: number): void; + /** + * Scroll vertically or horizontally as necessary and reveal a range. + */ + revealRange(range: IRange): void; + /** + * Scroll vertically or horizontally as necessary and reveal a range centered vertically. + */ + revealRangeInCenter(range: IRange): void; + /** + * Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport. + */ + revealRangeInCenterIfOutsideViewport(range: IRange): void; + /** + * Directly trigger a handler or an editor action. + * @param source The source of the call. + * @param handlerId The id of the handler or the id of a contribution. + * @param payload Extra data to be sent to the handler. + */ + trigger(source: string, handlerId: string, payload: any): void; + /** + * Gets the current model attached to this editor. + */ + getModel(): IEditorModel; + /** + * Sets the current model attached to this editor. + * If the previous model was created by the editor via the value key in the options + * literal object, it will be destroyed. Otherwise, if the previous model was set + * via setModel, or the model key in the options literal object, the previous model + * will not be destroyed. + * It is safe to call setModel(null) to simply detach the current model from the editor. + */ + setModel(model: IEditorModel): void; + } + + /** + * An editor contribution that gets created every time a new editor gets created and gets disposed when the editor gets disposed. + */ + export interface IEditorContribution { + /** + * Get a unique identifier for this contribution. + */ + getId(): string; + /** + * Dispose this contribution. + */ + dispose(): void; + /** + * Store view state. + */ + saveViewState?(): any; + /** + * Restore view state. + */ + restoreViewState?(state: any): void; + } + + export interface ICommonCodeEditor extends IEditor { + /** + * An event emitted when the model of this editor has changed (e.g. `editor.setModel()`). + * @event + */ + onDidChangeModel(listener: (e: IModelChangedEvent) => void): IDisposable; + /** + * An event emitted when the decorations of the current model have changed. + * @event + */ + onDidChangeModelDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; + /** + * An event emitted when the text inside this editor gained focus (i.e. cursor blinking). + * @event + */ + onDidFocusEditorText(listener: () => void): IDisposable; + /** + * An event emitted when the text inside this editor lost focus. + * @event + */ + onDidBlurEditorText(listener: () => void): IDisposable; + /** + * An event emitted when the text inside this editor or an editor widget gained focus. + * @event + */ + onDidFocusEditor(listener: () => void): IDisposable; + /** + * An event emitted when the text inside this editor or an editor widget lost focus. + * @event + */ + onDidBlurEditor(listener: () => void): IDisposable; + /** + * Returns true if this editor or one of its widgets has keyboard focus. + */ + hasWidgetFocus(): boolean; + /** + * Get a contribution of this editor. + * @id Unique identifier of the contribution. + * @return The contribution or null if contribution not found. + */ + getContribution(id: string): T; + /** + * Type the getModel() of IEditor. + */ + getModel(): IModel; + /** + * Returns the current editor's configuration + */ + getConfiguration(): InternalEditorOptions; + /** + * Get value of the current model attached to this editor. + * @see IModel.getValue + */ + getValue(options?: { + preserveBOM: boolean; + lineEnding: string; + }): string; + /** + * Set the value of the current model attached to this editor. + * @see IModel.setValue + */ + setValue(newValue: string): void; + /** + * Get the scrollWidth of the editor's viewport. + */ + getScrollWidth(): number; + /** + * Get the scrollLeft of the editor's viewport. + */ + getScrollLeft(): number; + /** + * Get the scrollHeight of the editor's viewport. + */ + getScrollHeight(): number; + /** + * Get the scrollTop of the editor's viewport. + */ + getScrollTop(): number; + /** + * Change the scrollLeft of the editor's viewport. + */ + setScrollLeft(newScrollLeft: number): void; + /** + * Change the scrollTop of the editor's viewport. + */ + setScrollTop(newScrollTop: number): void; + /** + * Change the scroll position of the editor's viewport. + */ + setScrollPosition(position: INewScrollPosition): void; + /** + * Get an action that is a contribution to this editor. + * @id Unique identifier of the contribution. + * @return The action or null if action not found. + */ + getAction(id: string): IEditorAction; + /** + * Execute a command on the editor. + * @param source The source of the call. + * @param command The command to execute + */ + executeCommand(source: string, command: ICommand): void; + /** + * Push an "undo stop" in the undo-redo stack. + */ + pushUndoStop(): boolean; + /** + * Execute a command on the editor. + * @param source The source of the call. + * @param command The command to execute + */ + executeEdits(source: string, edits: IIdentifiedSingleEditOperation[]): boolean; + /** + * Execute multiple (concommitent) commands on the editor. + * @param source The source of the call. + * @param command The commands to execute + */ + executeCommands(source: string, commands: ICommand[]): void; + /** + * Get all the decorations on a line (filtering out decorations from other editors). + */ + getLineDecorations(lineNumber: number): IModelDecoration[]; + /** + * All decorations added through this call will get the ownerId of this editor. + * @see IModel.deltaDecorations + */ + deltaDecorations(oldDecorations: string[], newDecorations: IModelDeltaDecoration[]): string[]; + /** + * Get the layout info for the editor. + */ + getLayoutInfo(): EditorLayoutInfo; + } + + export interface ICommonDiffEditor extends IEditor { + /** + * An event emitted when the diff information computed by this diff editor has been updated. + * @event + */ + onDidUpdateDiff(listener: () => void): IDisposable; + /** + * Type the getModel() of IEditor. + */ + getModel(): IDiffEditorModel; + /** + * Get the `original` editor. + */ + getOriginalEditor(): ICommonCodeEditor; + /** + * Get the `modified` editor. + */ + getModifiedEditor(): ICommonCodeEditor; + /** + * Get the computed diff information. + */ + getLineChanges(): ILineChange[]; + /** + * @see ICodeEditor.getValue + */ + getValue(options?: { + preserveBOM: boolean; + lineEnding: string; + }): string; + } + + /** + * The type of the `IEditor`. + */ + export var EditorType: { + ICodeEditor: string; + IDiffEditor: string; + }; + + /** + * Positions in the view for cursor move command. + */ + export const CursorMovePosition: { + Left: string; + Right: string; + Up: string; + Down: string; + WrappedLineStart: string; + WrappedLineFirstNonWhitespaceCharacter: string; + WrappedLineColumnCenter: string; + WrappedLineEnd: string; + WrappedLineLastNonWhitespaceCharacter: string; + ViewPortTop: string; + ViewPortCenter: string; + ViewPortBottom: string; + ViewPortIfOutside: string; + }; + + /** + * Units for Cursor move 'by' argument + */ + export const CursorMoveByUnit: { + Line: string; + WrappedLine: string; + Character: string; + HalfLine: string; + }; + + /** + * Arguments for Cursor move command + */ + export interface CursorMoveArguments { + to: string; + select?: boolean; + by?: string; + value?: number; + } + + /** + * Directions in the view for editor scroll command. + */ + export const EditorScrollDirection: { + Up: string; + Down: string; + }; + + /** + * Units for editor scroll 'by' argument + */ + export const EditorScrollByUnit: { + Line: string; + WrappedLine: string; + Page: string; + HalfPage: string; + }; + + /** + * Arguments for editor scroll command + */ + export interface EditorScrollArguments { + to: string; + by?: string; + value?: number; + revealCursor?: boolean; + } + + /** + * Arguments for reveal line command + */ + export interface RevealLineArguments { + lineNumber?: number; + at?: string; + } + + /** + * Values for reveal line 'at' argument + */ + export const RevealLineAtArgument: { + Top: string; + Center: string; + Bottom: string; + }; + + /** + * Built-in commands. + */ + export var Handler: { + ExecuteCommand: string; + ExecuteCommands: string; + CursorLeft: string; + CursorLeftSelect: string; + CursorWordLeft: string; + CursorWordStartLeft: string; + CursorWordEndLeft: string; + CursorWordLeftSelect: string; + CursorWordStartLeftSelect: string; + CursorWordEndLeftSelect: string; + CursorRight: string; + CursorRightSelect: string; + CursorWordRight: string; + CursorWordStartRight: string; + CursorWordEndRight: string; + CursorWordRightSelect: string; + CursorWordStartRightSelect: string; + CursorWordEndRightSelect: string; + CursorUp: string; + CursorUpSelect: string; + CursorDown: string; + CursorDownSelect: string; + CursorPageUp: string; + CursorPageUpSelect: string; + CursorPageDown: string; + CursorPageDownSelect: string; + CursorHome: string; + CursorHomeSelect: string; + CursorEnd: string; + CursorEndSelect: string; + ExpandLineSelection: string; + CursorTop: string; + CursorTopSelect: string; + CursorBottom: string; + CursorBottomSelect: string; + CursorColumnSelectLeft: string; + CursorColumnSelectRight: string; + CursorColumnSelectUp: string; + CursorColumnSelectPageUp: string; + CursorColumnSelectDown: string; + CursorColumnSelectPageDown: string; + CursorMove: string; + AddCursorDown: string; + AddCursorUp: string; + CursorUndo: string; + MoveTo: string; + MoveToSelect: string; + ColumnSelect: string; + CreateCursor: string; + LastCursorMoveToSelect: string; + JumpToBracket: string; + Type: string; + ReplacePreviousChar: string; + CompositionStart: string; + CompositionEnd: string; + Paste: string; + Tab: string; + Indent: string; + Outdent: string; + DeleteLeft: string; + DeleteRight: string; + DeleteWordLeft: string; + DeleteWordStartLeft: string; + DeleteWordEndLeft: string; + DeleteWordRight: string; + DeleteWordStartRight: string; + DeleteWordEndRight: string; + DeleteAllLeft: string; + DeleteAllRight: string; + RemoveSecondaryCursors: string; + CancelSelection: string; + Cut: string; + Undo: string; + Redo: string; + WordSelect: string; + WordSelectDrag: string; + LastCursorWordSelect: string; + LineSelect: string; + LineSelectDrag: string; + LastCursorLineSelect: string; + LastCursorLineSelectDrag: string; + LineInsertBefore: string; + LineInsertAfter: string; + LineBreakInsert: string; + SelectAll: string; + EditorScroll: string; + ScrollLineUp: string; + ScrollLineDown: string; + ScrollPageUp: string; + ScrollPageDown: string; + RevealLine: string; + }; + + /** + * The style in which the editor's cursor should be rendered. + */ + export enum TextEditorCursorStyle { + /** + * As a vertical line (sitting between two characters). + */ + Line = 1, + /** + * As a block (sitting on top of a character). + */ + Block = 2, + /** + * As a horizontal line (sitting under a character). + */ + Underline = 3, + } + + /** + * The kind of animation in which the editor's cursor should be rendered. + */ + export enum TextEditorCursorBlinkingStyle { + /** + * Hidden + */ + Hidden = 0, + /** + * Blinking + */ + Blink = 1, + /** + * Blinking with smooth fading + */ + Smooth = 2, + /** + * Blinking with prolonged filled state and smooth fading + */ + Phase = 3, + /** + * Expand collapse animation on the y axis + */ + Expand = 4, + /** + * No-Blinking + */ + Solid = 5, + } + + /** + * A view zone is a full horizontal rectangle that 'pushes' text down. + * The editor reserves space for view zones when rendering. + */ + export interface IViewZone { + /** + * The line number after which this zone should appear. + * Use 0 to place a view zone before the first line number. + */ + afterLineNumber: number; + /** + * The column after which this zone should appear. + * If not set, the maxLineColumn of `afterLineNumber` will be used. + */ + afterColumn?: number; + /** + * Suppress mouse down events. + * If set, the editor will attach a mouse down listener to the view zone and .preventDefault on it. + * Defaults to false + */ + suppressMouseDown?: boolean; + /** + * The height in lines of the view zone. + * If specified, `heightInPx` will be used instead of this. + * If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen. + */ + heightInLines?: number; + /** + * The height in px of the view zone. + * If this is set, the editor will give preference to it rather than `heightInLines` above. + * If neither `heightInPx` nor `heightInLines` is specified, a default of `heightInLines` = 1 will be chosen. + */ + heightInPx?: number; + /** + * The dom node of the view zone + */ + domNode: HTMLElement; + /** + * Callback which gives the relative top of the view zone as it appears (taking scrolling into account). + */ + onDomNodeTop?: (top: number) => void; + /** + * Callback which gives the height in pixels of the view zone. + */ + onComputedHeight?: (height: number) => void; + } + + /** + * An accessor that allows for zones to be added or removed. + */ + export interface IViewZoneChangeAccessor { + /** + * Create a new view zone. + * @param zone Zone to create + * @return A unique identifier to the view zone. + */ + addZone(zone: IViewZone): number; + /** + * Remove a zone + * @param id A unique identifier to the view zone, as returned by the `addZone` call. + */ + removeZone(id: number): void; + /** + * Change a zone's position. + * The editor will rescan the `afterLineNumber` and `afterColumn` properties of a view zone. + */ + layoutZone(id: number): void; + } + + /** + * A positioning preference for rendering content widgets. + */ + export enum ContentWidgetPositionPreference { + /** + * Place the content widget exactly at a position + */ + EXACT = 0, + /** + * Place the content widget above a position + */ + ABOVE = 1, + /** + * Place the content widget below a position + */ + BELOW = 2, + } + + /** + * A position for rendering content widgets. + */ + export interface IContentWidgetPosition { + /** + * Desired position for the content widget. + * `preference` will also affect the placement. + */ + position: IPosition; + /** + * Placement preference for position, in order of preference. + */ + preference: ContentWidgetPositionPreference[]; + } + + /** + * A content widget renders inline with the text and can be easily placed 'near' an editor position. + */ + export interface IContentWidget { + /** + * Render this content widget in a location where it could overflow the editor's view dom node. + */ + allowEditorOverflow?: boolean; + suppressMouseDown?: boolean; + /** + * Get a unique identifier of the content widget. + */ + getId(): string; + /** + * Get the dom node of the content widget. + */ + getDomNode(): HTMLElement; + /** + * Get the placement of the content widget. + * If null is returned, the content widget will be placed off screen. + */ + getPosition(): IContentWidgetPosition; + } + + /** + * A positioning preference for rendering overlay widgets. + */ + export enum OverlayWidgetPositionPreference { + /** + * Position the overlay widget in the top right corner + */ + TOP_RIGHT_CORNER = 0, + /** + * Position the overlay widget in the bottom right corner + */ + BOTTOM_RIGHT_CORNER = 1, + /** + * Position the overlay widget in the top center + */ + TOP_CENTER = 2, + } + + /** + * A position for rendering overlay widgets. + */ + export interface IOverlayWidgetPosition { + /** + * The position preference for the overlay widget. + */ + preference: OverlayWidgetPositionPreference; + } + + /** + * An overlay widgets renders on top of the text. + */ + export interface IOverlayWidget { + /** + * Get a unique identifier of the overlay widget. + */ + getId(): string; + /** + * Get the dom node of the overlay widget. + */ + getDomNode(): HTMLElement; + /** + * Get the placement of the overlay widget. + * If null is returned, the overlay widget is responsible to place itself. + */ + getPosition(): IOverlayWidgetPosition; + } + + /** + * Target hit with the mouse in the editor. + */ + export interface IMouseTarget { + /** + * The target element + */ + readonly element: Element; + /** + * The target type + */ + readonly type: MouseTargetType; + /** + * The 'approximate' editor position + */ + readonly position: Position; + /** + * Desired mouse column (e.g. when position.column gets clamped to text length -- clicking after text on a line). + */ + readonly mouseColumn: number; + /** + * The 'approximate' editor range + */ + readonly range: Range; + /** + * Some extra detail. + */ + readonly detail: any; + } + + /** + * A mouse event originating from the editor. + */ + export interface IEditorMouseEvent { + readonly event: IMouseEvent; + readonly target: IMouseTarget; + } + + /** + * A rich code editor. + */ + export interface ICodeEditor extends ICommonCodeEditor { + /** + * An event emitted on a "mouseup". + * @event + */ + onMouseUp(listener: (e: IEditorMouseEvent) => void): IDisposable; + /** + * An event emitted on a "mousedown". + * @event + */ + onMouseDown(listener: (e: IEditorMouseEvent) => void): IDisposable; + /** + * An event emitted on a "contextmenu". + * @event + */ + onContextMenu(listener: (e: IEditorMouseEvent) => void): IDisposable; + /** + * An event emitted on a "mousemove". + * @event + */ + onMouseMove(listener: (e: IEditorMouseEvent) => void): IDisposable; + /** + * An event emitted on a "mouseleave". + * @event + */ + onMouseLeave(listener: (e: IEditorMouseEvent) => void): IDisposable; + /** + * An event emitted on a "keyup". + * @event + */ + onKeyUp(listener: (e: IKeyboardEvent) => void): IDisposable; + /** + * An event emitted on a "keydown". + * @event + */ + onKeyDown(listener: (e: IKeyboardEvent) => void): IDisposable; + /** + * An event emitted when the layout of the editor has changed. + * @event + */ + onDidLayoutChange(listener: (e: EditorLayoutInfo) => void): IDisposable; + /** + * An event emitted when the scroll in the editor has changed. + * @event + */ + onDidScrollChange(listener: (e: IScrollEvent) => void): IDisposable; + /** + * Returns the editor's dom node + */ + getDomNode(): HTMLElement; + /** + * Add a content widget. Widgets must have unique ids, otherwise they will be overwritten. + */ + addContentWidget(widget: IContentWidget): void; + /** + * Layout/Reposition a content widget. This is a ping to the editor to call widget.getPosition() + * and update appropiately. + */ + layoutContentWidget(widget: IContentWidget): void; + /** + * Remove a content widget. + */ + removeContentWidget(widget: IContentWidget): void; + /** + * Add an overlay widget. Widgets must have unique ids, otherwise they will be overwritten. + */ + addOverlayWidget(widget: IOverlayWidget): void; + /** + * Layout/Reposition an overlay widget. This is a ping to the editor to call widget.getPosition() + * and update appropiately. + */ + layoutOverlayWidget(widget: IOverlayWidget): void; + /** + * Remove an overlay widget. + */ + removeOverlayWidget(widget: IOverlayWidget): void; + /** + * Change the view zones. View zones are lost when a new model is attached to the editor. + */ + changeViewZones(callback: (accessor: IViewZoneChangeAccessor) => void): void; + /** + * Returns the range that is currently centered in the view port. + */ + getCenteredRangeInViewport(): Range; + /** + * Get the horizontal position (left offset) for the column w.r.t to the beginning of the line. + * This method works only if the line `lineNumber` is currently rendered (in the editor's viewport). + * Use this method with caution. + */ + getOffsetForColumn(lineNumber: number, column: number): number; + /** + * Force an editor render now. + */ + render(): void; + /** + * Get the vertical position (top offset) for the line w.r.t. to the first line. + */ + getTopForLineNumber(lineNumber: number): number; + /** + * Get the vertical position (top offset) for the position w.r.t. to the first line. + */ + getTopForPosition(lineNumber: number, column: number): number; + /** + * Get the visible position for `position`. + * The result position takes scrolling into account and is relative to the top left corner of the editor. + * Explanation 1: the results of this method will change for the same `position` if the user scrolls the editor. + * Explanation 2: the results of this method will not change if the container of the editor gets repositioned. + * Warning: the results of this method are innacurate for positions that are outside the current editor viewport. + */ + getScrolledVisiblePosition(position: IPosition): { + top: number; + left: number; + height: number; + }; + /** + * Apply the same font settings as the editor to `target`. + */ + applyFontInfo(target: HTMLElement): void; + } + + /** + * A rich diff editor. + */ + export interface IDiffEditor extends ICommonDiffEditor { + /** + * @see ICodeEditor.getDomNode + */ + getDomNode(): HTMLElement; + } } declare module monaco.languages { -/** -* Register information about a new language. -*/ -export function register(language: ILanguageExtensionPoint): void; - -/** -* Get the information of all the registered languages. -*/ -export function getLanguages(): ILanguageExtensionPoint[]; - -/** -* An event emitted when a language is first time needed (e.g. a model has it set). -* @event -*/ -export function onLanguage(languageId: string,callback: () => void): IDisposable; - -/** -* Set the editing configuration for a language. -*/ -export function setLanguageConfiguration(languageId: string,configuration: LanguageConfiguration): IDisposable; - -/** -* Set the tokens provider for a language (manual implementation). -*/ -export function setTokensProvider(languageId: string,provider: TokensProvider): IDisposable; - -/** -* Set the tokens provider for a language (monarch implementation). -*/ -export function setMonarchTokensProvider(languageId: string,languageDef: IMonarchLanguage): IDisposable; - -/** -* Register a reference provider (used by e.g. reference search). -*/ -export function registerReferenceProvider(languageId: string,provider: ReferenceProvider): IDisposable; - -/** -* Register a rename provider (used by e.g. rename symbol). -*/ -export function registerRenameProvider(languageId: string,provider: RenameProvider): IDisposable; - -/** -* Register a signature help provider (used by e.g. paremeter hints). -*/ -export function registerSignatureHelpProvider(languageId: string,provider: SignatureHelpProvider): IDisposable; - -/** -* Register a hover provider (used by e.g. editor hover). -*/ -export function registerHoverProvider(languageId: string,provider: HoverProvider): IDisposable; - -/** -* Register a document symbol provider (used by e.g. outline). -*/ -export function registerDocumentSymbolProvider(languageId: string,provider: DocumentSymbolProvider): IDisposable; - -/** -* Register a document highlight provider (used by e.g. highlight occurences). -*/ -export function registerDocumentHighlightProvider(languageId: string,provider: DocumentHighlightProvider): IDisposable; - -/** -* Register a definition provider (used by e.g. go to definition). -*/ -export function registerDefinitionProvider(languageId: string,provider: DefinitionProvider): IDisposable; - -/** -* Register a code lens provider (used by e.g. inline code lenses). -*/ -export function registerCodeLensProvider(languageId: string,provider: CodeLensProvider): IDisposable; - -/** -* Register a code action provider (used by e.g. quick fix). -*/ -export function registerCodeActionProvider(languageId: string,provider: CodeActionProvider): IDisposable; - -/** -* Register a formatter that can handle only entire models. -*/ -export function registerDocumentFormattingEditProvider(languageId: string,provider: DocumentFormattingEditProvider): IDisposable; - -/** -* Register a formatter that can handle a range inside a model. -*/ -export function registerDocumentRangeFormattingEditProvider(languageId: string,provider: DocumentRangeFormattingEditProvider): IDisposable; - -/** -* Register a formatter than can do formatting as the user types. -*/ -export function registerOnTypeFormattingEditProvider(languageId: string,provider: OnTypeFormattingEditProvider): IDisposable; - -/** -* Register a link provider that can find links in text. -*/ -export function registerLinkProvider(languageId: string,provider: LinkProvider): IDisposable; - -/** -* Register a completion item provider (use by e.g. suggestions). -*/ -export function registerCompletionItemProvider(languageId: string,provider: CompletionItemProvider): IDisposable; - -/** -* Contains additional diagnostic information about the context in which -* a [code action](#CodeActionProvider.provideCodeActions) is run. -*/ -export interface CodeActionContext { -/** -* An array of diagnostics. -* -* @readonly -*/ -readonly markers: editor.IMarkerData[]; -} - -/** -* The code action interface defines the contract between extensions and -* the [light bulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature. -*/ -export interface CodeActionProvider { -/** -* Provide commands for the given document and range. -*/ -provideCodeActions(model: editor.IReadOnlyModel,range: Range,context: CodeActionContext,token: CancellationToken): CodeAction[]|Thenable; -} - -/** -* Completion item kinds. -*/ -export enum CompletionItemKind { -Text=0, -Method=1, -Function=2, -Constructor=3, -Field=4, -Variable=5, -Class=6, -Interface=7, -Module=8, -Property=9, -Unit=10, -Value=11, -Enum=12, -Keyword=13, -Snippet=14, -Color=15, -File=16, -Reference=17, -} - -/** -* A completion item represents a text snippet that is -* proposed to complete text that is being typed. -*/ -export interface CompletionItem { -/** -* The label of this completion item. By default -* this is also the text that is inserted when selecting -* this completion. -*/ -label: string; -/** -* The kind of this completion item. Based on the kind -* an icon is chosen by the editor. -*/ -kind: CompletionItemKind; -/** -* A human-readable string with additional information -* about this item, like type or symbol information. -*/ -detail?: string; -/** -* A human-readable string that represents a doc-comment. -*/ -documentation?: string; -/** -* A string that should be used when comparing this item -* with other items. When `falsy` the [label](#CompletionItem.label) -* is used. -*/ -sortText?: string; -/** -* A string that should be used when filtering a set of -* completion items. When `falsy` the [label](#CompletionItem.label) -* is used. -*/ -filterText?: string; -/** -* A string that should be inserted in a document when selecting -* this completion. When `falsy` the [label](#CompletionItem.label) -* is used. -*/ -insertText?: string; -/** -* An [edit](#TextEdit) which is applied to a document when selecting -* this completion. When an edit is provided the value of -* [insertText](#CompletionItem.insertText) is ignored. -* -* The [range](#Range) of the edit must be single-line and one the same -* line completions where [requested](#CompletionItemProvider.provideCompletionItems) at. -*/ -textEdit?: editor.ISingleEditOperation; -} - -/** -* Represents a collection of [completion items](#CompletionItem) to be presented -* in the editor. -*/ -export interface CompletionList { -/** -* This list it not complete. Further typing should result in recomputing -* this list. -*/ -isIncomplete?: boolean; -/** -* The completion items. -*/ -items: CompletionItem[]; -} - -/** -* The completion item provider interface defines the contract between extensions and -* the [IntelliSense](https://code.visualstudio.com/docs/editor/editingevolved#_intellisense). -* -* When computing *complete* completion items is expensive, providers can optionally implement -* the `resolveCompletionItem`-function. In that case it is enough to return completion -* items with a [label](#CompletionItem.label) from the -* [provideCompletionItems](#CompletionItemProvider.provideCompletionItems)-function. Subsequently, -* when a completion item is shown in the UI and gains focus this provider is asked to resolve -* the item, like adding [doc-comment](#CompletionItem.documentation) or [details](#CompletionItem.detail). -*/ -export interface CompletionItemProvider { -triggerCharacters?: string[]; -/** -* Provide completion items for the given position and document. -*/ -provideCompletionItems(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): CompletionItem[]|Thenable|CompletionList|Thenable; -/** -* Given a completion item fill in more data, like [doc-comment](#CompletionItem.documentation) -* or [details](#CompletionItem.detail). -* -* The editor will only resolve a completion item once. -*/ -resolveCompletionItem?(item: CompletionItem,token: CancellationToken): CompletionItem|Thenable; -} - -/** -* Describes how comments for a language work. -*/ -export interface CommentRule { -/** -* The line comment token, like `// this is a comment` -*/ -lineComment?: string; -/** -* The block comment character pair, like `/* block comment */` -*/ -blockComment?: CharacterPair; -} - -/** -* The language configuration interface defines the contract between extensions and -* various editor features, like automatic bracket insertion, automatic indentation etc. -*/ -export interface LanguageConfiguration { -/** -* The language's comment settings. -*/ -comments?: CommentRule; -/** -* The language's brackets. -* This configuration implicitly affects pressing Enter around these brackets. -*/ -brackets?: CharacterPair[]; -/** -* The language's word definition. -* If the language supports Unicode identifiers (e.g. JavaScript), it is preferable -* to provide a word definition that uses exclusion of known separators. -* e.g.: A regex that matches anything except known separators (and dot is allowed to occur in a floating point number): -* /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g -*/ -wordPattern?: RegExp; -/** -* The language's indentation settings. -*/ -indentationRules?: IndentationRule; -/** -* The language's rules to be evaluated when pressing Enter. -*/ -onEnterRules?: OnEnterRule[]; -/** -* The language's auto closing pairs. The 'close' character is automatically inserted with the -* 'open' character is typed. If not set, the configured brackets will be used. -*/ -autoClosingPairs?: IAutoClosingPairConditional[]; -/** -* The language's surrounding pairs. When the 'open' character is typed on a selection, the -* selected string is surrounded by the open and close characters. If not set, the autoclosing pairs -* settings will be used. -*/ -surroundingPairs?: IAutoClosingPair[]; -/** -* **Deprecated** Do not use. -* -* @deprecated Will be replaced by a better API soon. -*/ -__electricCharacterSupport?: IBracketElectricCharacterContribution; -} - -/** -* Describes indentation rules for a language. -*/ -export interface IndentationRule { -/** -* If a line matches this pattern, then all the lines after it should be unindendented once (until another rule matches). -*/ -decreaseIndentPattern: RegExp; -/** -* If a line matches this pattern, then all the lines after it should be indented once (until another rule matches). -*/ -increaseIndentPattern: RegExp; -/** -* If a line matches this pattern, then **only the next line** after it should be indented once. -*/ -indentNextLinePattern?: RegExp; -/** -* If a line matches this pattern, then its indentation should not be changed and it should not be evaluated against the other rules. -*/ -unIndentedLinePattern?: RegExp; -} - -/** -* Describes a rule to be evaluated when pressing Enter. -*/ -export interface OnEnterRule { -/** -* This rule will only execute if the text before the cursor matches this regular expression. -*/ -beforeText: RegExp; -/** -* This rule will only execute if the text after the cursor matches this regular expression. -*/ -afterText?: RegExp; -/** -* The action to execute. -*/ -action: EnterAction; -} - -export interface IBracketElectricCharacterContribution { -docComment?: IDocComment; -embeddedElectricCharacters?: string[]; -} - -/** -* Definition of documentation comments (e.g. Javadoc/JSdoc) -*/ -export interface IDocComment { -scope: string; -open: string; -lineStart: string; -close?: string; -} - -/** -* A mode. Will soon be obsolete. -*/ -export interface IMode { -getId(): string; -} - -/** -* A token. Only supports a single scope, but will soon support a scope array. -*/ -export interface IToken { -startIndex: number; -scopes: string|string[]; -} - -/** -* The result of a line tokenization. -*/ -export interface ILineTokens { -/** -* The list of tokens on the line. -*/ -tokens: IToken[]; -/** -* The tokenization end state. -* A pointer will be held to this and the object should not be modified by the tokenizer after the pointer is returned. -*/ -endState: IState; -/** -* An optional promise to force the model to retokenize this line (e.g. missing information at the point of tokenization) -*/ -retokenize?: Promise; -} - -/** -* The state of the tokenizer between two lines. -* It is useful to store flags such as in multiline comment, etc. -* The model will clone the previous line's state and pass it in to tokenize the next line. -*/ -export interface IState { -clone(): IState; -equals(other: IState): boolean; -} - -/** -* A "manual" provider of tokens. -*/ -export interface TokensProvider { -/** -* The initial state of a language. Will be the state passed in to tokenize the first line. -*/ -getInitialState(): IState; -/** -* Tokenize a line given the state at the beginning of the line. -*/ -tokenize(line: string,state: IState): ILineTokens; -} - -/** -* A hover represents additional information for a symbol or word. Hovers are -* rendered in a tooltip-like widget. -*/ -export interface Hover { -/** -* The contents of this hover. -*/ -contents: MarkedString[]; -/** -* The range to which this hover applies. When missing, the -* editor will use the range at the current position or the -* current position itself. -*/ -range: IRange; -} - -/** -* The hover provider interface defines the contract between extensions and -* the [hover](https://code.visualstudio.com/docs/editor/editingevolved#_hover)-feature. -*/ -export interface HoverProvider { -/** -* Provide a hover for the given position and document. Multiple hovers at the same -* position will be merged by the editor. A hover can have a range which defaults -* to the word range at the position when omitted. -*/ -provideHover(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): Hover|Thenable; -} - -/** -* Interface used to quick fix typing errors while accesing member fields. -*/ -export interface CodeAction { -command: Command; -score: number; -} - -/** -* Represents a parameter of a callable-signature. A parameter can -* have a label and a doc-comment. -*/ -export interface ParameterInformation { -/** -* The label of this signature. Will be shown in -* the UI. -*/ -label: string; -/** -* The human-readable doc-comment of this signature. Will be shown -* in the UI but can be omitted. -*/ -documentation: string; -} - -/** -* Represents the signature of something callable. A signature -* can have a label, like a function-name, a doc-comment, and -* a set of parameters. -*/ -export interface SignatureInformation { -/** -* The label of this signature. Will be shown in -* the UI. -*/ -label: string; -/** -* The human-readable doc-comment of this signature. Will be shown -* in the UI but can be omitted. -*/ -documentation: string; -/** -* The parameters of this signature. -*/ -parameters: ParameterInformation[]; -} - -/** -* Signature help represents the signature of something -* callable. There can be multiple signatures but only one -* active and only one active parameter. -*/ -export interface SignatureHelp { -/** -* One or more signatures. -*/ -signatures: SignatureInformation[]; -/** -* The active signature. -*/ -activeSignature: number; -/** -* The active parameter of the active signature. -*/ -activeParameter: number; -} - -/** -* The signature help provider interface defines the contract between extensions and -* the [parameter hints](https://code.visualstudio.com/docs/editor/editingevolved#_parameter-hints)-feature. -*/ -export interface SignatureHelpProvider { -signatureHelpTriggerCharacters: string[]; -/** -* Provide help for the signature at the given position and document. -*/ -provideSignatureHelp(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): SignatureHelp|Thenable; -} - -/** -* A document highlight kind. -*/ -export enum DocumentHighlightKind { -/** -* A textual occurrence. -*/ -Text=0, -/** -* Read-access of a symbol, like reading a variable. -*/ -Read=1, -/** -* Write-access of a symbol, like writing to a variable. -*/ -Write=2, -} - -/** -* A document highlight is a range inside a text document which deserves -* special attention. Usually a document highlight is visualized by changing -* the background color of its range. -*/ -export interface DocumentHighlight { -/** -* The range this highlight applies to. -*/ -range: IRange; -/** -* The highlight kind, default is [text](#DocumentHighlightKind.Text). -*/ -kind: DocumentHighlightKind; -} - -/** -* The document highlight provider interface defines the contract between extensions and -* the word-highlight-feature. -*/ -export interface DocumentHighlightProvider { -/** -* Provide a set of document highlights, like all occurrences of a variable or -* all exit-points of a function. -*/ -provideDocumentHighlights(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): DocumentHighlight[]|Thenable; -} - -/** -* Value-object that contains additional information when -* requesting references. -*/ -export interface ReferenceContext { -/** -* Include the declaration of the current symbol. -*/ -includeDeclaration: boolean; -} - -/** -* The reference provider interface defines the contract between extensions and -* the [find references](https://code.visualstudio.com/docs/editor/editingevolved#_peek)-feature. -*/ -export interface ReferenceProvider { -/** -* Provide a set of project-wide references for the given position and document. -*/ -provideReferences(model: editor.IReadOnlyModel,position: Position,context: ReferenceContext,token: CancellationToken): Location[]|Thenable; -} - -/** -* Represents a location inside a resource, such as a line -* inside a text file. -*/ -export interface Location { -/** -* The resource identifier of this location. -*/ -uri: Uri; -/** -* The document range of this locations. -*/ -range: IRange; -} - -/** -* The definition of a symbol represented as one or many [locations](#Location). -* For most programming languages there is only one location at which a symbol is -* defined. -*/ -export type Definition=Location|Location[]; - -/** -* The definition provider interface defines the contract between extensions and -* the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition) -* and peek definition features. -*/ -export interface DefinitionProvider { -/** -* Provide the definition of the symbol at the given position and document. -*/ -provideDefinition(model: editor.IReadOnlyModel,position: Position,token: CancellationToken): Definition|Thenable; -} - -/** -* A symbol kind. -*/ -export enum SymbolKind { -File=0, -Module=1, -Namespace=2, -Package=3, -Class=4, -Method=5, -Property=6, -Field=7, -Constructor=8, -Enum=9, -Interface=10, -Function=11, -Variable=12, -Constant=13, -String=14, -Number=15, -Boolean=16, -Array=17, -Object=18, -Key=19, -Null=20, -} - -/** -* Represents information about programming constructs like variables, classes, -* interfaces etc. -*/ -export interface SymbolInformation { -/** -* The name of this symbol. -*/ -name: string; -/** -* The name of the symbol containing this symbol. -*/ -containerName?: string; -/** -* The kind of this symbol. -*/ -kind: SymbolKind; -/** -* The location of this symbol. -*/ -location: Location; -} - -/** -* The document symbol provider interface defines the contract between extensions and -* the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_goto-symbol)-feature. -*/ -export interface DocumentSymbolProvider { -/** -* Provide symbol information for the given document. -*/ -provideDocumentSymbols(model: editor.IReadOnlyModel,token: CancellationToken): SymbolInformation[]|Thenable; -} - -/** -* Interface used to format a model -*/ -export interface FormattingOptions { -/** -* Size of a tab in spaces. -*/ -tabSize: number; -/** -* Prefer spaces over tabs. -*/ -insertSpaces: boolean; -} - -/** -* The document formatting provider interface defines the contract between extensions and -* the formatting-feature. -*/ -export interface DocumentFormattingEditProvider { -/** -* Provide formatting edits for a whole document. -*/ -provideDocumentFormattingEdits(model: editor.IReadOnlyModel,options: FormattingOptions,token: CancellationToken): editor.ISingleEditOperation[]|Thenable; -} - -/** -* The document formatting provider interface defines the contract between extensions and -* the formatting-feature. -*/ -export interface DocumentRangeFormattingEditProvider { -/** -* Provide formatting edits for a range in a document. -* -* The given range is a hint and providers can decide to format a smaller -* or larger range. Often this is done by adjusting the start and end -* of the range to full syntax nodes. -*/ -provideDocumentRangeFormattingEdits(model: editor.IReadOnlyModel,range: Range,options: FormattingOptions,token: CancellationToken): editor.ISingleEditOperation[]|Thenable; -} - -/** -* The document formatting provider interface defines the contract between extensions and -* the formatting-feature. -*/ -export interface OnTypeFormattingEditProvider { -autoFormatTriggerCharacters: string[]; -/** -* Provide formatting edits after a character has been typed. -* -* The given position and character should hint to the provider -* what range the position to expand to, like find the matching `{` -* when `}` has been entered. -*/ -provideOnTypeFormattingEdits(model: editor.IReadOnlyModel,position: Position,ch: string,options: FormattingOptions,token: CancellationToken): editor.ISingleEditOperation[]|Thenable; -} - -/** -* A link inside the editor. -*/ -export interface ILink { -range: IRange; -url: string; -} - -/** -* A provider of links. -*/ -export interface LinkProvider { -provideLinks(model: editor.IReadOnlyModel,token: CancellationToken): ILink[]|Thenable; -resolveLink?: (link: ILink,token: CancellationToken) => ILink|Thenable; -} - -export interface IResourceEdit { -resource: Uri; -range: IRange; -newText: string; -} - -export interface WorkspaceEdit { -edits: IResourceEdit[]; -rejectReason?: string; -} - -export interface RenameProvider { -provideRenameEdits(model: editor.IReadOnlyModel,position: Position,newName: string,token: CancellationToken): WorkspaceEdit|Thenable; -} - -export interface Command { -id: string; -title: string; -arguments?: any[]; -} - -export interface ICodeLensSymbol { -range: IRange; -id?: string; -command?: Command; -} - -export interface CodeLensProvider { -provideCodeLenses(model: editor.IReadOnlyModel,token: CancellationToken): ICodeLensSymbol[]|Thenable; -resolveCodeLens?(model: editor.IReadOnlyModel,codeLens: ICodeLensSymbol,token: CancellationToken): ICodeLensSymbol|Thenable; -} - -/** -* A tuple of two characters, like a pair of -* opening and closing brackets. -*/ -export type CharacterPair=[string,string]; - -export interface IAutoClosingPairConditional extends IAutoClosingPair { -notIn?: string[]; -} - -/** -* Describes what to do with the indentation when pressing Enter. -*/ -export enum IndentAction { -/** -* Insert new line and copy the previous line's indentation. -*/ -None=0, -/** -* Insert new line and indent once (relative to the previous line's indentation). -*/ -Indent=1, -/** -* Insert two new lines: -* - the first one indented which will hold the cursor -* - the second one at the same indentation level -*/ -IndentOutdent=2, -/** -* Insert new line and outdent once (relative to the previous line's indentation). -*/ -Outdent=3, -} - -/** -* Describes what to do when pressing Enter. -*/ -export interface EnterAction { -/** -* Describe what to do with the indentation. -*/ -indentAction: IndentAction; -/** -* Describes text to be appended after the new line and after the indentation. -*/ -appendText?: string; -/** -* Describes the number of characters to remove from the new line's indentation. -*/ -removeText?: number; -} - -export interface IAutoClosingPair { -open: string; -close: string; -} - -export interface ILanguageExtensionPoint { -id: string; -extensions?: string[]; -filenames?: string[]; -filenamePatterns?: string[]; -firstLine?: string; -aliases?: string[]; -mimetypes?: string[]; -configuration?: string; -} -/** -* A Monarch language definition -*/ -export interface IMonarchLanguage { -/** -* map from string to ILanguageRule[] -*/ -tokenizer: { -[name: string]: IMonarchLanguageRule[]; -}; -/** -* is the language case insensitive? -*/ -ignoreCase?: boolean; -/** -* if no match in the tokenizer assign this token class (default 'source') -*/ -defaultToken?: string; -/** -* for example [['{','}','delimiter.curly']] -*/ -brackets?: IMonarchLanguageBracket[]; -/** -* start symbol in the tokenizer (by default the first entry is used) -*/ -start?: string; -/** -* attach this to every token class (by default '.' + name) -*/ -tokenPostfix: string; -} - -/** -* A rule is either a regular expression and an action -* shorthands: [reg,act] == { regex: reg, action: act} -* and : [reg,act,nxt] == { regex: reg, action: act{ next: nxt }} -*/ -export interface IMonarchLanguageRule { -/** -* match tokens -*/ -regex?: string|RegExp; -/** -* action to take on match -*/ -action?: IMonarchLanguageAction; -/** -* or an include rule. include all rules from the included state -*/ -include?: string; -} - -/** -* An action is either an array of actions... -* ... or a case statement with guards... -* ... or a basic action with a token value. -*/ -export interface IMonarchLanguageAction { -/** -* array of actions for each parenthesized match group -*/ -group?: IMonarchLanguageAction[]; -/** -* map from string to ILanguageAction -*/ -cases?: Object; -/** -* token class (ie. css class) (or "@brackets" or "@rematch") -*/ -token?: string; -/** -* the next state to push, or "@push", "@pop", "@popall" -*/ -next?: string; -/** -* switch to this state -*/ -switchTo?: string; -/** -* go back n characters in the stream -*/ -goBack?: number; -/** -* @open or @close -*/ -bracket?: string; -/** -* switch to embedded language (useing the mimetype) or get out using "@pop" -*/ -nextEmbedded?: string; -/** -* log a message to the browser console window -*/ -log?: string; -} - -/** -* This interface can be shortened as an array, ie. ['{','}','delimiter.curly'] -*/ -export interface IMonarchLanguageBracket { -/** -* open bracket -*/ -open: string; -/** -* closeing bracket -*/ -close: string; -/** -* token class -*/ -token: string; -} + /** + * Register information about a new language. + */ + export function register(language: ILanguageExtensionPoint): void; + + /** + * Get the information of all the registered languages. + */ + export function getLanguages(): ILanguageExtensionPoint[]; + + /** + * An event emitted when a language is first time needed (e.g. a model has it set). + * @event + */ + export function onLanguage(languageId: string, callback: () => void): IDisposable; + + /** + * Set the editing configuration for a language. + */ + export function setLanguageConfiguration(languageId: string, configuration: LanguageConfiguration): IDisposable; + + /** + * Set the tokens provider for a language (manual implementation). + */ + export function setTokensProvider(languageId: string, provider: TokensProvider): IDisposable; + + /** + * Set the tokens provider for a language (monarch implementation). + */ + export function setMonarchTokensProvider(languageId: string, languageDef: IMonarchLanguage): IDisposable; + + /** + * Register a reference provider (used by e.g. reference search). + */ + export function registerReferenceProvider(languageId: string, provider: ReferenceProvider): IDisposable; + + /** + * Register a rename provider (used by e.g. rename symbol). + */ + export function registerRenameProvider(languageId: string, provider: RenameProvider): IDisposable; + + /** + * Register a signature help provider (used by e.g. paremeter hints). + */ + export function registerSignatureHelpProvider(languageId: string, provider: SignatureHelpProvider): IDisposable; + + /** + * Register a hover provider (used by e.g. editor hover). + */ + export function registerHoverProvider(languageId: string, provider: HoverProvider): IDisposable; + + /** + * Register a document symbol provider (used by e.g. outline). + */ + export function registerDocumentSymbolProvider(languageId: string, provider: DocumentSymbolProvider): IDisposable; + + /** + * Register a document highlight provider (used by e.g. highlight occurences). + */ + export function registerDocumentHighlightProvider(languageId: string, provider: DocumentHighlightProvider): IDisposable; + + /** + * Register a definition provider (used by e.g. go to definition). + */ + export function registerDefinitionProvider(languageId: string, provider: DefinitionProvider): IDisposable; + + /** + * Register a code lens provider (used by e.g. inline code lenses). + */ + export function registerCodeLensProvider(languageId: string, provider: CodeLensProvider): IDisposable; + + /** + * Register a code action provider (used by e.g. quick fix). + */ + export function registerCodeActionProvider(languageId: string, provider: CodeActionProvider): IDisposable; + + /** + * Register a formatter that can handle only entire models. + */ + export function registerDocumentFormattingEditProvider(languageId: string, provider: DocumentFormattingEditProvider): IDisposable; + + /** + * Register a formatter that can handle a range inside a model. + */ + export function registerDocumentRangeFormattingEditProvider(languageId: string, provider: DocumentRangeFormattingEditProvider): IDisposable; + + /** + * Register a formatter than can do formatting as the user types. + */ + export function registerOnTypeFormattingEditProvider(languageId: string, provider: OnTypeFormattingEditProvider): IDisposable; + + /** + * Register a link provider that can find links in text. + */ + export function registerLinkProvider(languageId: string, provider: LinkProvider): IDisposable; + + /** + * Register a completion item provider (use by e.g. suggestions). + */ + export function registerCompletionItemProvider(languageId: string, provider: CompletionItemProvider): IDisposable; + + /** + * Contains additional diagnostic information about the context in which + * a [code action](#CodeActionProvider.provideCodeActions) is run. + */ + export interface CodeActionContext { + /** + * An array of diagnostics. + * + * @readonly + */ + readonly markers: editor.IMarkerData[]; + } + + /** + * The code action interface defines the contract between extensions and + * the [light bulb](https://code.visualstudio.com/docs/editor/editingevolved#_code-action) feature. + */ + export interface CodeActionProvider { + /** + * Provide commands for the given document and range. + */ + provideCodeActions(model: editor.IReadOnlyModel, range: Range, context: CodeActionContext, token: CancellationToken): CodeAction[] | Thenable; + } + + /** + * Completion item kinds. + */ + export enum CompletionItemKind { + Text = 0, + Method = 1, + Function = 2, + Constructor = 3, + Field = 4, + Variable = 5, + Class = 6, + Interface = 7, + Module = 8, + Property = 9, + Unit = 10, + Value = 11, + Enum = 12, + Keyword = 13, + Snippet = 14, + Color = 15, + File = 16, + Reference = 17, + } + + /** + * A completion item represents a text snippet that is + * proposed to complete text that is being typed. + */ + export interface CompletionItem { + /** + * The label of this completion item. By default + * this is also the text that is inserted when selecting + * this completion. + */ + label: string; + /** + * The kind of this completion item. Based on the kind + * an icon is chosen by the editor. + */ + kind: CompletionItemKind; + /** + * A human-readable string with additional information + * about this item, like type or symbol information. + */ + detail?: string; + /** + * A human-readable string that represents a doc-comment. + */ + documentation?: string; + /** + * A string that should be used when comparing this item + * with other items. When `falsy` the [label](#CompletionItem.label) + * is used. + */ + sortText?: string; + /** + * A string that should be used when filtering a set of + * completion items. When `falsy` the [label](#CompletionItem.label) + * is used. + */ + filterText?: string; + /** + * A string that should be inserted in a document when selecting + * this completion. When `falsy` the [label](#CompletionItem.label) + * is used. + */ + insertText?: string; + /** + * An [edit](#TextEdit) which is applied to a document when selecting + * this completion. When an edit is provided the value of + * [insertText](#CompletionItem.insertText) is ignored. + * + * The [range](#Range) of the edit must be single-line and one the same + * line completions where [requested](#CompletionItemProvider.provideCompletionItems) at. + */ + textEdit?: editor.ISingleEditOperation; + } + + /** + * Represents a collection of [completion items](#CompletionItem) to be presented + * in the editor. + */ + export interface CompletionList { + /** + * This list it not complete. Further typing should result in recomputing + * this list. + */ + isIncomplete?: boolean; + /** + * The completion items. + */ + items: CompletionItem[]; + } + + /** + * The completion item provider interface defines the contract between extensions and + * the [IntelliSense](https://code.visualstudio.com/docs/editor/editingevolved#_intellisense). + * + * When computing *complete* completion items is expensive, providers can optionally implement + * the `resolveCompletionItem`-function. In that case it is enough to return completion + * items with a [label](#CompletionItem.label) from the + * [provideCompletionItems](#CompletionItemProvider.provideCompletionItems)-function. Subsequently, + * when a completion item is shown in the UI and gains focus this provider is asked to resolve + * the item, like adding [doc-comment](#CompletionItem.documentation) or [details](#CompletionItem.detail). + */ + export interface CompletionItemProvider { + triggerCharacters?: string[]; + /** + * Provide completion items for the given position and document. + */ + provideCompletionItems(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): CompletionItem[] | Thenable | CompletionList | Thenable; + /** + * Given a completion item fill in more data, like [doc-comment](#CompletionItem.documentation) + * or [details](#CompletionItem.detail). + * + * The editor will only resolve a completion item once. + */ + resolveCompletionItem?(item: CompletionItem, token: CancellationToken): CompletionItem | Thenable; + } + + /** + * Describes how comments for a language work. + */ + export interface CommentRule { + /** + * The line comment token, like `// this is a comment` + */ + lineComment?: string; + /** + * The block comment character pair, like `/* block comment */` + */ + blockComment?: CharacterPair; + } + + /** + * The language configuration interface defines the contract between extensions and + * various editor features, like automatic bracket insertion, automatic indentation etc. + */ + export interface LanguageConfiguration { + /** + * The language's comment settings. + */ + comments?: CommentRule; + /** + * The language's brackets. + * This configuration implicitly affects pressing Enter around these brackets. + */ + brackets?: CharacterPair[]; + /** + * The language's word definition. + * If the language supports Unicode identifiers (e.g. JavaScript), it is preferable + * to provide a word definition that uses exclusion of known separators. + * e.g.: A regex that matches anything except known separators (and dot is allowed to occur in a floating point number): + * /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g + */ + wordPattern?: RegExp; + /** + * The language's indentation settings. + */ + indentationRules?: IndentationRule; + /** + * The language's rules to be evaluated when pressing Enter. + */ + onEnterRules?: OnEnterRule[]; + /** + * The language's auto closing pairs. The 'close' character is automatically inserted with the + * 'open' character is typed. If not set, the configured brackets will be used. + */ + autoClosingPairs?: IAutoClosingPairConditional[]; + /** + * The language's surrounding pairs. When the 'open' character is typed on a selection, the + * selected string is surrounded by the open and close characters. If not set, the autoclosing pairs + * settings will be used. + */ + surroundingPairs?: IAutoClosingPair[]; + /** + * **Deprecated** Do not use. + * + * @deprecated Will be replaced by a better API soon. + */ + __electricCharacterSupport?: IBracketElectricCharacterContribution; + } + + /** + * Describes indentation rules for a language. + */ + export interface IndentationRule { + /** + * If a line matches this pattern, then all the lines after it should be unindendented once (until another rule matches). + */ + decreaseIndentPattern: RegExp; + /** + * If a line matches this pattern, then all the lines after it should be indented once (until another rule matches). + */ + increaseIndentPattern: RegExp; + /** + * If a line matches this pattern, then **only the next line** after it should be indented once. + */ + indentNextLinePattern?: RegExp; + /** + * If a line matches this pattern, then its indentation should not be changed and it should not be evaluated against the other rules. + */ + unIndentedLinePattern?: RegExp; + } + + /** + * Describes a rule to be evaluated when pressing Enter. + */ + export interface OnEnterRule { + /** + * This rule will only execute if the text before the cursor matches this regular expression. + */ + beforeText: RegExp; + /** + * This rule will only execute if the text after the cursor matches this regular expression. + */ + afterText?: RegExp; + /** + * The action to execute. + */ + action: EnterAction; + } + + export interface IBracketElectricCharacterContribution { + docComment?: IDocComment; + embeddedElectricCharacters?: string[]; + } + + /** + * Definition of documentation comments (e.g. Javadoc/JSdoc) + */ + export interface IDocComment { + scope: string; + open: string; + lineStart: string; + close?: string; + } + + /** + * A mode. Will soon be obsolete. + */ + export interface IMode { + getId(): string; + } + + /** + * A token. Only supports a single scope, but will soon support a scope array. + */ + export interface IToken { + startIndex: number; + scopes: string | string[]; + } + + /** + * The result of a line tokenization. + */ + export interface ILineTokens { + /** + * The list of tokens on the line. + */ + tokens: IToken[]; + /** + * The tokenization end state. + * A pointer will be held to this and the object should not be modified by the tokenizer after the pointer is returned. + */ + endState: IState; + /** + * An optional promise to force the model to retokenize this line (e.g. missing information at the point of tokenization) + */ + retokenize?: Promise; + } + + /** + * The state of the tokenizer between two lines. + * It is useful to store flags such as in multiline comment, etc. + * The model will clone the previous line's state and pass it in to tokenize the next line. + */ + export interface IState { + clone(): IState; + equals(other: IState): boolean; + } + + /** + * A "manual" provider of tokens. + */ + export interface TokensProvider { + /** + * The initial state of a language. Will be the state passed in to tokenize the first line. + */ + getInitialState(): IState; + /** + * Tokenize a line given the state at the beginning of the line. + */ + tokenize(line: string, state: IState): ILineTokens; + } + + /** + * A hover represents additional information for a symbol or word. Hovers are + * rendered in a tooltip-like widget. + */ + export interface Hover { + /** + * The contents of this hover. + */ + contents: MarkedString[]; + /** + * The range to which this hover applies. When missing, the + * editor will use the range at the current position or the + * current position itself. + */ + range: IRange; + } + + /** + * The hover provider interface defines the contract between extensions and + * the [hover](https://code.visualstudio.com/docs/editor/editingevolved#_hover)-feature. + */ + export interface HoverProvider { + /** + * Provide a hover for the given position and document. Multiple hovers at the same + * position will be merged by the editor. A hover can have a range which defaults + * to the word range at the position when omitted. + */ + provideHover(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): Hover | Thenable; + } + + /** + * Interface used to quick fix typing errors while accesing member fields. + */ + export interface CodeAction { + command: Command; + score: number; + } + + /** + * Represents a parameter of a callable-signature. A parameter can + * have a label and a doc-comment. + */ + export interface ParameterInformation { + /** + * The label of this signature. Will be shown in + * the UI. + */ + label: string; + /** + * The human-readable doc-comment of this signature. Will be shown + * in the UI but can be omitted. + */ + documentation: string; + } + + /** + * Represents the signature of something callable. A signature + * can have a label, like a function-name, a doc-comment, and + * a set of parameters. + */ + export interface SignatureInformation { + /** + * The label of this signature. Will be shown in + * the UI. + */ + label: string; + /** + * The human-readable doc-comment of this signature. Will be shown + * in the UI but can be omitted. + */ + documentation: string; + /** + * The parameters of this signature. + */ + parameters: ParameterInformation[]; + } + + /** + * Signature help represents the signature of something + * callable. There can be multiple signatures but only one + * active and only one active parameter. + */ + export interface SignatureHelp { + /** + * One or more signatures. + */ + signatures: SignatureInformation[]; + /** + * The active signature. + */ + activeSignature: number; + /** + * The active parameter of the active signature. + */ + activeParameter: number; + } + + /** + * The signature help provider interface defines the contract between extensions and + * the [parameter hints](https://code.visualstudio.com/docs/editor/editingevolved#_parameter-hints)-feature. + */ + export interface SignatureHelpProvider { + signatureHelpTriggerCharacters: string[]; + /** + * Provide help for the signature at the given position and document. + */ + provideSignatureHelp(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): SignatureHelp | Thenable; + } + + /** + * A document highlight kind. + */ + export enum DocumentHighlightKind { + /** + * A textual occurrence. + */ + Text = 0, + /** + * Read-access of a symbol, like reading a variable. + */ + Read = 1, + /** + * Write-access of a symbol, like writing to a variable. + */ + Write = 2, + } + + /** + * A document highlight is a range inside a text document which deserves + * special attention. Usually a document highlight is visualized by changing + * the background color of its range. + */ + export interface DocumentHighlight { + /** + * The range this highlight applies to. + */ + range: IRange; + /** + * The highlight kind, default is [text](#DocumentHighlightKind.Text). + */ + kind: DocumentHighlightKind; + } + + /** + * The document highlight provider interface defines the contract between extensions and + * the word-highlight-feature. + */ + export interface DocumentHighlightProvider { + /** + * Provide a set of document highlights, like all occurrences of a variable or + * all exit-points of a function. + */ + provideDocumentHighlights(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): DocumentHighlight[] | Thenable; + } + + /** + * Value-object that contains additional information when + * requesting references. + */ + export interface ReferenceContext { + /** + * Include the declaration of the current symbol. + */ + includeDeclaration: boolean; + } + + /** + * The reference provider interface defines the contract between extensions and + * the [find references](https://code.visualstudio.com/docs/editor/editingevolved#_peek)-feature. + */ + export interface ReferenceProvider { + /** + * Provide a set of project-wide references for the given position and document. + */ + provideReferences(model: editor.IReadOnlyModel, position: Position, context: ReferenceContext, token: CancellationToken): Location[] | Thenable; + } + + /** + * Represents a location inside a resource, such as a line + * inside a text file. + */ + export interface Location { + /** + * The resource identifier of this location. + */ + uri: Uri; + /** + * The document range of this locations. + */ + range: IRange; + } + + /** + * The definition of a symbol represented as one or many [locations](#Location). + * For most programming languages there is only one location at which a symbol is + * defined. + */ + export type Definition = Location | Location[]; + + /** + * The definition provider interface defines the contract between extensions and + * the [go to definition](https://code.visualstudio.com/docs/editor/editingevolved#_go-to-definition) + * and peek definition features. + */ + export interface DefinitionProvider { + /** + * Provide the definition of the symbol at the given position and document. + */ + provideDefinition(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable; + } + + /** + * A symbol kind. + */ + export enum SymbolKind { + File = 0, + Module = 1, + Namespace = 2, + Package = 3, + Class = 4, + Method = 5, + Property = 6, + Field = 7, + Constructor = 8, + Enum = 9, + Interface = 10, + Function = 11, + Variable = 12, + Constant = 13, + String = 14, + Number = 15, + Boolean = 16, + Array = 17, + Object = 18, + Key = 19, + Null = 20, + } + + /** + * Represents information about programming constructs like variables, classes, + * interfaces etc. + */ + export interface SymbolInformation { + /** + * The name of this symbol. + */ + name: string; + /** + * The name of the symbol containing this symbol. + */ + containerName?: string; + /** + * The kind of this symbol. + */ + kind: SymbolKind; + /** + * The location of this symbol. + */ + location: Location; + } + + /** + * The document symbol provider interface defines the contract between extensions and + * the [go to symbol](https://code.visualstudio.com/docs/editor/editingevolved#_goto-symbol)-feature. + */ + export interface DocumentSymbolProvider { + /** + * Provide symbol information for the given document. + */ + provideDocumentSymbols(model: editor.IReadOnlyModel, token: CancellationToken): SymbolInformation[] | Thenable; + } + + /** + * Interface used to format a model + */ + export interface FormattingOptions { + /** + * Size of a tab in spaces. + */ + tabSize: number; + /** + * Prefer spaces over tabs. + */ + insertSpaces: boolean; + } + + /** + * The document formatting provider interface defines the contract between extensions and + * the formatting-feature. + */ + export interface DocumentFormattingEditProvider { + /** + * Provide formatting edits for a whole document. + */ + provideDocumentFormattingEdits(model: editor.IReadOnlyModel, options: FormattingOptions, token: CancellationToken): editor.ISingleEditOperation[] | Thenable; + } + + /** + * The document formatting provider interface defines the contract between extensions and + * the formatting-feature. + */ + export interface DocumentRangeFormattingEditProvider { + /** + * Provide formatting edits for a range in a document. + * + * The given range is a hint and providers can decide to format a smaller + * or larger range. Often this is done by adjusting the start and end + * of the range to full syntax nodes. + */ + provideDocumentRangeFormattingEdits(model: editor.IReadOnlyModel, range: Range, options: FormattingOptions, token: CancellationToken): editor.ISingleEditOperation[] | Thenable; + } + + /** + * The document formatting provider interface defines the contract between extensions and + * the formatting-feature. + */ + export interface OnTypeFormattingEditProvider { + autoFormatTriggerCharacters: string[]; + /** + * Provide formatting edits after a character has been typed. + * + * The given position and character should hint to the provider + * what range the position to expand to, like find the matching `{` + * when `}` has been entered. + */ + provideOnTypeFormattingEdits(model: editor.IReadOnlyModel, position: Position, ch: string, options: FormattingOptions, token: CancellationToken): editor.ISingleEditOperation[] | Thenable; + } + + /** + * A link inside the editor. + */ + export interface ILink { + range: IRange; + url: string; + } + + /** + * A provider of links. + */ + export interface LinkProvider { + provideLinks(model: editor.IReadOnlyModel, token: CancellationToken): ILink[] | Thenable; + resolveLink?: (link: ILink, token: CancellationToken) => ILink | Thenable; + } + + export interface IResourceEdit { + resource: Uri; + range: IRange; + newText: string; + } + + export interface WorkspaceEdit { + edits: IResourceEdit[]; + rejectReason?: string; + } + + export interface RenameProvider { + provideRenameEdits(model: editor.IReadOnlyModel, position: Position, newName: string, token: CancellationToken): WorkspaceEdit | Thenable; + } + + export interface Command { + id: string; + title: string; + arguments?: any[]; + } + + export interface ICodeLensSymbol { + range: IRange; + id?: string; + command?: Command; + } + + export interface CodeLensProvider { + provideCodeLenses(model: editor.IReadOnlyModel, token: CancellationToken): ICodeLensSymbol[] | Thenable; + resolveCodeLens?(model: editor.IReadOnlyModel, codeLens: ICodeLensSymbol, token: CancellationToken): ICodeLensSymbol | Thenable; + } + + /** + * A tuple of two characters, like a pair of + * opening and closing brackets. + */ + export type CharacterPair = [string, string]; + + export interface IAutoClosingPairConditional extends IAutoClosingPair { + notIn?: string[]; + } + + /** + * Describes what to do with the indentation when pressing Enter. + */ + export enum IndentAction { + /** + * Insert new line and copy the previous line's indentation. + */ + None = 0, + /** + * Insert new line and indent once (relative to the previous line's indentation). + */ + Indent = 1, + /** + * Insert two new lines: + * - the first one indented which will hold the cursor + * - the second one at the same indentation level + */ + IndentOutdent = 2, + /** + * Insert new line and outdent once (relative to the previous line's indentation). + */ + Outdent = 3, + } + + /** + * Describes what to do when pressing Enter. + */ + export interface EnterAction { + /** + * Describe what to do with the indentation. + */ + indentAction: IndentAction; + /** + * Describes text to be appended after the new line and after the indentation. + */ + appendText?: string; + /** + * Describes the number of characters to remove from the new line's indentation. + */ + removeText?: number; + } + + export interface IAutoClosingPair { + open: string; + close: string; + } + + export interface ILanguageExtensionPoint { + id: string; + extensions?: string[]; + filenames?: string[]; + filenamePatterns?: string[]; + firstLine?: string; + aliases?: string[]; + mimetypes?: string[]; + configuration?: string; + } + /** + * A Monarch language definition + */ + export interface IMonarchLanguage { + /** + * map from string to ILanguageRule[] + */ + tokenizer: { + [name: string]: IMonarchLanguageRule[]; + }; + /** + * is the language case insensitive? + */ + ignoreCase?: boolean; + /** + * if no match in the tokenizer assign this token class (default 'source') + */ + defaultToken?: string; + /** + * for example [['{','}','delimiter.curly']] + */ + brackets?: IMonarchLanguageBracket[]; + /** + * start symbol in the tokenizer (by default the first entry is used) + */ + start?: string; + /** + * attach this to every token class (by default '.' + name) + */ + tokenPostfix: string; + } + + /** + * A rule is either a regular expression and an action + * shorthands: [reg,act] == { regex: reg, action: act} + * and : [reg,act,nxt] == { regex: reg, action: act{ next: nxt }} + */ + export interface IMonarchLanguageRule { + /** + * match tokens + */ + regex?: string | RegExp; + /** + * action to take on match + */ + action?: IMonarchLanguageAction; + /** + * or an include rule. include all rules from the included state + */ + include?: string; + } + + /** + * An action is either an array of actions... + * ... or a case statement with guards... + * ... or a basic action with a token value. + */ + export interface IMonarchLanguageAction { + /** + * array of actions for each parenthesized match group + */ + group?: IMonarchLanguageAction[]; + /** + * map from string to ILanguageAction + */ + cases?: Object; + /** + * token class (ie. css class) (or "@brackets" or "@rematch") + */ + token?: string; + /** + * the next state to push, or "@push", "@pop", "@popall" + */ + next?: string; + /** + * switch to this state + */ + switchTo?: string; + /** + * go back n characters in the stream + */ + goBack?: number; + /** + * @open or @close + */ + bracket?: string; + /** + * switch to embedded language (useing the mimetype) or get out using "@pop" + */ + nextEmbedded?: string; + /** + * log a message to the browser console window + */ + log?: string; + } + + /** + * This interface can be shortened as an array, ie. ['{','}','delimiter.curly'] + */ + export interface IMonarchLanguageBracket { + /** + * open bracket + */ + open: string; + /** + * closeing bracket + */ + close: string; + /** + * token class + */ + token: string; + } } declare module monaco.worker { -export interface IMirrorModel { -readonly uri: Uri; -readonly version: number; -getValue(): string; -} + export interface IMirrorModel { + readonly uri: Uri; + readonly version: number; + getValue(): string; + } -export interface IWorkerContext { -/** -* Get all available mirror models in this worker. -*/ -getMirrorModels(): IMirrorModel[]; -} + export interface IWorkerContext { + /** + * Get all available mirror models in this worker. + */ + getMirrorModels(): IMirrorModel[]; + } } \ No newline at end of file From 9643bd50bac534fb2255f646b5ccd0552760a694 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 26 Oct 2016 09:47:22 +0200 Subject: [PATCH 071/242] fixes #14455 --- src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts index 6476205a72e..8eb8b945176 100644 --- a/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/gotoSymbolHandler.ts @@ -428,7 +428,7 @@ export class GotoSymbolHandler extends QuickOpenHandler { } } - return canRun ? true : editor instanceof BaseTextEditor ? nls.localize('cannotRunGotoSymbolInFile', "Unfortunately we have no symbol information for the file") : nls.localize('cannotRunGotoSymbol', "Open a text file first to go to a symbol"); + return canRun ? true : editor instanceof BaseTextEditor ? nls.localize('cannotRunGotoSymbolInFile', "No symbol information for the file") : nls.localize('cannotRunGotoSymbol', "Open a text file first to go to a symbol"); } public getAutoFocus(searchValue: string): IAutoFocus { From 8396b27ee41e4f49b7a769cd1453c58f0b817237 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 26 Oct 2016 09:50:59 +0200 Subject: [PATCH 072/242] fixes #14457 --- src/vs/workbench/browser/actions/toggleEditorLayout.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/actions/toggleEditorLayout.ts b/src/vs/workbench/browser/actions/toggleEditorLayout.ts index f326bc89a6b..0f7aea662da 100644 --- a/src/vs/workbench/browser/actions/toggleEditorLayout.ts +++ b/src/vs/workbench/browser/actions/toggleEditorLayout.ts @@ -51,7 +51,7 @@ export class ToggleEditorLayoutAction extends Action { } private updateEnablement(): void { - this.enabled = this.editorGroupService.getStacksModel().groups.length > 1; + this.enabled = this.editorGroupService.getStacksModel().groups.length > 0; } public run(): TPromise { From d18eb3340def7cb8ef1bcdc91b29b8eb31f074c4 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 09:59:49 +0200 Subject: [PATCH 073/242] Toggle maximize panel restore the old panel height fixes #13898 --- src/vs/workbench/browser/layout.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index d3667902285..7c12d2ebd20 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -81,6 +81,7 @@ export class WorkbenchLayout implements IVerticalSashLayoutProvider, IHorizontal private sidebarHeight: number; private startPanelHeight: number; private panelHeight: number; + private panelHeightBeforeMaximized: number; private panelWidth: number; private layoutEditorGroupsVertically: boolean; @@ -378,7 +379,9 @@ export class WorkbenchLayout implements IVerticalSashLayoutProvider, IHorizontal panelHeight = sidebarSize.height * DEFAULT_PANEL_HEIGHT_COEFFICIENT; } if (options && options.toggleMaximizedPanel) { - panelHeight = panelHeight === maxPanelHeight ? sidebarSize.height * DEFAULT_PANEL_HEIGHT_COEFFICIENT : maxPanelHeight; + const heightToSwap = panelHeight; + panelHeight = panelHeight === maxPanelHeight ? Math.max(this.computedStyles.panel.minHeight, Math.min(this.panelHeightBeforeMaximized, maxPanelHeight)) : maxPanelHeight; + this.panelHeightBeforeMaximized = heightToSwap; } const panelDimension = new Dimension(this.workbenchSize.width - sidebarSize.width - activityBarSize.width, panelHeight); this.panelWidth = panelDimension.width; From 059251b63261c2205e32007f2be196763bdfc004 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 10:16:44 +0200 Subject: [PATCH 074/242] debug: align Input box for hit count condition fixes #14420 --- src/vs/workbench/parts/debug/browser/media/breakpointWidget.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/browser/media/breakpointWidget.css b/src/vs/workbench/parts/debug/browser/media/breakpointWidget.css index b19784a9748..dc8783aa6aa 100644 --- a/src/vs/workbench/parts/debug/browser/media/breakpointWidget.css +++ b/src/vs/workbench/parts/debug/browser/media/breakpointWidget.css @@ -31,11 +31,11 @@ font-family: Monaco, Menlo, Consolas, "Droid Sans Mono", "Inconsolata", "Courier New", monospace, "Droid Sans Fallback"; line-height: 22px; background-color: transparent; + padding: 8px; } .monaco-workbench.mac .monaco-editor .breakpoint-widget .input { font-size: 11px; - padding: 8px; } .monaco-workbench.windows .monaco-editor .breakpoint-widget .input, From b8e6f75f171607c2d3b066d4b257ba5ca1cd7c1a Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 10:18:54 +0200 Subject: [PATCH 075/242] debug: support for 'type' in SetVariableResponse fixes #13881 --- src/vs/workbench/parts/debug/common/debugModel.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index ccb1ba59446..1552d493687 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -298,6 +298,7 @@ export class Variable extends ExpressionContainer implements debug.IExpression { }).then(response => { if (response && response.body) { this.value = response.body.value; + this.type = response.body.type || this.type; } // TODO@Isidor notify stackFrame that a change has happened so watch expressions get revelauted }, err => { From a825785947836c0b798b19c8f04252a44d4f8ff0 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 10:20:57 +0200 Subject: [PATCH 076/242] fixes #14519 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c91775e1ebf..495f71d1488 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "sinon": "^1.17.2", "source-map": "^0.4.4", "tslint": "^3.3.0", - "typescript": "^2.0.3", + "typescript": "2.0.3", "typescript-formatter": "3.1.0", "uglify-js": "2.4.8", "underscore": "^1.8.2", @@ -113,4 +113,4 @@ "windows-mutex": "^0.2.0", "fsevents": "0.3.8" } -} +} \ No newline at end of file From 584255179f6119ee7dc2cd4eca104e3b6f4c8cc9 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 26 Oct 2016 10:27:57 +0200 Subject: [PATCH 077/242] quickopen: Position cursor at the end of input to allow right arrow (open in background) to function immediately --- src/vs/base/parts/quickopen/browser/quickOpenWidget.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts index a1192053e05..8dff8703ef9 100644 --- a/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts +++ b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts @@ -164,6 +164,9 @@ export class QuickOpenWidget implements IModelProvider { DOM.EventHelper.stop(e, true); this.navigateInTree(keyboardEvent.keyCode, keyboardEvent.shiftKey); + + // Position cursor at the end of input to allow right arrow (open in background) to function immediately + this.inputBox.inputElement.selectionStart = this.inputBox.value.length; } // Select element on Enter or on Arrow-Right if we are at the end of the input From 76b2a14d963be82bc6651fd01ebe130c114d5602 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 26 Oct 2016 10:31:56 +0200 Subject: [PATCH 078/242] fixes #14459 --- src/vs/workbench/browser/parts/editor/media/tabstitle.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/workbench/browser/parts/editor/media/tabstitle.css b/src/vs/workbench/browser/parts/editor/media/tabstitle.css index ddc544dfe5a..bf467184714 100644 --- a/src/vs/workbench/browser/parts/editor/media/tabstitle.css +++ b/src/vs/workbench/browser/parts/editor/media/tabstitle.css @@ -221,6 +221,7 @@ /* Editor Actions */ .monaco-workbench > .part.editor > .content > .one-editor-silo > .container > .title .editor-actions { + cursor: default; flex: initial; padding-left: 4px; } \ No newline at end of file From 3041fe52d435dd8c52e7a21abdd10fb35eaef535 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 11:09:24 +0200 Subject: [PATCH 079/242] add space --- .../parts/extensions/electron-browser/extensionsViewlet.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts index 249c6404c6d..01e3158abf0 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts @@ -223,7 +223,7 @@ export class ExtensionsViewlet extends Viewlet implements IExtensionsViewlet { return this.progress(this.query(value)) .then(model => { if (!value && model.length === 0 && suggestPopular) { - return this.search('@sort:installs'); + return this.search('@sort:installs '); } this.setModel(model); From a9f17ed0c68d872753b531456b9deb2901b0c5ea Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 11:14:44 +0200 Subject: [PATCH 080/242] fixes #14366 --- .../parts/extensions/electron-browser/extensionEditor.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index 1ff5bf6e127..73e40fd2dae 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -519,6 +519,11 @@ export class ExtensionEditor extends BaseEditor { rawKeybindings.forEach(rawKeybinding => { const keyLabel = this.keybindingToLabel(rawKeybinding); + + if (!keyLabel) { + return; + } + let command = byId[rawKeybinding.command]; if (!command) { @@ -635,7 +640,8 @@ export class ExtensionEditor extends BaseEditor { } const keyBinding = new Keybinding(Keybinding.fromUserSettingsLabel(key || rawKeyBinding.key)); - return this.keybindingService.getLabelFor(keyBinding); + const result = this.keybindingService.getLabelFor(keyBinding); + return result === 'unknown' ? null : result; } private loadContents(loadingTask: () => TPromise): void { From db09b30cbe3cfd288252c2a4ce7d1d65fd88ec16 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 11:22:38 +0200 Subject: [PATCH 081/242] debug: always have a focused process fixes #14497 --- .../parts/debug/browser/debugActions.ts | 20 +++---------------- .../parts/debug/common/debugViewModel.ts | 10 ++++++---- .../debug/electron-browser/debugService.ts | 12 ++++++++++- .../debug/test/common/debugViewModel.test.ts | 2 +- 4 files changed, 21 insertions(+), 23 deletions(-) diff --git a/src/vs/workbench/parts/debug/browser/debugActions.ts b/src/vs/workbench/parts/debug/browser/debugActions.ts index 97a39e40289..adee9d30765 100644 --- a/src/vs/workbench/parts/debug/browser/debugActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugActions.ts @@ -143,12 +143,7 @@ export class RestartAction extends AbstractDebugAction { } public run(): TPromise { - let process = this.debugService.getViewModel().focusedProcess; - if (!process) { - const processes = this.debugService.getModel().getProcesses(); - process = processes.length > 0 ? processes[0] : null; - } - + const process = this.debugService.getViewModel().focusedProcess; return this.debugService.restartProcess(process); } @@ -252,12 +247,7 @@ export class StopAction extends AbstractDebugAction { } public run(): TPromise { - let process = this.debugService.getViewModel().focusedProcess; - if (!process) { - const processes = this.debugService.getModel().getProcesses(); - process = processes.length > 0 ? processes[0] : null; - } - + const process = this.debugService.getViewModel().focusedProcess; return process ? process.session.disconnect(false, true) : TPromise.as(null); } @@ -275,11 +265,7 @@ export class DisconnectAction extends AbstractDebugAction { } public run(): TPromise { - let process = this.debugService.getViewModel().focusedProcess; - if (!process) { - process = this.debugService.getModel().getProcesses().pop(); - } - + const process = this.debugService.getViewModel().focusedProcess; return process ? process.session.disconnect(false, true) : TPromise.as(null); } diff --git a/src/vs/workbench/parts/debug/common/debugViewModel.ts b/src/vs/workbench/parts/debug/common/debugViewModel.ts index a219cefa1c0..90b2e851091 100644 --- a/src/vs/workbench/parts/debug/common/debugViewModel.ts +++ b/src/vs/workbench/parts/debug/common/debugViewModel.ts @@ -9,6 +9,7 @@ import debug = require('vs/workbench/parts/debug/common/debug'); export class ViewModel implements debug.IViewModel { private _focusedStackFrame: debug.IStackFrame; + private _focusedProcess: debug.IProcess; private selectedExpression: debug.IExpression; private selectedFunctionBreakpoint: debug.IFunctionBreakpoint; private _onDidFocusStackFrame: Emitter; @@ -30,7 +31,7 @@ export class ViewModel implements debug.IViewModel { } public get focusedProcess(): debug.IProcess { - return this._focusedStackFrame ? this._focusedStackFrame.thread.process : null; + return this._focusedProcess; } public get focusedThread(): debug.IThread { @@ -41,9 +42,10 @@ export class ViewModel implements debug.IViewModel { return this._focusedStackFrame; } - public setFocusedStackFrame(focusedStackFrame: debug.IStackFrame): void { - this._focusedStackFrame = focusedStackFrame; - this._onDidFocusStackFrame.fire(focusedStackFrame); + public setFocusedStackFrame(stackFrame: debug.IStackFrame, process: debug.IProcess): void { + this._focusedStackFrame = stackFrame; + this._focusedProcess = process; + this._onDidFocusStackFrame.fire(stackFrame); } public get onDidFocusStackFrame(): Event { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index a22becbaf9b..0b6dd2c56ce 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -440,7 +440,16 @@ export class DebugService implements debug.IDebugService { } public setFocusedStackFrameAndEvaluate(focusedStackFrame: debug.IStackFrame): TPromise { - this.viewModel.setFocusedStackFrame(focusedStackFrame); + const processes = this.model.getProcesses(); + const process = focusedStackFrame ? focusedStackFrame.thread.process : processes.length ? processes[0] : null; + if (process && !focusedStackFrame) { + const thread = process.getAllThreads().pop(); + const callStack = thread ? thread.getCachedCallStack() : null; + focusedStackFrame = callStack && callStack.length ? callStack[0] : null; + } + + this.viewModel.setFocusedStackFrame(focusedStackFrame, process); + this._onDidChangeState.fire(); if (focusedStackFrame) { return this.model.evaluateWatchExpressions(focusedStackFrame); } else { @@ -895,6 +904,7 @@ export class DebugService implements debug.IDebugService { private transitionToRunningState(session: RawDebugSession, threadId?: number): void { this.model.clearThreads(session.getId(), false, threadId); + // TODO@Isidor remove this mess // Get a top stack frame of a stopped thread if there is any. const process = this.model.getProcesses().filter(p => p.getId() === session.getId()).pop(); const stoppedThread = process && process.getAllThreads().filter(t => t.stopped).pop(); diff --git a/src/vs/workbench/parts/debug/test/common/debugViewModel.test.ts b/src/vs/workbench/parts/debug/test/common/debugViewModel.test.ts index 36d1f1c129c..85d9a893eac 100644 --- a/src/vs/workbench/parts/debug/test/common/debugViewModel.test.ts +++ b/src/vs/workbench/parts/debug/test/common/debugViewModel.test.ts @@ -26,7 +26,7 @@ suite('Debug - View Model', () => { const process = new Process('mockProcess', mockSession); const thread = new Thread(process, 'myThread', 1); const frame = new StackFrame(thread, 1, null, 'app.js', 1, 1); - model.setFocusedStackFrame(frame); + model.setFocusedStackFrame(frame, process); assert.equal(model.focusedStackFrame, frame); assert.equal(model.focusedThread.threadId, 1); From 215c74ea2b62cbfc9e49127fcfb116ffc97bc5f1 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 26 Oct 2016 11:22:56 +0200 Subject: [PATCH 082/242] make sure model data is removed before changing markers, fixes #13513 --- src/vs/editor/common/services/modelServiceImpl.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/vs/editor/common/services/modelServiceImpl.ts b/src/vs/editor/common/services/modelServiceImpl.ts index 42169ed1db8..513e9c32a7b 100644 --- a/src/vs/editor/common/services/modelServiceImpl.ts +++ b/src/vs/editor/common/services/modelServiceImpl.ts @@ -61,10 +61,10 @@ class ModelData implements IDisposable { class ModelMarkerHandler { - public static setMarkers(modelData: ModelData, markers: IMarker[]): void { + public static setMarkers(modelData: ModelData, markerService: IMarkerService): void { // Limit to the first 500 errors/warnings - markers = markers.slice(0, 500); + const markers = markerService.read({ resource: modelData.model.uri, take: 500 }); let newModelDecorations: editorCommon.IModelDeltaDecoration[] = markers.map((marker) => { return { @@ -327,7 +327,7 @@ export class ModelServiceImpl implements IModelService { if (!modelData) { return; } - ModelMarkerHandler.setMarkers(modelData, this._markerService.read({ resource: resource, take: 500 })); + ModelMarkerHandler.setMarkers(modelData, this._markerService); }); } @@ -377,7 +377,7 @@ export class ModelServiceImpl implements IModelService { // handle markers (marker service => model) if (this._markerService) { - ModelMarkerHandler.setMarkers(modelData, this._markerService.read({ resource: modelData.model.uri })); + ModelMarkerHandler.setMarkers(modelData, this._markerService); } this._onModelAdded.fire(modelData.model); @@ -448,11 +448,10 @@ export class ModelServiceImpl implements IModelService { let modelId = MODEL_ID(model.uri); let modelData = this._models[modelId]; - this._cleanUp(model); - delete this._models[modelId]; modelData.dispose(); + this._cleanUp(model); this._onModelRemoved.fire(model); } From 10730bf03e30894770dcc428d4558701a031b639 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 11:28:56 +0200 Subject: [PATCH 083/242] fixes #13919 --- build/win32/code.iss | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build/win32/code.iss b/build/win32/code.iss index 5fb79892bde..b892fc50407 100644 --- a/build/win32/code.iss +++ b/build/win32/code.iss @@ -753,9 +753,9 @@ Root: HKCR; Subkey: "{#RegValueName}.zsh"; ValueType: string; ValueName: ""; Val Root: HKCR; Subkey: "{#RegValueName}.zsh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\code_file.ico"; Tasks: associatewithfiles Root: HKCR; Subkey: "{#RegValueName}.zsh\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles -Root: HKCR; Subkey: "{#RegValueName}"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,{#NameLong}}"; Flags: uninsdeletekey; Tasks: associatewithfiles -Root: HKCR; Subkey: "{#RegValueName}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\code_file.ico"; Tasks: associatewithfiles -Root: HKCR; Subkey: "{#RegValueName}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles +Root: HKCR; Subkey: "{#RegValueName}SourceFile"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,{#NameLong}}"; Flags: uninsdeletekey; Tasks: associatewithfiles +Root: HKCR; Subkey: "{#RegValueName}SourceFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\code_file.ico"; Tasks: associatewithfiles +Root: HKCR; Subkey: "{#RegValueName}SourceFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles Root: HKCU; Subkey: "Environment"; ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}\bin"; Tasks: addtopath; Check: NeedsAddPath(ExpandConstant('{app}\bin')) From 28cf60f25ad4dc33421b3f4320f1e33be0e689fb Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 11:41:15 +0200 Subject: [PATCH 084/242] output: first create the scoped instantation service and only then construct the editor using it fixes #13463 fixes #12263 --- .../workbench/browser/parts/editor/textEditor.ts | 3 ++- .../workbench/parts/output/browser/outputPanel.ts | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/textEditor.ts b/src/vs/workbench/browser/parts/editor/textEditor.ts index 1c3e842e785..08870420bc3 100644 --- a/src/vs/workbench/browser/parts/editor/textEditor.ts +++ b/src/vs/workbench/browser/parts/editor/textEditor.ts @@ -139,7 +139,8 @@ export abstract class BaseTextEditor extends BaseEditor { * provide their own editor control that should be used (e.g. a DiffEditor). */ public createEditorControl(parent: Builder): IEditor { - return this._instantiationService.createInstance(CodeEditor, parent.getHTMLElement(), this.getCodeEditorOptions()); + // Use a getter for the instantiation service since some subclasses might use scoped instantiation services + return this.instantiationService.createInstance(CodeEditor, parent.getHTMLElement(), this.getCodeEditorOptions()); } public setInput(input: EditorInput, options: EditorOptions): TPromise { diff --git a/src/vs/workbench/parts/output/browser/outputPanel.ts b/src/vs/workbench/parts/output/browser/outputPanel.ts index 4447939aef2..390428c6178 100644 --- a/src/vs/workbench/parts/output/browser/outputPanel.ts +++ b/src/vs/workbench/parts/output/browser/outputPanel.ts @@ -16,6 +16,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { IEventService } from 'vs/platform/event/common/event'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IMessageService } from 'vs/platform/message/common/message'; +import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { EditorInput, EditorOptions } from 'vs/workbench/common/editor'; import { StringEditor } from 'vs/workbench/browser/parts/editor/stringEditor'; @@ -31,6 +32,7 @@ export class OutputPanel extends StringEditor { private toDispose: lifecycle.IDisposable[]; private actions: IAction[]; + private scopedInstantiationService: IInstantiationService; constructor( @ITelemetryService telemetryService: ITelemetryService, @@ -48,6 +50,7 @@ export class OutputPanel extends StringEditor { ) { super(telemetryService, instantiationService, contextService, storageService, messageService, configurationService, eventService, editorService, themeService, untitledEditorService); + this.scopedInstantiationService = instantiationService; this.toDispose = []; } @@ -100,14 +103,20 @@ export class OutputPanel extends StringEditor { } public createEditor(parent: Builder): void { - super.createEditor(parent); - const scopedContextKeyService = this.contextKeyService.createScoped(this.getContainer().getHTMLElement()); + // First create the scoped instantation service and only then construct the editor using the scoped service + const scopedContextKeyService = this.contextKeyService.createScoped(parent.getHTMLElement()); this.toDispose.push(scopedContextKeyService); - CONTEXT_IN_OUTPUT.bindTo(scopedContextKeyService).set(true); + this.scopedInstantiationService = this.instantiationService.createChild(new ServiceCollection([IContextKeyService, scopedContextKeyService])); + super.createEditor(parent); + CONTEXT_IN_OUTPUT.bindTo(scopedContextKeyService).set(true); this.setInput(OutputEditorInput.getInstance(this.instantiationService, this.outputService.getActiveChannel()), null); } + public get instantiationService(): IInstantiationService { + return this.scopedInstantiationService; + } + public dispose(): void { this.toDispose = lifecycle.dispose(this.toDispose); super.dispose(); From 1de326dfaa0f44df2444056b955042c0332f8fac Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 26 Oct 2016 11:49:13 +0200 Subject: [PATCH 085/242] update to typescript 2.0.6 --- extensions/typescript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/typescript/package.json b/extensions/typescript/package.json index 1b5284b5e53..3fa7dc19d0c 100644 --- a/extensions/typescript/package.json +++ b/extensions/typescript/package.json @@ -14,7 +14,7 @@ "semver": "4.3.6", "vscode-extension-telemetry": "^0.0.5", "vscode-nls": "^2.0.1", - "typescript": "^2.0.6-insiders.20161014" + "typescript": "^2.0.6" }, "scripts": { "postinstall": "node ./bin/postinstall", From 875c15ba115f5c5367210903c808645a80ad1a23 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 26 Oct 2016 12:13:16 +0200 Subject: [PATCH 086/242] improve top-score heuristics, fixes #14446 --- .../contrib/suggest/common/completionModel.ts | 31 ++++++++++----- .../test/common/completionModel.test.ts | 38 +++++++++++++++++++ 2 files changed, 59 insertions(+), 10 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index c19c0ea5b4c..42e79d06a9c 100644 --- a/src/vs/editor/contrib/suggest/common/completionModel.ts +++ b/src/vs/editor/contrib/suggest/common/completionModel.ts @@ -6,6 +6,7 @@ 'use strict'; import { isFalsyOrEmpty } from 'vs/base/common/arrays'; +import { escapeRegExpCharacters } from 'vs/base/common/strings'; import { IMatch, fuzzyContiguousFilter } from 'vs/base/common/filters'; import { ISuggestSupport } from 'vs/editor/common/modes'; import { ISuggestionItem } from './suggest'; @@ -154,8 +155,7 @@ export class CompletionModel { this._filteredItems.push(item); // compute score against word - const wordLowerCase = word.toLowerCase(); - const score = CompletionModel._scoreByHighlight(item, word, wordLowerCase); + const score = CompletionModel._scoreByHighlight(item, word); if (score > topScore) { topScore = score; this._topScoreIdx = this._filteredItems.length - 1; @@ -176,19 +176,30 @@ export class CompletionModel { } } - private static _scoreByHighlight(item: ICompletionItem, currentWord: string, currentWordLowerCase: string): number { + private static _scoreByHighlight(item: ICompletionItem, currentWord: string): number { const {highlights, suggestion} = item; let score = 0; if (!isFalsyOrEmpty(highlights)) { for (const {start, end} of highlights) { - // find the highlight in the current word and - // score it based on case-match and start index - const part = suggestion.label.substring(start, end); - if (currentWord.indexOf(part) >= 0) { - score += (2 * part.length) / (start + 1); + // scoring logic: + // First find the highlighted portion from the label in the current + // word and second score a case-senstive match with 2pts and everything + // else with 1pt. - } else if (currentWordLowerCase.indexOf(part) >= 0) { - score += part.length / (start + 1); + // this is a case-insensitive String#indexOf + const part = suggestion.label.substring(start, end); + const regexp = new RegExp(escapeRegExpCharacters(part), 'i'); + const idx = currentWord.search(regexp); + + // case senstive match score 2, the rest 1 + if (idx >= 0) { + for (let i = 0; i < part.length; i++) { + if (part[i] === currentWord[idx + i]) { + score += 2; + } else { + score += 1; + } + } } } } diff --git a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts index 8697f3088c1..22f249441eb 100644 --- a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts @@ -82,6 +82,44 @@ suite('CompletionModel', function () { assert.equal(model.topScoreIdx, 1); }); + test('top score, issue #14446', function () { + + const model = new CompletionModel([ + createSuggestItem('workbench.editor.defaultSideBySideLayout', 15), + createSuggestItem('workbench.sideBar.location', 15), + ], 15, { + leadingLineContent: 'workbench.sideb', + characterCountDelta: 0 + } + ) + + assert.equal(model.topScoreIdx, 1); + assert.equal(model.items[model.topScoreIdx].suggestion.label, 'workbench.sideBar.location') + }); + + test('top score, issue #11423', function () { + + const model = new CompletionModel([ + createSuggestItem('diffEditor.renderSideBySide', 8), + createSuggestItem('editor.overviewRulerlanes', 8), + createSuggestItem('editor.renderControlCharacter', 8), + createSuggestItem('editor.renderWhitespace', 8), + ], 15, { + leadingLineContent: 'editor.r', + characterCountDelta: 0 + } + ) + + assert.equal(model.topScoreIdx, 2); + assert.equal(model.items[model.topScoreIdx].suggestion.label, 'editor.renderControlCharacter') + + model.lineContext = { leadingLineContent: 'editor.R', characterCountDelta: 0 }; + assert.equal(model.topScoreIdx, 1); + + model.lineContext = { leadingLineContent: 'Editor.r', characterCountDelta: 0 }; + assert.equal(model.topScoreIdx, 0); + }); + test('complete/incomplete', function () { assert.equal(model.incomplete.length, 0); From 4cf66f05b08dde71b9577260f8064297fefee821 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 12:21:55 +0200 Subject: [PATCH 087/242] fixes #13813 --- src/vs/base/browser/ui/list/list.css | 2 +- src/vs/base/browser/ui/list/rowCache.ts | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/vs/base/browser/ui/list/list.css b/src/vs/base/browser/ui/list/list.css index ea1fb7a6591..1dbc576acb1 100644 --- a/src/vs/base/browser/ui/list/list.css +++ b/src/vs/base/browser/ui/list/list.css @@ -39,7 +39,7 @@ /* for OS X ballistic scrolling */ .monaco-list-row.scrolling { - display: none; + display: none !important; } /* Hover */ diff --git a/src/vs/base/browser/ui/list/rowCache.ts b/src/vs/base/browser/ui/list/rowCache.ts index 77fd63cc913..3511c61cc33 100644 --- a/src/vs/base/browser/ui/list/rowCache.ts +++ b/src/vs/base/browser/ui/list/rowCache.ts @@ -14,7 +14,7 @@ export interface IRow { } function getLastScrollTime(element: HTMLElement): number { - var value = element.getAttribute('last-scroll-time'); + const value = element.getAttribute('last-scroll-time'); return value ? parseInt(value, 10) : 0; } @@ -64,27 +64,23 @@ export class RowCache implements IDisposable { return; } - var lastScrollTime = getLastScrollTime(row.domNode); + const lastScrollTime = getLastScrollTime(row.domNode); if (!lastScrollTime) { - removeFromParent(row.domNode); - this.getTemplateCache(row.templateId).push(row); + this.releaseRow(row); return; } if (this.scrollingRow) { - var lastKnownScrollTime = getLastScrollTime(this.scrollingRow.domNode); + const lastKnownScrollTime = getLastScrollTime(this.scrollingRow.domNode); if (lastKnownScrollTime > lastScrollTime) { - removeFromParent(row.domNode); - this.getTemplateCache(row.templateId).push(row); + this.releaseRow(row); return; } if (this.scrollingRow.domNode.parentElement) { - removeFromParent(this.scrollingRow.domNode); - removeClass(this.scrollingRow.domNode, 'scrolling'); - this.getTemplateCache(this.scrollingRow.templateId).push(this.scrollingRow); + this.releaseRow(this.scrollingRow); } } @@ -92,6 +88,15 @@ export class RowCache implements IDisposable { addClass(this.scrollingRow.domNode, 'scrolling'); } + private releaseRow(row: IRow): void { + const {domNode, templateId} = row; + removeClass(domNode, 'scrolling'); + removeFromParent(domNode); + + const cache = this.getTemplateCache(templateId); + cache.push(row); + } + private getTemplateCache(templateId: string): IRow[] { return this.cache[templateId] || (this.cache[templateId] = []); } From e3b6f0add56e9764f23e28cb871f3341de4aba1c Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 12:23:34 +0200 Subject: [PATCH 088/242] debug: fix whitespace rendering fixes #14482, #13986 --- src/vs/workbench/parts/debug/browser/media/debugHover.css | 3 ++- src/vs/workbench/parts/debug/browser/media/debugViewlet.css | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/browser/media/debugHover.css b/src/vs/workbench/parts/debug/browser/media/debugHover.css index 4f3121b073e..962b1fc8477 100644 --- a/src/vs/workbench/parts/debug/browser/media/debugHover.css +++ b/src/vs/workbench/parts/debug/browser/media/debugHover.css @@ -36,6 +36,7 @@ .monaco-editor .debug-hover-widget .debug-hover-tree .monaco-tree .monaco-tree-row > .content { -webkit-user-select: text; + white-space: pre; } /* Disable tree highlight in debug hover tree. */ @@ -61,7 +62,7 @@ } .monaco-editor .debug-hover-widget .value { - word-wrap: break-word; + white-space: pre-wrap; color: rgba(108, 108, 108, 0.8); } diff --git a/src/vs/workbench/parts/debug/browser/media/debugViewlet.css b/src/vs/workbench/parts/debug/browser/media/debugViewlet.css index 6b2c7b1ead5..d5ad9caa8f6 100644 --- a/src/vs/workbench/parts/debug/browser/media/debugViewlet.css +++ b/src/vs/workbench/parts/debug/browser/media/debugViewlet.css @@ -175,6 +175,10 @@ text-align: center; } +.monaco-workbench .debug-viewlet .monaco-tree-row .expression { + white-space: pre; +} + .debug-viewlet .debug-call-stack .error { font-style: italic; text-overflow: ellipsis; From fa60f3cb0295d0f3531181dd31f0f27c56ea8c4f Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 12:32:03 +0200 Subject: [PATCH 089/242] debug repl input: center > character on win fixes #14429 --- src/vs/workbench/parts/debug/browser/media/repl.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/browser/media/repl.css b/src/vs/workbench/parts/debug/browser/media/repl.css index 8422141e5cd..9719a0e2c64 100644 --- a/src/vs/workbench/parts/debug/browser/media/repl.css +++ b/src/vs/workbench/parts/debug/browser/media/repl.css @@ -122,7 +122,7 @@ .monaco-workbench.windows .repl .repl-input-wrapper:before { content: '\203A'; /* character does not exist on windows */ font-size: 22px; - line-height: 18px; + line-height: 12px; } .monaco-workbench.linux .repl .repl-input-wrapper:before { From 3d6c220d2400ee80cd7211e4a852f6808715dea6 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Wed, 26 Oct 2016 12:33:18 +0200 Subject: [PATCH 090/242] CSS autocomplete in html files not working on Windows.Fixes #14467 --- .../css/client/src/embeddedContentUri.ts | 2 +- .../css/server/src/embeddedContentUri.ts | 2 +- .../html/client/src/embeddedContentUri.ts | 2 +- .../src/test/embeddedContentUri.test.ts | 27 +++++++++++++++++++ .../server/src/test/embeddedContentUri.ts | 27 +++++++++++++++++++ 5 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 extensions/html/server/src/test/embeddedContentUri.test.ts create mode 100644 extensions/html/server/src/test/embeddedContentUri.ts diff --git a/extensions/css/client/src/embeddedContentUri.ts b/extensions/css/client/src/embeddedContentUri.ts index 8fccadaf83e..3d7b012a0fd 100644 --- a/extensions/css/client/src/embeddedContentUri.ts +++ b/extensions/css/client/src/embeddedContentUri.ts @@ -13,7 +13,7 @@ export function isEmbeddedContentUri(virtualDocumentUri: Uri): boolean { } export function getEmbeddedContentUri(parentDocumentUri: string, embeddedLanguageId: string): Uri { - return Uri.parse(EMBEDDED_CONTENT_SCHEME + '://' + embeddedLanguageId + '/' + encodeURIComponent(parentDocumentUri) + '.' + embeddedLanguageId); + return new Uri().with({ scheme: EMBEDDED_CONTENT_SCHEME, authority: embeddedLanguageId, path: '/' + encodeURIComponent(parentDocumentUri) + '.' + embeddedLanguageId }); }; export function getHostDocumentUri(virtualDocumentUri: Uri): string { diff --git a/extensions/css/server/src/embeddedContentUri.ts b/extensions/css/server/src/embeddedContentUri.ts index c2751a0825f..8a305a85908 100644 --- a/extensions/css/server/src/embeddedContentUri.ts +++ b/extensions/css/server/src/embeddedContentUri.ts @@ -13,7 +13,7 @@ export function isEmbeddedContentUri(virtualDocumentUri: Uri): boolean { } export function getEmbeddedContentUri(parentDocumentUri: string, embeddedLanguageId: string): Uri { - return Uri.parse(EMBEDDED_CONTENT_SCHEME + '://' + embeddedLanguageId + '/' + encodeURIComponent(parentDocumentUri) + '.' + embeddedLanguageId); + return Uri.from({ scheme: EMBEDDED_CONTENT_SCHEME, authority: embeddedLanguageId, path: '/' + encodeURIComponent(parentDocumentUri) + '.' + embeddedLanguageId }); }; export function getHostDocumentUri(virtualDocumentUri: Uri): string { diff --git a/extensions/html/client/src/embeddedContentUri.ts b/extensions/html/client/src/embeddedContentUri.ts index 8fccadaf83e..3d7b012a0fd 100644 --- a/extensions/html/client/src/embeddedContentUri.ts +++ b/extensions/html/client/src/embeddedContentUri.ts @@ -13,7 +13,7 @@ export function isEmbeddedContentUri(virtualDocumentUri: Uri): boolean { } export function getEmbeddedContentUri(parentDocumentUri: string, embeddedLanguageId: string): Uri { - return Uri.parse(EMBEDDED_CONTENT_SCHEME + '://' + embeddedLanguageId + '/' + encodeURIComponent(parentDocumentUri) + '.' + embeddedLanguageId); + return new Uri().with({ scheme: EMBEDDED_CONTENT_SCHEME, authority: embeddedLanguageId, path: '/' + encodeURIComponent(parentDocumentUri) + '.' + embeddedLanguageId }); }; export function getHostDocumentUri(virtualDocumentUri: Uri): string { diff --git a/extensions/html/server/src/test/embeddedContentUri.test.ts b/extensions/html/server/src/test/embeddedContentUri.test.ts new file mode 100644 index 00000000000..c4c09cfb934 --- /dev/null +++ b/extensions/html/server/src/test/embeddedContentUri.test.ts @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +'use strict'; + +import * as assert from 'assert'; +import {getEmbeddedContentUri, getEmbeddedLanguageId, getHostDocumentUri, isEmbeddedContentUri} from './embeddedContentUri'; + +suite('Embedded URI', () => { + + test('URI', function (): any { + let resourceUri1 = 'file:///c%3A/workspaces/samples/foo.html'; + let resourceUri2 = 'file://Users/joe/samples/foo.html'; + + let uri = getEmbeddedContentUri(resourceUri1, 'css'); + assert(isEmbeddedContentUri(uri)); + assert.equal(getEmbeddedLanguageId(uri), 'css'); + assert.equal(getHostDocumentUri(uri), resourceUri1); + + let uri2 = getEmbeddedContentUri(resourceUri2, 'css'); + assert(isEmbeddedContentUri(uri2)); + assert.equal(getEmbeddedLanguageId(uri2), 'css'); + assert.equal(getHostDocumentUri(uri2), resourceUri2); + }); + +}); \ No newline at end of file diff --git a/extensions/html/server/src/test/embeddedContentUri.ts b/extensions/html/server/src/test/embeddedContentUri.ts new file mode 100644 index 00000000000..8a305a85908 --- /dev/null +++ b/extensions/html/server/src/test/embeddedContentUri.ts @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +'use strict'; + +import Uri from 'vscode-uri'; + +export const EMBEDDED_CONTENT_SCHEME = 'embedded-content'; + +export function isEmbeddedContentUri(virtualDocumentUri: Uri): boolean { + return virtualDocumentUri.scheme === EMBEDDED_CONTENT_SCHEME; +} + +export function getEmbeddedContentUri(parentDocumentUri: string, embeddedLanguageId: string): Uri { + return Uri.from({ scheme: EMBEDDED_CONTENT_SCHEME, authority: embeddedLanguageId, path: '/' + encodeURIComponent(parentDocumentUri) + '.' + embeddedLanguageId }); +}; + +export function getHostDocumentUri(virtualDocumentUri: Uri): string { + let languageId = virtualDocumentUri.authority; + let path = virtualDocumentUri.path.substring(1, virtualDocumentUri.path.length - languageId.length - 1); // remove leading '/' and new file extension + return decodeURIComponent(path); +}; + +export function getEmbeddedLanguageId(virtualDocumentUri: Uri): string { + return virtualDocumentUri.authority; +} \ No newline at end of file From 2cbaae92db9e87662336387b37772e4a7c82b4d0 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Wed, 26 Oct 2016 12:34:58 +0200 Subject: [PATCH 091/242] Add two categories to the package.json schema. Fixes #14469 --- src/vs/platform/extensions/common/extensionsRegistry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/platform/extensions/common/extensionsRegistry.ts b/src/vs/platform/extensions/common/extensionsRegistry.ts index 150095aa14e..ac4b01e9021 100644 --- a/src/vs/platform/extensions/common/extensionsRegistry.ts +++ b/src/vs/platform/extensions/common/extensionsRegistry.ts @@ -228,7 +228,7 @@ const schema: IJSONSchema = { uniqueItems: true, items: { type: 'string', - enum: ['Languages', 'Snippets', 'Linters', 'Themes', 'Debuggers', 'Productivity', 'Other'] + enum: ['Languages', 'Snippets', 'Linters', 'Themes', 'Debuggers', 'Productivity', 'Other', 'Keymaps', 'Formatters'] } }, galleryBanner: { From 41bb4834b74a1adb1eabdf7f839d791d1b522c32 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 12:46:33 +0200 Subject: [PATCH 092/242] fixes #13700 --- src/vs/code/electron-main/auto-updater.win32.ts | 7 ++++--- src/vs/workbench/parts/update/electron-browser/update.ts | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/vs/code/electron-main/auto-updater.win32.ts b/src/vs/code/electron-main/auto-updater.win32.ts index 6eb5933565e..e515d5385af 100644 --- a/src/vs/code/electron-main/auto-updater.win32.ts +++ b/src/vs/code/electron-main/auto-updater.win32.ts @@ -23,8 +23,9 @@ export interface IUpdate { url: string; name: string; releaseNotes?: string; - version?: string; - hash?: string; + version: string; + productVersion: string; + hash: string; } export class Win32AutoUpdaterImpl extends EventEmitter { @@ -93,7 +94,7 @@ export class Win32AutoUpdaterImpl extends EventEmitter { this.emit('update-downloaded', {}, update.releaseNotes, - update.version, + update.productVersion, new Date(), this.url, () => this.quitAndUpdate(updatePackagePath) diff --git a/src/vs/workbench/parts/update/electron-browser/update.ts b/src/vs/workbench/parts/update/electron-browser/update.ts index d93de376be4..84535a0694f 100644 --- a/src/vs/workbench/parts/update/electron-browser/update.ts +++ b/src/vs/workbench/parts/update/electron-browser/update.ts @@ -250,7 +250,8 @@ export class UpdateContribution implements IWorkbenchContribution { storageService.store(UpdateContribution.KEY, pkg.version, StorageScope.GLOBAL); - ipc.on('vscode:update-downloaded', (event, update: IUpdate) => { + ipc.on('vscode:update-downloaded', (event, data: string) => { + const update = JSON.parse(data) as IUpdate; const releaseNotesAction = instantiationService.createInstance(ShowReleaseNotesAction, false, update.version); messageService.show(severity.Info, { From 0231e82cf01190d0a0b03e5728c331547de3843c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 26 Oct 2016 12:57:17 +0200 Subject: [PATCH 093/242] function vs function-call, fixes #14490 --- extensions/typescript/src/typescriptMain.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/typescript/src/typescriptMain.ts b/extensions/typescript/src/typescriptMain.ts index 4b6a7e381ed..918fd358d52 100644 --- a/extensions/typescript/src/typescriptMain.ts +++ b/extensions/typescript/src/typescriptMain.ts @@ -148,7 +148,7 @@ class LanguageProvider { let renameProvider = new RenameProvider(client); this.formattingProvider = new FormattingProvider(client); this.formattingProvider.updateConfiguration(config); - if (this.formattingProvider.isEnabled) { + if (this.formattingProvider.isEnabled()) { this.formattingProviderRegistration = languages.registerDocumentRangeFormattingEditProvider(this.description.modeIds, this.formattingProvider); } From f8ecbf7223ee5663dec783de2e4695ac2cf98df5 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Oct 2016 13:47:18 +0200 Subject: [PATCH 094/242] Fix #14442 --- .../extensionManagement/common/extensionManagement.ts | 1 + .../extensionManagement/node/extensionGalleryService.ts | 5 +++-- .../parts/extensions/electron-browser/extensionEditor.ts | 5 +++++ .../extensions/electron-browser/media/extensionEditor.css | 1 - 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts index a0a671d9b74..97fcbac9e69 100644 --- a/src/vs/platform/extensionManagement/common/extensionManagement.ts +++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts @@ -13,6 +13,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' import { IRequestContext } from 'vs/base/node/request'; export const EXTENSION_IDENTIFIER_PATTERN = '^[a-z0-9A-Z][a-z0-9\-A-Z]*\\.[a-z0-9A-Z][a-z0-9\-A-Z]*$'; +export const EXTENSION_IDENTIFIER_REGEX = new RegExp(EXTENSION_IDENTIFIER_PATTERN); export interface ICommand { command: string; diff --git a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts index 453d650c666..b31ffe53d0d 100644 --- a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts +++ b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts @@ -11,7 +11,7 @@ import { distinct } from 'vs/base/common/arrays'; import { getErrorMessage } from 'vs/base/common/errors'; import { memoize } from 'vs/base/common/decorators'; import { ArraySet } from 'vs/base/common/set'; -import { IGalleryExtension, IExtensionGalleryService, IQueryOptions, SortBy, SortOrder, IExtensionManifest } from 'vs/platform/extensionManagement/common/extensionManagement'; +import { IGalleryExtension, IExtensionGalleryService, IQueryOptions, SortBy, SortOrder, IExtensionManifest, EXTENSION_IDENTIFIER_REGEX } from 'vs/platform/extensionManagement/common/extensionManagement'; import { getGalleryExtensionTelemetryData } from 'vs/platform/extensionManagement/common/extensionTelemetry'; import { assign, getOrDefault } from 'vs/base/common/objects'; import { IRequestService } from 'vs/platform/request/common/request'; @@ -420,6 +420,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService { } private loadDependencies(extensionNames: string[]): TPromise { + extensionNames = extensionNames.filter(e => EXTENSION_IDENTIFIER_REGEX.test(e)); let query = new Query() .withFlags(Flags.IncludeLatestVersionOnly, Flags.IncludeAssetUri, Flags.IncludeStatistics, Flags.IncludeFiles, Flags.IncludeVersionProperties) .withPage(1, extensionNames.length) @@ -446,7 +447,7 @@ export class ExtensionGalleryService implements IExtensionGalleryService { if (!toGet || !toGet.length) { return TPromise.wrap(result); } - if (toGet.indexOf(`${root.publisher}.${root.name}`) && result.indexOf(root) === -1) { + if (toGet.indexOf(`${root.publisher}.${root.name}`) !== -1 && result.indexOf(root) === -1) { result.push(root); } toGet = result.length ? toGet.filter(e => !ExtensionGalleryService.hasExtensionByName(result, e)) : toGet; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index 73e40fd2dae..16d05007930 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -385,6 +385,11 @@ export class ExtensionEditor extends BaseEditor { this.contentDisposables.push(tree); scrollableContent.scanDomNode(); + }, error => { + removeClass(this.content, 'loading'); + append(this.content, $('p.nocontent')).textContent = error; + this.messageService.show(Severity.Error, error); + return; }); } diff --git a/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css b/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css index 7380042d3a5..84b3b8458b9 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css +++ b/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css @@ -231,7 +231,6 @@ .extension-editor .subcontent .monaco-tree-row .content .unknown-dependency > .error-marker { background-color: #BE1100; padding: 2px 4px; - margin-left: 40px; font-weight: bold; font-size: 11px; } From 2aadcb93167aa9ec7fac1c3dacab2258a4ae9ed2 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Oct 2016 14:15:53 +0200 Subject: [PATCH 095/242] Fix #14527 --- .../electron-browser/extensionsActions.ts | 46 +++++++++++++------ 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 167b37839e3..1809ca722f3 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -278,24 +278,26 @@ export class DropDownMenuActionItem extends ActionItem { private disposables: IDisposable[] = []; private _extension: IExtension; - constructor(action: IAction, private menuActions: IAction[], private contextMenuService: IContextMenuService) { + constructor(action: IAction, private menuActionGroups: IExtensionAction[][], private contextMenuService: IContextMenuService) { super(null, action, { icon: true, label: true }); - this.disposables = [...menuActions]; + for (const menuActions of menuActionGroups) { + this.disposables = [...this.disposables, ...menuActions]; + } } get extension(): IExtension { return this._extension; } set extension(extension: IExtension) { this._extension = extension; - for (const menuAction of this.menuActions) { - if (!(menuAction instanceof Separator)) { - (menuAction).extension = extension; + for (const menuActions of this.menuActionGroups) { + for (const menuAction of menuActions) { + menuAction.extension = extension; } } } public showMenu(): void { - const actions = this.menuActions.filter(a => a instanceof Separator || a.enabled); + const actions = this.getActions(); let elementPosition = DOM.getDomNodePagePosition(this.builder.getHTMLElement()); const anchor = { x: elementPosition.left, y: elementPosition.top + elementPosition.height + 10 }; this.contextMenuService.showContextMenu({ @@ -304,6 +306,17 @@ export class DropDownMenuActionItem extends ActionItem { }); } + private getActions(): IAction[] { + let actions = []; + for (const menuActions of this.menuActionGroups) { + const filtered = menuActions.filter(a => a.enabled); + if (filtered.length > 0) { + actions = [...actions, ...filtered, new Separator()]; + } + } + return actions.length ? actions.slice(0, actions.length - 1) : actions; + } + dispose(): void { super.dispose(); this.disposables = dispose(this.disposables); @@ -315,8 +328,13 @@ export class ManageExtensionActionItem extends DropDownMenuActionItem { action: IAction, @IInstantiationService instantiationService: IInstantiationService, @IContextMenuService contextMenuService: IContextMenuService) { - super(action, [instantiationService.createInstance(EnableForWorkspaceAction, localize('enableForWorkspaceAction.label', "Enable (Workspace)")), instantiationService.createInstance(EnableGloballyAction, localize('enableAlwaysAction.label', "Enable")), - instantiationService.createInstance(DisableForWorkspaceAction, localize('disableForWorkspaceAction.label', "Disable (Workspace)")), instantiationService.createInstance(DisableGloballyAction, localize('disableAlwaysAction.label', "Disable")), new Separator(), instantiationService.createInstance(UninstallAction)], contextMenuService); + super(action, [ + [instantiationService.createInstance(EnableForWorkspaceAction, localize('enableForWorkspaceAction.label', "Enable (Workspace)")), + instantiationService.createInstance(EnableGloballyAction, localize('enableAlwaysAction.label', "Enable")), + instantiationService.createInstance(DisableForWorkspaceAction, localize('disableForWorkspaceAction.label', "Disable (Workspace)")), + instantiationService.createInstance(DisableGloballyAction, localize('disableAlwaysAction.label', "Disable"))], + [instantiationService.createInstance(UninstallAction)] + ], contextMenuService); } } @@ -371,7 +389,7 @@ export class ManageExtensionAction extends Action { } } -export class EnableForWorkspaceAction extends Action { +export class EnableForWorkspaceAction extends Action implements IExtensionAction { static ID = 'extensions.enableForWorkspace'; static LABEL = localize('enableForWorkspaceAction', "Workspace"); @@ -412,7 +430,7 @@ export class EnableForWorkspaceAction extends Action { } } -export class EnableGloballyAction extends Action { +export class EnableGloballyAction extends Action implements IExtensionAction { static ID = 'extensions.enableGlobally'; static LABEL = localize('enableGloballyAction', "Always"); @@ -504,7 +522,7 @@ export class EnableAction extends Action { } -export class DisableForWorkspaceAction extends Action { +export class DisableForWorkspaceAction extends Action implements IExtensionAction { static ID = 'extensions.disableForWorkspace'; static LABEL = localize('disableForWorkspaceAction', "Workspace"); @@ -543,7 +561,7 @@ export class DisableForWorkspaceAction extends Action { } } -export class DisableGloballyAction extends Action { +export class DisableGloballyAction extends Action implements IExtensionAction { static ID = 'extensions.disableGlobally'; static LABEL = localize('disableGloballyAction', "Always"); @@ -636,7 +654,7 @@ export class EnableActionItem extends DropDownMenuActionItem { action: IAction, @IInstantiationService instantiationService: IInstantiationService, @IContextMenuService contextMenuService: IContextMenuService) { - super(action, [instantiationService.createInstance(EnableForWorkspaceAction, EnableForWorkspaceAction.LABEL), instantiationService.createInstance(EnableGloballyAction, EnableGloballyAction.LABEL)], contextMenuService); + super(action, [[instantiationService.createInstance(EnableForWorkspaceAction, EnableForWorkspaceAction.LABEL), instantiationService.createInstance(EnableGloballyAction, EnableGloballyAction.LABEL)]], contextMenuService); } } @@ -645,7 +663,7 @@ export class DisableActionItem extends DropDownMenuActionItem { action: IAction, @IInstantiationService instantiationService: IInstantiationService, @IContextMenuService contextMenuService: IContextMenuService) { - super(action, [instantiationService.createInstance(DisableForWorkspaceAction, DisableForWorkspaceAction.LABEL), instantiationService.createInstance(DisableGloballyAction, DisableGloballyAction.LABEL)], contextMenuService); + super(action, [[instantiationService.createInstance(DisableForWorkspaceAction, DisableForWorkspaceAction.LABEL), instantiationService.createInstance(DisableGloballyAction, DisableGloballyAction.LABEL)]], contextMenuService); } } From 63f5ad6d2ab5b821b4fd91fede08645886ab121d Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Oct 2016 14:33:03 +0200 Subject: [PATCH 096/242] #14442 Exclude self from dependent --- .../extensionManagement/node/extensionManagementService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts index 8f5d2d32f32..bfbc1bc2e17 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts @@ -375,7 +375,7 @@ export class ExtensionManagementService implements IExtensionManagementService { private uninstallWithDependencies(extension: ILocalExtension, dependencies: ILocalExtension[], installed: ILocalExtension[]): TPromise { const dependenciesToUninstall = this.filterDependents(extension, dependencies, installed); - let dependents = this.getDependents(extension, installed).filter(dependent => dependenciesToUninstall.indexOf(dependent) === -1); + let dependents = this.getDependents(extension, installed).filter(dependent => extension !== dependent && dependenciesToUninstall.indexOf(dependent) === -1); if (dependents.length) { return TPromise.wrapError(nls.localize('hasDependentsError', "Cannot uninstall extension '{0}'. Some of the installed extensions depends on this.", extension.manifest.displayName || extension.manifest.name)); } From 7b12cf4189c950a692c3c6ee8615e17c69bcc50d Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 14:51:17 +0200 Subject: [PATCH 097/242] Debug: show expression or hit count based on relevancy fixes #14358 --- .../parts/debug/browser/breakpointWidget.ts | 44 ++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/src/vs/workbench/parts/debug/browser/breakpointWidget.ts b/src/vs/workbench/parts/debug/browser/breakpointWidget.ts index 054aad23dac..11fbd6446cc 100644 --- a/src/vs/workbench/parts/debug/browser/breakpointWidget.ts +++ b/src/vs/workbench/parts/debug/browser/breakpointWidget.ts @@ -39,6 +39,7 @@ export class BreakpointWidget extends ZoneWidget { private toDispose: lifecycle.IDisposable[]; private breakpointWidgetVisible: IContextKey; private hitCountContext: boolean; + private static lastSelected = 0; constructor(editor: editorbrowser.ICodeEditor, private lineNumber: number, @IContextViewService private contextViewService: IContextViewService, @@ -65,33 +66,54 @@ export class BreakpointWidget extends ZoneWidget { BreakpointWidget.INSTANCE.show({ lineNumber, column: 1 }, 2); } + private get placeholder(): string { + return this.hitCountContext ? HIT_COUNT_PLACEHOLDER : EXPRESSION_PLACEHOLDER; + } + + private get ariaLabel(): string { + return this.hitCountContext ? HIT_COUNT_ARIA_LABEL : EXPRESSION_ARIA_LABEL; + } + + private getInputBoxValue(breakpoint: debug.IBreakpoint): string { + if (this.hitCountContext) { + return breakpoint && breakpoint.hitCondition ? breakpoint.hitCondition : ''; + } + + return breakpoint && breakpoint.condition ? breakpoint.condition : ''; + } + protected _fillContainer(container: HTMLElement): void { dom.addClass(container, 'breakpoint-widget monaco-editor-background'); const uri = this.editor.getModel().uri; const breakpoint = this.debugService.getModel().getBreakpoints().filter(bp => bp.lineNumber === this.lineNumber && bp.source.uri.toString() === uri.toString()).pop(); - const selectBox = new SelectBox([nls.localize('expression', "Expression"), nls.localize('hitCount', "Hit Count")], 0); + let selected = BreakpointWidget.lastSelected; + if (breakpoint && breakpoint.condition) { + selected = 0; + } else if (breakpoint && breakpoint.hitCondition) { + selected = 1; + } + BreakpointWidget.lastSelected = selected; + this.hitCountContext = selected === 1; + const selectBox = new SelectBox([nls.localize('expression', "Expression"), nls.localize('hitCount', "Hit Count")], selected); selectBox.render(dom.append(container, $('.breakpoint-select-container'))); selectBox.onDidSelect(e => { this.hitCountContext = e === 'Hit Count'; - this.inputBox.setAriaLabel(this.hitCountContext ? HIT_COUNT_ARIA_LABEL : EXPRESSION_ARIA_LABEL); - this.inputBox.setPlaceHolder(this.hitCountContext ? HIT_COUNT_PLACEHOLDER : EXPRESSION_PLACEHOLDER); - if (this.hitCountContext) { - this.inputBox.value = breakpoint && breakpoint.hitCondition ? breakpoint.hitCondition : ''; - } else { - this.inputBox.value = breakpoint && breakpoint.condition ? breakpoint.condition : ''; - } + BreakpointWidget.lastSelected = this.hitCountContext ? 1 : 0; + this.inputBox.setAriaLabel(this.ariaLabel); + this.inputBox.setPlaceHolder(this.placeholder); + this.inputBox.value = this.getInputBoxValue(breakpoint); }); const inputBoxContainer = dom.append(container, $('.inputBoxContainer')); this.inputBox = new InputBox(inputBoxContainer, this.contextViewService, { - placeholder: EXPRESSION_PLACEHOLDER, - ariaLabel: EXPRESSION_ARIA_LABEL + placeholder: this.placeholder, + ariaLabel: this.ariaLabel }); this.toDispose.push(this.inputBox); dom.addClass(this.inputBox.inputElement, platform.isWindows ? 'windows' : platform.isMacintosh ? 'mac' : 'linux'); - this.inputBox.value = (breakpoint && breakpoint.condition) ? breakpoint.condition : ''; + this.inputBox.value = this.getInputBoxValue(breakpoint); // Due to an electron bug we have to do the timeout, otherwise we do not get focus setTimeout(() => this.inputBox.focus(), 0); From 988ced7117a68972ddda50328efd4fbf94a421e6 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Oct 2016 14:48:10 +0200 Subject: [PATCH 098/242] #14379 Do not show manage action for uninstalled --- .../parts/extensions/electron-browser/extensionsActions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 1809ca722f3..97b2ff3da9c 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -372,9 +372,9 @@ export class ManageExtensionAction extends Action { this.class = ManageExtensionAction.NoExtensionClass; this.enabled = false; if (this.extension) { - this.class = ManageExtensionAction.Class; const state = this.extension.state; this.enabled = ExtensionState.Uninstalled !== state && ExtensionState.Installing !== state && ExtensionState.Uninstalling !== state; + this.class = ExtensionState.Uninstalled === state || ExtensionState.Installing === state ? ManageExtensionAction.NoExtensionClass : ManageExtensionAction.Class; } } From 2c09acb99e67f2d5403a33272a19c3a64c5232c5 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 26 Oct 2016 15:13:39 +0200 Subject: [PATCH 099/242] fix #12688 --- .../api/node/extHostLanguageFeatures.ts | 23 +++---------------- .../api/node/extHostTypeConverters.ts | 6 ++--- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/src/vs/workbench/api/node/extHostLanguageFeatures.ts b/src/vs/workbench/api/node/extHostLanguageFeatures.ts index c1e112f1123..4c079b8470b 100644 --- a/src/vs/workbench/api/node/extHostLanguageFeatures.ts +++ b/src/vs/workbench/api/node/extHostLanguageFeatures.ts @@ -113,22 +113,12 @@ class DefinitionAdapter { let pos = TypeConverters.toPosition(position); return asWinJsPromise(token => this._provider.provideDefinition(doc, pos, token)).then(value => { if (Array.isArray(value)) { - return value.map(DefinitionAdapter._convertLocation); + return value.map(TypeConverters.location.from); } else if (value) { - return DefinitionAdapter._convertLocation(value); + return TypeConverters.location.from(value); } }); } - - private static _convertLocation(location: vscode.Location): modes.Location { - if (!location) { - return; - } - return { - uri: location.uri, - range: TypeConverters.fromRange(location.range) - }; - } } class HoverAdapter { @@ -208,17 +198,10 @@ class ReferenceAdapter { return asWinJsPromise(token => this._provider.provideReferences(doc, pos, context, token)).then(value => { if (Array.isArray(value)) { - return value.map(ReferenceAdapter._convertLocation); + return value.map(TypeConverters.location.from); } }); } - - private static _convertLocation(location: vscode.Location): modes.Location { - return { - uri: location.uri, - range: TypeConverters.fromRange(location.range) - }; - } } class QuickFixAdapter { diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index 344ab09f3eb..35a330bcc68 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -248,10 +248,10 @@ export function toSymbolInformation(bearing: IWorkspaceSymbol): types.SymbolInfo export const location = { - from(value: types.Location): modes.Location { + from(value: vscode.Location): modes.Location { return { - range: fromRange(value.range), - uri: value.uri + range: value.range && fromRange(value.range), + uri: value.uri }; }, to(value: modes.Location): types.Location { From 6641c6dd5029b1142e60bae351669cac5e3d2091 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 15:13:49 +0200 Subject: [PATCH 100/242] debug: do not get named array variables and then all variables -> duplicates --- src/vs/workbench/parts/debug/common/debugModel.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 1552d493687..da4841443e8 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -159,6 +159,10 @@ export abstract class ExpressionContainer implements debug.IExpressionContainer if (this.reference <= 0) { this.children = TPromise.as([]); } else { + if (!this.getChildrenInChunks) { + return this.fetchVariables(undefined, undefined, undefined); + } + // Check if object has named variables, fetch them independent from indexed variables #9670 this.children = (!!this.namedVariables ? this.fetchVariables(undefined, undefined, 'named') : TPromise.as([])).then(childrenArray => { @@ -180,9 +184,7 @@ export abstract class ExpressionContainer implements debug.IExpressionContainer return childrenArray; } - const start = this.getChildrenInChunks ? this.startOfVariables : undefined; - const count = this.getChildrenInChunks ? this.indexedVariables : undefined; - return this.fetchVariables(start, count, this.getChildrenInChunks ? 'indexed' : undefined) + return this.fetchVariables(this.startOfVariables, this.indexedVariables, 'indexed') .then(variables => childrenArray.concat(variables)); }); } From 608309dc4ae4a883b2a6b92ef19b814c60b49c82 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 15:22:53 +0200 Subject: [PATCH 101/242] fixes #13636 --- .../contrib/parameterHints/browser/parameterHints.css | 4 ++-- .../parameterHints/browser/parameterHintsWidget.ts | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHints.css b/src/vs/editor/contrib/parameterHints/browser/parameterHints.css index 95d8353e5f6..1d1dad92e3a 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHints.css +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHints.css @@ -36,8 +36,8 @@ margin: 8px 0; } -.monaco-editor .parameter-hints-widget .body, -.monaco-editor .parameter-hints-widget .body > .monaco-scrollable-element { +.monaco-editor .parameter-hints-widget .monaco-scrollable-element, +.monaco-editor .parameter-hints-widget .body { display: flex; flex-direction: column; } diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts b/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts index 456d23279c5..7570ef355ba 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts @@ -217,14 +217,14 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable { this.overloads = dom.append(wrapper, $('.overloads')); - const body = dom.append(wrapper, $('.body')); + const body = $('.body'); + this.scrollbar = new DomScrollableElement(body, { canUseTranslate3d: false }); + this.disposables.push(this.scrollbar); + wrapper.appendChild(this.scrollbar.getDomNode()); this.signature = dom.append(body, $('.signature')); - this.docs = $('.docs'); - this.scrollbar = new DomScrollableElement(this.docs, { canUseTranslate3d: false }); - this.disposables.push(this.scrollbar); - body.appendChild(this.scrollbar.getDomNode()); + this.docs = dom.append(body, $('.docs')); this.currentSignature = 0; From a5ba48b76595d703ffbc26f108fd9f5acef154f9 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 15:42:16 +0200 Subject: [PATCH 102/242] debug: distinguish if there is a process left on session end fixes #14332 --- .../parts/debug/common/debugModel.ts | 1 + .../debug/electron-browser/debugService.ts | 27 ++++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index da4841443e8..4eddacc3b10 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -559,6 +559,7 @@ export class Process implements debug.IProcess { } } +// TODO@Isidor breakpoint should not have a pointer to source. Source should live inside a stack frame export class Breakpoint implements debug.IBreakpoint { public lineNumber: number; diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 0b6dd2c56ce..a95380fbedf 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -804,25 +804,26 @@ export class DebugService implements debug.IDebugService { // an internal module might be open so the dispose can throw -> ignore and continue with stop session. } - this.partService.removeClass('debugging'); - this.model.removeProcess(session.getId()); this.setFocusedStackFrameAndEvaluate(null).done(null, errors.onUnexpectedError); this.setStateAndEmit(session.getId(), debug.State.Inactive); - // set breakpoints back to unverified since the session ended. - // source reference changes across sessions, so we do not use it to persist the source. - const data: { [id: string]: { line: number, verified: boolean } } = {}; - this.model.getBreakpoints().forEach(bp => { - delete bp.source.raw.sourceReference; - data[bp.getId()] = { line: bp.lineNumber, verified: false }; - }); - this.model.updateBreakpoints(data); + if (this.model.getProcesses().length === 0) { + this.partService.removeClass('debugging'); + // set breakpoints back to unverified since the session ended. + // source reference changes across sessions, so we do not use it to persist the source. + const data: { [id: string]: { line: number, verified: boolean } } = {}; + this.model.getBreakpoints().forEach(bp => { + delete bp.source.raw.sourceReference; + data[bp.getId()] = { line: bp.lineNumber, verified: false }; + }); + this.model.updateBreakpoints(data); - this.inDebugMode.reset(); + this.inDebugMode.reset(); - if (!this.partService.isSideBarHidden() && this.configurationService.getConfiguration('debug').openExplorerOnEnd) { - this.viewletService.openViewlet(EXPLORER_VIEWLET_ID).done(null, errors.onUnexpectedError); + if (!this.partService.isSideBarHidden() && this.configurationService.getConfiguration('debug').openExplorerOnEnd) { + this.viewletService.openViewlet(EXPLORER_VIEWLET_ID).done(null, errors.onUnexpectedError); + } } } From 92860bbbc539a4f528ce0005cfcd704f89c8bb4b Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 15:42:51 +0200 Subject: [PATCH 103/242] fixes #12752 --- src/vs/editor/contrib/hover/browser/hoverWidgets.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vs/editor/contrib/hover/browser/hoverWidgets.ts b/src/vs/editor/contrib/hover/browser/hoverWidgets.ts index d4bc9ceb201..4442bbe2e09 100644 --- a/src/vs/editor/contrib/hover/browser/hoverWidgets.ts +++ b/src/vs/editor/contrib/hover/browser/hoverWidgets.ts @@ -147,7 +147,10 @@ export class ContentHoverWidget extends Widget implements editorBrowser.IContent private updateMaxHeight(): void { const height = Math.max(this._editor.getLayoutInfo().height / 4, 250); + const { fontSize, lineHeight } = this._editor.getConfiguration().fontInfo; + this._domNode.style.fontSize = `${fontSize}px`; + this._domNode.style.lineHeight = `${lineHeight}px`; this._domNode.style.maxHeight = `${height}px`; } } From 0c4e41b6982b0cd89022b2ff14202b2c706f66c4 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 15:48:21 +0200 Subject: [PATCH 104/242] fixes #12842 --- .../parts/extensions/electron-browser/extensionsViewlet.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts index 01e3158abf0..436c53111d4 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts @@ -241,12 +241,14 @@ export class ExtensionsViewlet extends Viewlet implements IExtensionsViewlet { if (/@outdated/i.test(value)) { return this.extensionsWorkbenchService.queryLocal() + .then(result => result.sort((e1, e2) => e1.displayName.localeCompare(e2.displayName))) .then(extensions => extensions.filter(extension => extension.outdated)) .then(result => new PagedModel(result)); } if (/@disabled/i.test(value)) { return this.extensionsWorkbenchService.queryLocal() + .then(result => result.sort((e1, e2) => e1.displayName.localeCompare(e2.displayName))) .then(result => result.filter(e => e.state === ExtensionState.Disabled)) .then(result => new PagedModel(result)); } From 46f347ba6ae1d47422ce51dc1ff110fffa9d4450 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 15:50:37 +0200 Subject: [PATCH 105/242] debug repl input tune > on win --- src/vs/workbench/parts/debug/browser/media/repl.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/browser/media/repl.css b/src/vs/workbench/parts/debug/browser/media/repl.css index 9719a0e2c64..5080c032a94 100644 --- a/src/vs/workbench/parts/debug/browser/media/repl.css +++ b/src/vs/workbench/parts/debug/browser/media/repl.css @@ -121,7 +121,7 @@ .monaco-workbench.windows .repl .repl-input-wrapper:before { content: '\203A'; /* character does not exist on windows */ - font-size: 22px; + font-size: 30px; line-height: 12px; } From 32c95a76e88eacbb188822d91344c1885616f57f Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 26 Oct 2016 16:12:00 +0200 Subject: [PATCH 106/242] cancel n-1 request when resolving incomplete result sets, fixes #13835 --- .../editor/contrib/suggest/common/suggestModel.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/suggestModel.ts b/src/vs/editor/contrib/suggest/common/suggestModel.ts index 551f54924ab..9df25db3922 100644 --- a/src/vs/editor/contrib/suggest/common/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/common/suggestModel.ts @@ -146,6 +146,7 @@ export class SuggestModel implements IDisposable { private quickSuggestDelay: number; private triggerCharacterListeners: IDisposable[] = []; + private triggerFromIncompletePromise: TPromise; private triggerAutoSuggestPromise: TPromise; private state: State; @@ -249,6 +250,11 @@ export class SuggestModel implements IDisposable { cancel(retrigger: boolean = false): void { + if (this.triggerFromIncompletePromise) { + this.triggerFromIncompletePromise.cancel(); + this.triggerFromIncompletePromise = null; + } + if (this.triggerAutoSuggestPromise) { this.triggerAutoSuggestPromise.cancel(); this.triggerAutoSuggestPromise = null; @@ -373,12 +379,16 @@ export class SuggestModel implements IDisposable { private triggerFromIncomplete(auto: boolean): void { - this.requestPromise = provideSuggestionItems(this.editor.getModel(), this.editor.getPosition(), + if (this.triggerFromIncompletePromise) { + this.triggerFromIncompletePromise.cancel(); + } + + this.triggerFromIncompletePromise = provideSuggestionItems(this.editor.getModel(), this.editor.getPosition(), this.editor.getConfiguration().contribInfo.snippetSuggestions, this.completionModel.incomplete ).then(items => { - this.requestPromise = null; + this.triggerFromIncompletePromise = null; if (this.state === State.Idle) { return; } From aed0b7acd8bce522aeb68e354532ae334c36807a Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 26 Oct 2016 16:33:29 +0200 Subject: [PATCH 107/242] fixes #2814 --- src/vs/code/electron-main/windows.ts | 8 +++++++- src/vs/workbench/electron-browser/window.ts | 4 ++++ .../electron-browser/extensionsActions.ts | 6 ++++-- .../files/electron-browser/electronFileActions.ts | 13 +++++++++---- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index bac9eb6334a..7fb60af34dd 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -18,7 +18,7 @@ import { EventEmitter } from 'events'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IStorageService } from 'vs/code/electron-main/storage'; import { IPath, VSCodeWindow, ReadyState, IWindowConfiguration, IWindowState as ISingleWindowState, defaultWindowState, IWindowSettings } from 'vs/code/electron-main/window'; -import { ipcMain as ipc, app, screen, crashReporter, BrowserWindow, dialog } from 'electron'; +import { ipcMain as ipc, app, screen, crashReporter, BrowserWindow, dialog, shell } from 'electron'; import { IPathWithLineAndColumn, parseLineAndColumnAware } from 'vs/code/electron-main/paths'; import { ILifecycleService } from 'vs/code/electron-main/lifecycle'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -484,6 +484,12 @@ export class WindowsManager implements IWindowsService { })); }); + ipc.on('vscode:showItemInFolder', (event, path: string) => { + this.logService.log('IPC#vscode-showItemInFolder'); + + shell.showItemInFolder(path); + }); + this.updateService.on('update-downloaded', (update: IUpdate) => { this.sendToFocused('vscode:telemetry', { eventName: 'update:downloaded', data: { version: update.version } }); diff --git a/src/vs/workbench/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts index e87507ff7fb..3699ed93872 100644 --- a/src/vs/workbench/electron-browser/window.ts +++ b/src/vs/workbench/electron-browser/window.ts @@ -183,4 +183,8 @@ export class ElectronWindow { public flashFrame(): void { ipc.send('vscode:flashFrame', this.windowId); // handled from browser process } + + public showItemInFolder(path: string): void { + ipc.send('vscode:showItemInFolder', path); // handled from browser process to prevent foreground ordering issues on Windows + } } \ No newline at end of file diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 97b2ff3da9c..c64bc551912 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -24,12 +24,13 @@ import { ToggleViewletAction } from 'vs/workbench/browser/viewlet'; import { IViewletService } from 'vs/workbench/services/viewlet/common/viewletService'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { Query } from '../common/extensionQuery'; -import { shell, remote } from 'electron'; +import { remote } from 'electron'; import { ExtensionsConfigurationInitialContent } from 'vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate'; import { IFileService } from 'vs/platform/files/common/files'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import URI from 'vs/base/common/uri'; import { IExtensionsRuntimeService } from 'vs/platform/extensions/common/extensions'; +import { IWindowService } from 'vs/workbench/services/window/electron-browser/windowService'; const dialog = remote.dialog; @@ -1022,6 +1023,7 @@ export class OpenExtensionsFolderAction extends Action { constructor( id: string, label: string, + @IWindowService private windowService: IWindowService, @IEnvironmentService private environmentService: IEnvironmentService ) { super(id, label, null, true); @@ -1029,7 +1031,7 @@ export class OpenExtensionsFolderAction extends Action { run(): TPromise { const extensionsHome = this.environmentService.extensionsPath; - shell.showItemInFolder(paths.normalize(extensionsHome, true)); + this.windowService.getWindow().showItemInFolder(paths.normalize(extensionsHome, true)); return TPromise.as(true); } diff --git a/src/vs/workbench/parts/files/electron-browser/electronFileActions.ts b/src/vs/workbench/parts/files/electron-browser/electronFileActions.ts index 1169469ff31..ccd67bbb34f 100644 --- a/src/vs/workbench/parts/files/electron-browser/electronFileActions.ts +++ b/src/vs/workbench/parts/files/electron-browser/electronFileActions.ts @@ -17,13 +17,17 @@ import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/edi import { asFileEditorInput } from 'vs/workbench/common/editor'; import { IMessageService } from 'vs/platform/message/common/message'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; +import { IWindowService } from 'vs/workbench/services/window/electron-browser/windowService'; -import { ipcRenderer as ipc, shell, clipboard } from 'electron'; +import { ipcRenderer as ipc, clipboard } from 'electron'; export class RevealInOSAction extends Action { private resource: uri; - constructor(resource: uri) { + constructor( + resource: uri, + @IWindowService private windowService: IWindowService + ) { super('workbench.action.files.revealInWindows', platform.isWindows ? nls.localize('revealInWindows', "Reveal in Explorer") : (platform.isMacintosh ? nls.localize('revealInMac', "Reveal in Finder") : nls.localize('openContainer', "Open Containing Folder"))); this.resource = resource; @@ -32,7 +36,7 @@ export class RevealInOSAction extends Action { } public run(): TPromise { - shell.showItemInFolder(paths.normalize(this.resource.fsPath, true)); + this.windowService.getWindow().showItemInFolder(paths.normalize(this.resource.fsPath, true)); return TPromise.as(true); } @@ -47,6 +51,7 @@ export class GlobalRevealInOSAction extends Action { id: string, label: string, @IWorkbenchEditorService private editorService: IWorkbenchEditorService, + @IWindowService private windowService: IWindowService, @IMessageService private messageService: IMessageService ) { super(id, label); @@ -55,7 +60,7 @@ export class GlobalRevealInOSAction extends Action { public run(): TPromise { const fileInput = asFileEditorInput(this.editorService.getActiveEditorInput(), true); if (fileInput) { - shell.showItemInFolder(paths.normalize(fileInput.getResource().fsPath, true)); + this.windowService.getWindow().showItemInFolder(paths.normalize(fileInput.getResource().fsPath, true)); } else { this.messageService.show(severity.Info, nls.localize('openFileToReveal', "Open a file first to reveal")); } From 5ea2e04fd5a7d5303638d399b705086485abab01 Mon Sep 17 00:00:00 2001 From: isidor Date: Wed, 26 Oct 2016 16:43:36 +0200 Subject: [PATCH 108/242] debug hover align with regular hover fixes #13752 --- .../workbench/parts/debug/browser/media/debugHover.css | 9 +++++++++ .../workbench/parts/debug/electron-browser/debugHover.ts | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/browser/media/debugHover.css b/src/vs/workbench/parts/debug/browser/media/debugHover.css index 962b1fc8477..a7b34e25ce9 100644 --- a/src/vs/workbench/parts/debug/browser/media/debugHover.css +++ b/src/vs/workbench/parts/debug/browser/media/debugHover.css @@ -13,6 +13,9 @@ animation-name: fadeIn; -webkit-user-select: text; word-break: break-all; + background-color: #F3F3F3; + border: 1px solid #CCC; + padding: 4px 5px; } .monaco-editor .debug-hover-widget .complex-value { @@ -84,6 +87,12 @@ /* Dark theme */ +.monaco-editor.vs-dark .debug-hover-widget { + background-color: #2D2D30; + border-color: #555; +} + + .monaco-editor.vs-dark .debug-hover-widget .value { color: rgba(204, 204, 204, 0.6); } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugHover.ts b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts index ddf424a8589..792ba6b0c23 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugHover.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts @@ -49,7 +49,7 @@ export class DebugHoverWidget implements editorbrowser.IContentWidget { private toDispose: lifecycle.IDisposable[]; constructor(private editor: editorbrowser.ICodeEditor, private debugService: debug.IDebugService, private instantiationService: IInstantiationService) { - this.domNode = $('.debug-hover-widget monaco-editor-background'); + this.domNode = $('.debug-hover-widget'); this.complexValueContainer = dom.append(this.domNode, $('.complex-value')); this.complexValueTitle = dom.append(this.complexValueContainer, $('.title')); this.treeContainer = dom.append(this.complexValueContainer, $('.debug-hover-tree')); From 5d0477651e86d3eacebb5136eb1873d0cbe53a53 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 26 Oct 2016 16:51:49 +0200 Subject: [PATCH 109/242] fixes #14487 --- src/vs/code/electron-main/windows.ts | 6 ++++++ src/vs/workbench/electron-browser/actions.ts | 4 ++-- src/vs/workbench/electron-browser/window.ts | 8 ++++++-- .../parts/debug/electron-browser/rawDebugSession.ts | 4 +--- .../parts/extensions/electron-browser/extensionEditor.ts | 7 +++---- .../feedback/electron-browser/feedbackStatusbarItem.ts | 3 +-- src/vs/workbench/parts/git/browser/gitServices.ts | 3 +-- .../parts/nps/electron-browser/nps.contribution.ts | 3 +-- src/vs/workbench/parts/update/electron-browser/update.ts | 8 ++++---- .../welcome/electron-browser/electronGettingStarted.ts | 4 +--- .../services/files/electron-browser/fileService.ts | 2 +- 11 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index 7fb60af34dd..cf7c80cba0d 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -490,6 +490,12 @@ export class WindowsManager implements IWindowsService { shell.showItemInFolder(path); }); + ipc.on('vscode:openExternal', (event, url: string) => { + this.logService.log('IPC#vscode-openExternal'); + + shell.openExternal(url); + }); + this.updateService.on('update-downloaded', (update: IUpdate) => { this.sendToFocused('vscode:telemetry', { eventName: 'update:downloaded', data: { version: update.version } }); diff --git a/src/vs/workbench/electron-browser/actions.ts b/src/vs/workbench/electron-browser/actions.ts index ec56306aa55..2dd461675f8 100644 --- a/src/vs/workbench/electron-browser/actions.ts +++ b/src/vs/workbench/electron-browser/actions.ts @@ -34,7 +34,7 @@ import * as browser from 'vs/base/browser/browser'; import { IIntegrityService } from 'vs/platform/integrity/common/integrity'; import * as os from 'os'; -import { ipcRenderer as ipc, webFrame, remote, shell } from 'electron'; +import { ipcRenderer as ipc, webFrame, remote } from 'electron'; // --- actions @@ -548,7 +548,7 @@ export class ReportIssueAction extends Action { return this.extensionManagementService.getInstalled(LocalExtensionType.User).then(extensions => { const issueUrl = this.generateNewIssueUrl(product.reportIssueUrl, pkg.name, pkg.version, product.commit, product.date, res.isPure, extensions); - shell.openExternal(issueUrl); + window.open(issueUrl); return TPromise.as(true); }); diff --git a/src/vs/workbench/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts index 3699ed93872..fc6f72def1f 100644 --- a/src/vs/workbench/electron-browser/window.ts +++ b/src/vs/workbench/electron-browser/window.ts @@ -17,7 +17,7 @@ import { asFileEditorInput } from 'vs/workbench/common/editor'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; -import { ipcRenderer as ipc, shell, remote } from 'electron'; +import { ipcRenderer as ipc, remote } from 'electron'; const dialog = remote.dialog; @@ -120,7 +120,7 @@ export class ElectronWindow { // Handle window.open() calls (window).open = function (url: string, target: string, features: string, replace: boolean) { - shell.openExternal(url); + $this.openExternal(url); return null; }; @@ -187,4 +187,8 @@ export class ElectronWindow { public showItemInFolder(path: string): void { ipc.send('vscode:showItemInFolder', path); // handled from browser process to prevent foreground ordering issues on Windows } + + public openExternal(url: string): void { + ipc.send('vscode:openExternal', url); // handled from browser process to prevent foreground ordering issues on Windows + } } \ No newline at end of file diff --git a/src/vs/workbench/parts/debug/electron-browser/rawDebugSession.ts b/src/vs/workbench/parts/debug/electron-browser/rawDebugSession.ts index 36a8584f4c8..020f469a65c 100644 --- a/src/vs/workbench/parts/debug/electron-browser/rawDebugSession.ts +++ b/src/vs/workbench/parts/debug/electron-browser/rawDebugSession.ts @@ -27,8 +27,6 @@ import { ExtensionsChannelId } from 'vs/platform/extensionManagement/common/exte import { TerminalSupport } from 'vs/workbench/parts/debug/electron-browser/terminalSupport'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { shell } from 'electron'; - export interface SessionExitedEvent extends DebugProtocol.ExitedEvent { body: { exitCode: number, @@ -175,7 +173,7 @@ export class RawDebugSession extends v8.V8Protocol implements debug.ISession { const label = error.urlLabel ? error.urlLabel : nls.localize('moreInfo', "More Info"); return TPromise.wrapError(errors.create(userMessage, { actions: [CloseAction, new Action('debug.moreInfo', label, null, true, () => { - shell.openExternal(error.url); + window.open(error.url); return TPromise.as(null); })] })); diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index 16d05007930..d4357939baf 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -33,7 +33,6 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { ITemplateData } from './extensionsList'; import { RatingsWidget, InstallWidget } from './extensionsWidgets'; import { EditorOptions } from 'vs/workbench/common/editor'; -import { shell } from 'electron'; import product from 'vs/platform/product'; import { ActionBar } from 'vs/base/browser/ui/actionbar/actionbar'; import { CombinedInstallAction, UpdateAction, EnableAction, DisableAction, ReloadAction, BuiltinStatusLabelAction } from './extensionsActions'; @@ -236,8 +235,8 @@ export class ExtensionEditor extends BaseEditor { if (product.extensionsGallery) { const extensionUrl = `${product.extensionsGallery.itemUrl}?itemName=${extension.publisher}.${extension.name}`; - this.name.onclick = finalHandler(() => shell.openExternal(extensionUrl)); - this.rating.onclick = finalHandler(() => shell.openExternal(`${extensionUrl}#review-details`)); + this.name.onclick = finalHandler(() => window.open(extensionUrl)); + this.rating.onclick = finalHandler(() => window.open(`${extensionUrl}#review-details`)); this.publisher.onclick = finalHandler(() => { this.viewletService.openViewlet(VIEWLET_ID, true) .then(viewlet => viewlet as IExtensionsViewlet) @@ -245,7 +244,7 @@ export class ExtensionEditor extends BaseEditor { }); if (extension.licenseUrl) { - this.license.onclick = finalHandler(() => shell.openExternal(extension.licenseUrl)); + this.license.onclick = finalHandler(() => window.open(extension.licenseUrl)); this.license.style.display = 'initial'; } else { this.license.onclick = null; diff --git a/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts b/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts index 47c109668fe..0afb1544592 100644 --- a/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts +++ b/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts @@ -10,7 +10,6 @@ import { IStatusbarItem } from 'vs/workbench/browser/parts/statusbar/statusbar'; import { FeedbackDropdown, IFeedback, IFeedbackService } from 'vs/workbench/parts/feedback/browser/feedback'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { shell } from 'electron'; import product from 'vs/platform/product'; class TwitterFeedbackService implements IFeedbackService { @@ -27,7 +26,7 @@ class TwitterFeedbackService implements IFeedbackService { const queryString = `?${feedback.sentiment === 1 ? `hashtags=${this.combineHashTagsAsString()}&` : null}ref_src=twsrc%5Etfw&related=twitterapi%2Ctwitter&text=${feedback.feedback}&tw_p=tweetbutton&via=${TwitterFeedbackService.VIA_NAME}`; const url = TwitterFeedbackService.TWITTER_URL + queryString; - shell.openExternal(url); + window.open(url); } public getCharacterLimit(sentiment: number): number { diff --git a/src/vs/workbench/parts/git/browser/gitServices.ts b/src/vs/workbench/parts/git/browser/gitServices.ts index 4c2b2987bf0..af4d7df93aa 100644 --- a/src/vs/workbench/parts/git/browser/gitServices.ts +++ b/src/vs/workbench/parts/git/browser/gitServices.ts @@ -36,7 +36,6 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; import URI from 'vs/base/common/uri'; import * as semver from 'semver'; -import { shell } from 'electron'; import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; import Event from 'vs/base/common/event'; import { domEvent } from 'vs/base/browser/event'; @@ -483,7 +482,7 @@ export class GitService extends EventEmitter message: localize('updateGit', "You seem to have git {0} installed. Code works best with git >=2.0.0.", version), actions: [ new Action('downloadLatest', localize('download', "Download"), '', true, () => { - shell.openExternal('https://git-scm.com/'); + window.open('https://git-scm.com/'); return null; }), new Action('neverShowAgain', localize('neverShowAgain', "Don't show again"), null, true, () => { diff --git a/src/vs/workbench/parts/nps/electron-browser/nps.contribution.ts b/src/vs/workbench/parts/nps/electron-browser/nps.contribution.ts index 26ab09c28cf..ef8feee60df 100644 --- a/src/vs/workbench/parts/nps/electron-browser/nps.contribution.ts +++ b/src/vs/workbench/parts/nps/electron-browser/nps.contribution.ts @@ -6,7 +6,6 @@ 'use strict'; import * as nls from 'vs/nls'; -import { shell } from 'electron'; import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; import { language } from 'vs/base/common/platform'; @@ -68,7 +67,7 @@ class NPSContribution implements IWorkbenchContribution { const takeSurveyAction = new Action('nps.takeSurvey', nls.localize('takeSurvey', "Take Survey"), '', true, () => { return telemetryService.getTelemetryInfo().then(info => { - shell.openExternal(`${product.npsSurveyUrl}?o=${encodeURIComponent(process.platform)}&v=${encodeURIComponent(pkg.version)}&m=${encodeURIComponent(info.machineId)}`); + window.open(`${product.npsSurveyUrl}?o=${encodeURIComponent(process.platform)}&v=${encodeURIComponent(pkg.version)}&m=${encodeURIComponent(info.machineId)}`); storageService.store(IS_CANDIDATE_KEY, false, StorageScope.GLOBAL); storageService.store(SKIP_VERSION_KEY, pkg.version, StorageScope.GLOBAL); }); diff --git a/src/vs/workbench/parts/update/electron-browser/update.ts b/src/vs/workbench/parts/update/electron-browser/update.ts index 84535a0694f..44e822d5a81 100644 --- a/src/vs/workbench/parts/update/electron-browser/update.ts +++ b/src/vs/workbench/parts/update/electron-browser/update.ts @@ -9,7 +9,7 @@ import nls = require('vs/nls'); import severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; -import { ipcRenderer as ipc, shell } from 'electron'; +import { ipcRenderer as ipc } from 'electron'; import { IMessageService, CloseAction, Severity } from 'vs/platform/message/common/message'; import pkg from 'vs/platform/package'; import product from 'vs/platform/product'; @@ -178,12 +178,12 @@ export const DownloadAction = (url: string) => new Action( nls.localize('downloadNow', "Download Now"), null, true, - () => { shell.openExternal(url); return TPromise.as(true); } + () => { window.open(url); return TPromise.as(true); } ); const LinkAction = (id: string, message: string, licenseUrl: string) => new Action( id, message, null, true, - () => { shell.openExternal(licenseUrl); return TPromise.as(null); } + () => { window.open(licenseUrl); return TPromise.as(null); } ); export class UpdateContribution implements IWorkbenchContribution { @@ -235,7 +235,7 @@ export class UpdateContribution implements IWorkbenchContribution { message: nls.localize('insiderBuilds', "Insider builds and releases everyday!", product.nameLong, pkg.version), actions: [ new Action('update.insiderBuilds', nls.localize('readmore', "Read More"), '', true, () => { - shell.openExternal('http://go.microsoft.com/fwlink/?LinkID=798816'); + window.open('http://go.microsoft.com/fwlink/?LinkID=798816'); storageService.store(UpdateContribution.INSIDER_KEY, false, StorageScope.GLOBAL); return TPromise.as(null); }), diff --git a/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts b/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts index b3181b82ced..6dc258ebd12 100644 --- a/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts +++ b/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts @@ -8,8 +8,6 @@ import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { AbstractGettingStarted } from 'vs/workbench/parts/welcome/common/abstractGettingStarted'; import * as platform from 'vs/base/common/platform'; -import { shell } from 'electron'; - export class ElectronGettingStarted extends AbstractGettingStarted implements IWorkbenchContribution { protected openExternal(url: string) { @@ -18,7 +16,7 @@ export class ElectronGettingStarted extends AbstractGettingStarted implements IW if (platform.isLinux && platform.isRootUser) { return; } - shell.openExternal(url); + window.open(url); } protected handleWelcome(): void { diff --git a/src/vs/workbench/services/files/electron-browser/fileService.ts b/src/vs/workbench/services/files/electron-browser/fileService.ts index 36e56861636..18e7c0c9c60 100644 --- a/src/vs/workbench/services/files/electron-browser/fileService.ts +++ b/src/vs/workbench/services/files/electron-browser/fileService.ts @@ -96,7 +96,7 @@ export class FileService implements IFileService { message: nls.localize('netVersionError', "The Microsoft .NET Framework 4.5 is required. Please follow the link to install it."), actions: [ new Action('install.net', nls.localize('installNet', "Download .NET Framework 4.5"), null, true, () => { - shell.openExternal('https://go.microsoft.com/fwlink/?LinkId=786533'); + window.open('https://go.microsoft.com/fwlink/?LinkId=786533'); return TPromise.as(true); }), From e73a6143fef1b7bd22c9fdc93b681600e6ccf67c Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 26 Oct 2016 16:56:26 +0200 Subject: [PATCH 110/242] fixes #14343 --- .../extensions/electron-browser/extensionsWorkbenchService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts index 594e5047227..e553a385cd5 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts @@ -427,7 +427,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { const delay = immediate ? 0 : ExtensionsWorkbenchService.SyncPeriod; this.syncDelayer.trigger(loop, delay) - .done(null, err => this.onError(err)); + .done(null, err => null); } private syncWithGallery(): TPromise { @@ -445,7 +445,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { private eventuallyAutoUpdateExtensions(): void { this.autoUpdateDelayer.trigger(() => this.autoUpdateExtensions()) - .done(null, err => this.onError(err)); + .done(null, err => null); } private autoUpdateExtensions(): TPromise { From 44b92df5b2a6122e923696eb4fb036197fe953c2 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Oct 2016 17:20:24 +0200 Subject: [PATCH 111/242] Fix #14413 --- .../node/extensionManagementService.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts index bfbc1bc2e17..1454d13f0e3 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts @@ -377,11 +377,24 @@ export class ExtensionManagementService implements IExtensionManagementService { const dependenciesToUninstall = this.filterDependents(extension, dependencies, installed); let dependents = this.getDependents(extension, installed).filter(dependent => extension !== dependent && dependenciesToUninstall.indexOf(dependent) === -1); if (dependents.length) { - return TPromise.wrapError(nls.localize('hasDependentsError', "Cannot uninstall extension '{0}'. Some of the installed extensions depends on this.", extension.manifest.displayName || extension.manifest.name)); + return TPromise.wrapError(this.getDependentsErrorMessage(extension, dependents)); } return TPromise.join([this.uninstallExtension(extension.id), ...dependenciesToUninstall.map(d => this.doUninstall(d.id))]).then(() => null); } + private getDependentsErrorMessage(extension: ILocalExtension, dependents: ILocalExtension[]): string { + if (dependents.length === 1) { + return nls.localize('singleDependentError', "Cannot uninstall extension '{0}'. Extension '{1}' depends on this.", + extension.manifest.displayName || extension.manifest.name, dependents[0].manifest.displayName || dependents[0].manifest.name); + } + if (dependents.length === 2) { + return nls.localize('twoDependentsError', "Cannot uninstall extension '{0}'. Extensions '{1}' and '{2}' depend on this.", + extension.manifest.displayName || extension.manifest.name, dependents[0].manifest.displayName || dependents[0].manifest.name, dependents[1].manifest.displayName || dependents[1].manifest.name); + } + return nls.localize('multipleDependentsError', "Cannot uninstall extension '{0}'. Extensions '{1}', '{2}' and others depend on this.", + extension.manifest.displayName || extension.manifest.name, dependents[0].manifest.displayName || dependents[0].manifest.name, dependents[1].manifest.displayName || dependents[1].manifest.name); + } + private getDependenciesToUninstallRecursively(extension: ILocalExtension, installed: ILocalExtension[], checked: ILocalExtension[]): ILocalExtension[] { if (checked.indexOf(extension) !== -1) { return []; From 83a661532be0a91c862f944b8fd0f3287e9ebec9 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 26 Oct 2016 17:46:14 +0200 Subject: [PATCH 112/242] Fix #14307 --- .../electron-browser/extensionsWorkbenchService.ts | 9 +++++---- .../electron-browser/media/extensionEditor.css | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts index e553a385cd5..e36f9c37312 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts @@ -234,8 +234,8 @@ class Extension implements IExtension { if (gallery) { return gallery.properties.dependencies; } - if (local) { - return local.manifest.extensionDependencies && local.manifest.extensionDependencies; + if (local && local.manifest.extensionDependencies) { + return local.manifest.extensionDependencies; } return []; } @@ -243,7 +243,7 @@ class Extension implements IExtension { class ExtensionDependencies implements IExtensionDependencies { - constructor(private _extension: IExtension, private _identifier: string, private _map: Map, private _dependent: IExtensionDependencies = null) { } + constructor(private _extension: IExtension, private _identifier: string, private _map: Map, private _dependent: IExtensionDependencies = null) { } get hasDependencies(): boolean { return this._extension ? this._extension.dependencies.length > 0 : false; @@ -384,8 +384,9 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { return this.galleryService.getAllDependencies((extension).gallery) .then(galleryExtensions => galleryExtensions.map(galleryExtension => this.fromGallery(galleryExtension))) + .then(extensions => [...this.local, ...extensions]) .then(extensions => { - const map = new Map(); + const map = new Map(); for (const extension of extensions) { map.set(`${extension.publisher}.${extension.name}`, extension); } diff --git a/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css b/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css index 84b3b8458b9..3925233b8a2 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css +++ b/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css @@ -233,6 +233,7 @@ padding: 2px 4px; font-weight: bold; font-size: 11px; + color: #CCC; } .extension-editor .subcontent .monaco-tree-row .unknown-dependency > .message { From 56f9d92e452aee12b4c31322c453bf52d82141e8 Mon Sep 17 00:00:00 2001 From: Andre Weinand Date: Wed, 26 Oct 2016 17:40:25 +0200 Subject: [PATCH 113/242] use v1.14 of debug protocol module --- npm-shrinkwrap.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 854955f84bd..8204cc5dae1 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -405,9 +405,9 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" }, "vscode-debugprotocol": { - "version": "1.13.0", - "from": "vscode-debugprotocol@1.13.0", - "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.13.0.tgz" + "version": "1.14.0", + "from": "vscode-debugprotocol@1.14.0", + "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.14.0.tgz" }, "vscode-textmate": { "version": "2.3.0", diff --git a/package.json b/package.json index 79c7b4ac6b5..75d0f82a449 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "native-keymap": "0.3.0", "pty.js": "https://github.com/Tyriar/pty.js/tarball/c75c2dcb6dcad83b0cb3ef2ae42d0448fb912642", "semver": "4.3.6", - "vscode-debugprotocol": "1.13.0", + "vscode-debugprotocol": "1.14.0", "vscode-textmate": "2.3.0", "winreg": "1.2.0", "xterm": "git+https://github.com/Tyriar/xterm.js.git#vscode-release/1.7", From cdab571a2ba918c93185f79419a4f6bddaa7fc25 Mon Sep 17 00:00:00 2001 From: Andre Weinand Date: Wed, 26 Oct 2016 17:51:46 +0200 Subject: [PATCH 114/242] update node-debug --- build/gulpfile.vscode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index 40a551bbb48..87fe83151c9 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -39,7 +39,7 @@ const nodeModules = ['electron', 'original-fs'] // Build const builtInExtensions = [ - { name: 'ms-vscode.node-debug', version: '1.7.6' }, + { name: 'ms-vscode.node-debug', version: '1.7.7' }, { name: 'ms-vscode.node-debug2', version: '1.7.0' } ]; From ebd2e2e57d657b66650bda128ac9891efe58cec9 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Wed, 26 Oct 2016 18:10:55 +0200 Subject: [PATCH 115/242] log save participant timings, #13492 --- src/vs/workbench/api/node/extHost.protocol.ts | 2 +- .../api/node/mainThreadSaveParticipant.ts | 29 ++++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index fe0a73be762..1938377959b 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -235,7 +235,7 @@ export abstract class ExtHostDocumentsShape { } export abstract class ExtHostDocumentSaveParticipantShape { - $participateInSave(resource: URI, reason: SaveReason): TPromise { throw ni(); } + $participateInSave(resource: URI, reason: SaveReason): TPromise { throw ni(); } } export interface ITextEditorAddData { diff --git a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts index 997c2da82ee..fcee60aee33 100644 --- a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts +++ b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts @@ -11,6 +11,7 @@ import { ICodeEditorService } from 'vs/editor/common/services/codeEditorService' import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { ISaveParticipant, ITextFileEditorModel, SaveReason } from 'vs/workbench/services/textfile/common/textfiles'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IPosition, IModel, ICommonCodeEditor, ISingleEditOperation, IIdentifiedSingleEditOperation } from 'vs/editor/common/editorCommon'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; @@ -97,7 +98,7 @@ class FormatOnSaveParticipant implements ISaveParticipant { const {tabSize, insertSpaces} = model.getOptions(); return new TPromise((resolve, reject) => { - setTimeout(resolve, 750); + setTimeout(reject, 750); getDocumentFormattingEdits(model, { tabSize, insertSpaces }).then(resolve, reject); }).then(edits => { @@ -167,7 +168,13 @@ class ExtHostSaveParticipant implements ISaveParticipant { } participate(editorModel: ITextFileEditorModel, env: { reason: SaveReason }): TPromise { - return this._proxy.$participateInSave(editorModel.getResource(), env.reason); + return this._proxy.$participateInSave(editorModel.getResource(), env.reason).then(values => { + for (const success of values) { + if (!success) { + return TPromise.wrapError('listener failed'); + } + } + }); } } @@ -177,6 +184,7 @@ export class SaveParticipant implements ISaveParticipant { private _saveParticipants: ISaveParticipant[]; constructor( + @ITelemetryService private _telemetryService: ITelemetryService, @IInstantiationService instantiationService: IInstantiationService, @IThreadService threadService: IThreadService ) { @@ -191,11 +199,24 @@ export class SaveParticipant implements ISaveParticipant { TextFileEditorModel.setSaveParticipant(this); } participate(model: ITextFileEditorModel, env: { reason: SaveReason }): TPromise { + + const stats: { [name: string]: number } = Object.create(null); + const promiseFactory = this._saveParticipants.map(p => () => { - return TPromise.as(p.participate(model, env)).then(undefined, err => { + + const {name} = Object.getPrototypeOf(p).constructor; + const t1 = Date.now(); + + return TPromise.as(p.participate(model, env)).then(() => { + stats[`Success-${name}`] = Date.now() - t1; + }, err => { + stats[`Failure-${name}`] = Date.now() - t1; // console.error(err); }); }); - return sequence(promiseFactory); + + return sequence(promiseFactory).then(() => { + this._telemetryService.publicLog('saveParticipantTimes', stats); + }); } } From 8e5cf5a9907401caeb9559a58a94c08698d4a9cb Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Wed, 26 Oct 2016 19:14:58 +0200 Subject: [PATCH 116/242] Fixes #12821: Output panel grabs focus when tsc is restarted --- .../parts/tasks/electron-browser/task.contribution.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts index da4669df741..1fcdc06386f 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts @@ -215,7 +215,7 @@ abstract class OpenTaskConfigurationAction extends Action { let contentPromise: TPromise; if (selection.autoDetect) { const outputChannel = this.outputService.getChannel(TaskService.OutputChannelId); - outputChannel.show(); + outputChannel.show(true); outputChannel.append(nls.localize('ConfigureTaskRunnerAction.autoDetecting', 'Auto detecting tasks for {0}', selection.id) + '\n'); let detector = new ProcessRunnerDetector(this.fileService, this.contextService, this.configurationResolverService); contentPromise = detector.detect(false, selection.id).then((value) => { @@ -367,7 +367,7 @@ class ShowLogAction extends AbstractTaskAction { if (!this.canRun()) { return TPromise.as(undefined); } - return this.outputService.getChannel(TaskService.OutputChannelId).show(); + return this.outputService.getChannel(TaskService.OutputChannelId).show(true); } } From 949dc8c8935279f258a17248e4d150967ad8f820 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 16:31:37 +0200 Subject: [PATCH 117/242] Remove extraneous boolean (#14500) --- .../platform/extensions/common/extensions.ts | 27 +++++++++---------- src/vs/workbench/node/extensionPoints.ts | 16 ++++++++++- .../extensions/electron-browser/extensions.ts | 5 +--- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts index 0fdccd1eeeb..f3a0e667526 100644 --- a/src/vs/platform/extensions/common/extensions.ts +++ b/src/vs/platform/extensions/common/extensions.ts @@ -9,19 +9,19 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; export interface IExtensionDescription { - id: string; - name: string; - version: string; - publisher: string; - isBuiltin: boolean; - extensionFolderPath: string; - extensionDependencies?: string[]; - activationEvents?: string[]; - engines: { + readonly id: string; + readonly name: string; + readonly version: string; + readonly publisher: string; + readonly isBuiltin: boolean; + readonly extensionFolderPath: string; + readonly extensionDependencies?: string[]; + readonly activationEvents?: string[]; + readonly engines: { vscode: string; }; - main?: string; - contributes?: { [point: string]: any; }; + readonly main?: string; + readonly contributes?: { [point: string]: any; }; } export interface IActivationEventListener { @@ -69,10 +69,9 @@ export interface IExtensionsRuntimeService { _serviceBrand: any; /** - * if `includeDisabled` is `true` returns all extensions otherwise - * returns only enabled extensions + * Scans and returns only enabled extensions. */ - getExtensions(includeDisabled?: boolean): TPromise; + getExtensions(): TPromise; /** * Returns `true` if given extension is disabled, otherwise `false`. diff --git a/src/vs/workbench/node/extensionPoints.ts b/src/vs/workbench/node/extensionPoints.ts index e57b7488523..8e6f8d8e39e 100644 --- a/src/vs/workbench/node/extensionPoints.ts +++ b/src/vs/workbench/node/extensionPoints.ts @@ -198,7 +198,21 @@ class ExtensionManifestNLSReplacer extends ExtensionManifestHandler { } class ExtensionManifestValidator extends ExtensionManifestHandler { - validate(extensionDescription: IExtensionDescription): IExtensionDescription { + validate(_extensionDescription: IExtensionDescription): IExtensionDescription { + // Relax the readonly properties here, it is the one place where we check and normalize values + interface IRelaxedExtensionDescription { + id: string; + name: string; + version: string; + publisher: string; + isBuiltin: boolean; + extensionFolderPath: string; + engines: { + vscode: string; + }; + main?: string; + } + let extensionDescription = _extensionDescription; extensionDescription.isBuiltin = this._isBuiltin; let notices: string[] = []; diff --git a/src/vs/workbench/services/extensions/electron-browser/extensions.ts b/src/vs/workbench/services/extensions/electron-browser/extensions.ts index c57b12fb2e4..3d0c67bba29 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensions.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensions.ts @@ -47,13 +47,10 @@ export class ExtensionsRuntimeService implements IExtensionsRuntimeService { extensionManagementService.onDidUninstallExtension(this.onDidUninstallExtension, this, this.disposables); } - public getExtensions(includeDisabled: boolean = false): TPromise { + public getExtensions(): TPromise { if (!this.installedExtensions) { this.installedExtensions = this.scanExtensions(); } - if (includeDisabled) { - return this.installedExtensions; - } return this.installedExtensions.then(extensionDescriptions => { const disabledExtensions = this.getDisabledExtensions(); return disabledExtensions.length ? extensionDescriptions.filter(e => disabledExtensions.indexOf(`${e.publisher}.${e.name}`) === -1) : extensionDescriptions; From 7d3a902fff8d95d7547520b55405597b45eec15f Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 17:06:53 +0200 Subject: [PATCH 118/242] Extract `isValidExtensionDescription` out of extensionsRegistry --- .../platform/extensions/common/extensions.ts | 1 + .../extensions/common/extensionsRegistry.ts | 71 ------------------ .../extensions/node/extensionValidator.ts | 75 ++++++++++++++++++- 3 files changed, 75 insertions(+), 72 deletions(-) diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts index f3a0e667526..66896440a85 100644 --- a/src/vs/platform/extensions/common/extensions.ts +++ b/src/vs/platform/extensions/common/extensions.ts @@ -70,6 +70,7 @@ export interface IExtensionsRuntimeService { /** * Scans and returns only enabled extensions. + * **NOTE**: This call returns different results based on `setEnablement` calls! */ getExtensions(): TPromise; diff --git a/src/vs/platform/extensions/common/extensionsRegistry.ts b/src/vs/platform/extensions/common/extensionsRegistry.ts index ac4b01e9021..006140e0e2c 100644 --- a/src/vs/platform/extensions/common/extensionsRegistry.ts +++ b/src/vs/platform/extensions/common/extensionsRegistry.ts @@ -7,7 +7,6 @@ import * as nls from 'vs/nls'; import { onUnexpectedError } from 'vs/base/common/errors'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; -import * as paths from 'vs/base/common/paths'; import Severity from 'vs/base/common/severity'; import { IActivationEventListener, IMessage, IExtensionDescription, IPointListener } from 'vs/platform/extensions/common/extensions'; import { Extensions, IJSONContributionRegistry } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; @@ -51,66 +50,7 @@ class ExtensionMessageCollector implements IExtensionMessageCollector { } -export function isValidExtensionDescription(extensionFolderPath: string, extensionDescription: IExtensionDescription, notices: string[]): boolean { - if (!extensionDescription) { - notices.push(nls.localize('extensionDescription.empty', "Got empty extension description")); - return false; - } - if (typeof extensionDescription.publisher !== 'string') { - notices.push(nls.localize('extensionDescription.publisher', "property `{0}` is mandatory and must be of type `string`", 'publisher')); - return false; - } - if (typeof extensionDescription.name !== 'string') { - notices.push(nls.localize('extensionDescription.name', "property `{0}` is mandatory and must be of type `string`", 'name')); - return false; - } - if (typeof extensionDescription.version !== 'string') { - notices.push(nls.localize('extensionDescription.version', "property `{0}` is mandatory and must be of type `string`", 'version')); - return false; - } - if (!extensionDescription.engines) { - notices.push(nls.localize('extensionDescription.engines', "property `{0}` is mandatory and must be of type `object`", 'engines')); - return false; - } - if (typeof extensionDescription.engines.vscode !== 'string') { - notices.push(nls.localize('extensionDescription.engines.vscode', "property `{0}` is mandatory and must be of type `string`", 'engines.vscode')); - return false; - } - if (typeof extensionDescription.extensionDependencies !== 'undefined') { - if (!_isStringArray(extensionDescription.extensionDependencies)) { - notices.push(nls.localize('extensionDescription.extensionDependencies', "property `{0}` can be omitted or must be of type `string[]`", 'extensionDependencies')); - return false; - } - } - if (typeof extensionDescription.activationEvents !== 'undefined') { - if (!_isStringArray(extensionDescription.activationEvents)) { - notices.push(nls.localize('extensionDescription.activationEvents1', "property `{0}` can be omitted or must be of type `string[]`", 'activationEvents')); - return false; - } - if (typeof extensionDescription.main === 'undefined') { - notices.push(nls.localize('extensionDescription.activationEvents2', "properties `{0}` and `{1}` must both be specified or must both be omitted", 'activationEvents', 'main')); - return false; - } - } - if (typeof extensionDescription.main !== 'undefined') { - if (typeof extensionDescription.main !== 'string') { - notices.push(nls.localize('extensionDescription.main1', "property `{0}` can be omitted or must be of type `string`", 'main')); - return false; - } else { - let normalizedAbsolutePath = paths.normalize(paths.join(extensionFolderPath, extensionDescription.main)); - if (normalizedAbsolutePath.indexOf(extensionFolderPath)) { - notices.push(nls.localize('extensionDescription.main2', "Expected `main` ({0}) to be included inside extension's folder ({1}). This might make the extension non-portable.", normalizedAbsolutePath, extensionFolderPath)); - // not a failure case - } - } - if (typeof extensionDescription.activationEvents === 'undefined') { - notices.push(nls.localize('extensionDescription.main3', "properties `{0}` and `{1}` must both be specified or must both be omitted", 'activationEvents', 'main')); - return false; - } - } - return true; -} interface IExtensionDescriptionMap { [extensionId: string]: IExtensionDescription; @@ -453,17 +393,6 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { } -function _isStringArray(arr: string[]): boolean { - if (!Array.isArray(arr)) { - return false; - } - for (let i = 0, len = arr.length; i < len; i++) { - if (typeof arr[i] !== 'string') { - return false; - } - } - return true; -} const PRExtensions = { ExtensionsRegistry: 'ExtensionsRegistry' diff --git a/src/vs/platform/extensions/node/extensionValidator.ts b/src/vs/platform/extensions/node/extensionValidator.ts index 89e1352b6c9..0589fdb05ab 100644 --- a/src/vs/platform/extensions/node/extensionValidator.ts +++ b/src/vs/platform/extensions/node/extensionValidator.ts @@ -6,8 +6,8 @@ import * as nls from 'vs/nls'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; -import { isValidExtensionDescription as baseIsValidExtensionDescription } from 'vs/platform/extensions/common/extensionsRegistry'; import { valid } from 'semver'; +import * as paths from 'vs/base/common/paths'; export interface IParsedVersion { hasCaret: boolean; @@ -230,6 +230,79 @@ export function isVersionValid(currentVersion: string, requestedVersion: string, return true; } +function _isStringArray(arr: string[]): boolean { + if (!Array.isArray(arr)) { + return false; + } + for (let i = 0, len = arr.length; i < len; i++) { + if (typeof arr[i] !== 'string') { + return false; + } + } + return true; +} + +function baseIsValidExtensionDescription(extensionFolderPath: string, extensionDescription: IExtensionDescription, notices: string[]): boolean { + if (!extensionDescription) { + notices.push(nls.localize('extensionDescription.empty', "Got empty extension description")); + return false; + } + if (typeof extensionDescription.publisher !== 'string') { + notices.push(nls.localize('extensionDescription.publisher', "property `{0}` is mandatory and must be of type `string`", 'publisher')); + return false; + } + if (typeof extensionDescription.name !== 'string') { + notices.push(nls.localize('extensionDescription.name', "property `{0}` is mandatory and must be of type `string`", 'name')); + return false; + } + if (typeof extensionDescription.version !== 'string') { + notices.push(nls.localize('extensionDescription.version', "property `{0}` is mandatory and must be of type `string`", 'version')); + return false; + } + if (!extensionDescription.engines) { + notices.push(nls.localize('extensionDescription.engines', "property `{0}` is mandatory and must be of type `object`", 'engines')); + return false; + } + if (typeof extensionDescription.engines.vscode !== 'string') { + notices.push(nls.localize('extensionDescription.engines.vscode', "property `{0}` is mandatory and must be of type `string`", 'engines.vscode')); + return false; + } + if (typeof extensionDescription.extensionDependencies !== 'undefined') { + if (!_isStringArray(extensionDescription.extensionDependencies)) { + notices.push(nls.localize('extensionDescription.extensionDependencies', "property `{0}` can be omitted or must be of type `string[]`", 'extensionDependencies')); + return false; + } + } + if (typeof extensionDescription.activationEvents !== 'undefined') { + if (!_isStringArray(extensionDescription.activationEvents)) { + notices.push(nls.localize('extensionDescription.activationEvents1', "property `{0}` can be omitted or must be of type `string[]`", 'activationEvents')); + return false; + } + if (typeof extensionDescription.main === 'undefined') { + notices.push(nls.localize('extensionDescription.activationEvents2', "properties `{0}` and `{1}` must both be specified or must both be omitted", 'activationEvents', 'main')); + return false; + } + } + if (typeof extensionDescription.main !== 'undefined') { + if (typeof extensionDescription.main !== 'string') { + notices.push(nls.localize('extensionDescription.main1', "property `{0}` can be omitted or must be of type `string`", 'main')); + return false; + } else { + let normalizedAbsolutePath = paths.normalize(paths.join(extensionFolderPath, extensionDescription.main)); + + if (normalizedAbsolutePath.indexOf(extensionFolderPath)) { + notices.push(nls.localize('extensionDescription.main2', "Expected `main` ({0}) to be included inside extension's folder ({1}). This might make the extension non-portable.", normalizedAbsolutePath, extensionFolderPath)); + // not a failure case + } + } + if (typeof extensionDescription.activationEvents === 'undefined') { + notices.push(nls.localize('extensionDescription.main3', "properties `{0}` and `{1}` must both be specified or must both be omitted", 'activationEvents', 'main')); + return false; + } + } + return true; +} + export function isValidExtensionDescription(version: string, extensionFolderPath: string, extensionDescription: IExtensionDescription, notices: string[]): boolean { if (!baseIsValidExtensionDescription(extensionFolderPath, extensionDescription, notices)) { From 360234e3b8b8b24927bcfb1e40b1ee45296a822d Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 17:28:52 +0200 Subject: [PATCH 119/242] emmet: wait for onReady signal before interacting with extensions --- .../parts/emmet/node/emmetActions.ts | 48 +++++++++++++------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/src/vs/workbench/parts/emmet/node/emmetActions.ts b/src/vs/workbench/parts/emmet/node/emmetActions.ts index 296bd9b298b..0b273de5c62 100644 --- a/src/vs/workbench/parts/emmet/node/emmetActions.ts +++ b/src/vs/workbench/parts/emmet/node/emmetActions.ts @@ -14,6 +14,7 @@ import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegi import { EditorAccessor, IGrammarContributions } from 'vs/workbench/parts/emmet/node/editorAccessor'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; +import { IExtensionService } from 'vs/platform/extensions/common/extensions'; import * as emmet from 'emmet'; interface IEmmetConfiguration { @@ -134,29 +135,46 @@ export abstract class EmmetEditorAction extends EditorAction { // default do nothing } + private _lastGrammarContributions: TPromise = null; + private _lastExtensionService: IExtensionService = null; + private _withGrammarContributions(extensionService: IExtensionService): TPromise { + if (this._lastExtensionService !== extensionService) { + this._lastExtensionService = extensionService; + this._lastGrammarContributions = extensionService.onReady().then(() => { + return new GrammarContributions(); + }); + } + return this._lastGrammarContributions; + } + public run(accessor: ServicesAccessor, editor: ICommonCodeEditor): TPromise { const configurationService = accessor.get(IConfigurationService); const instantiationService = accessor.get(IInstantiationService); + const extensionService = accessor.get(IExtensionService); - let editorAccessor = new EditorAccessor( - editor, - configurationService.getConfiguration().emmet.syntaxProfiles, - configurationService.getConfiguration().emmet.excludeLanguages, - new GrammarContributions() - ); + return this._withGrammarContributions(extensionService).then((grammarContributions) => { - if (!editorAccessor.isEmmetEnabledMode()) { - this.noExpansionOccurred(editor); - return; - } + let editorAccessor = new EditorAccessor( + editor, + configurationService.getConfiguration().emmet.syntaxProfiles, + configurationService.getConfiguration().emmet.excludeLanguages, + grammarContributions + ); - return LazyEmmet.withConfiguredEmmet(configurationService, (_emmet) => { - editorAccessor.onBeforeEmmetAction(); - instantiationService.invokeFunction((accessor) => { - this.runEmmetAction(accessor, new EmmetActionContext(editor, _emmet, editorAccessor)); + if (!editorAccessor.isEmmetEnabledMode()) { + this.noExpansionOccurred(editor); + return; + } + + return LazyEmmet.withConfiguredEmmet(configurationService, (_emmet) => { + editorAccessor.onBeforeEmmetAction(); + instantiationService.invokeFunction((accessor) => { + this.runEmmetAction(accessor, new EmmetActionContext(editor, _emmet, editorAccessor)); + }); + editorAccessor.onAfterEmmetAction(); }); - editorAccessor.onAfterEmmetAction(); }); + } } From c9e75f42ffdac3c8350ddc869a6fd9c63373b9b7 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 17:44:24 +0200 Subject: [PATCH 120/242] Avoid unnecessary reading from ExtensionsRegistry --- .../themes/electron-browser/themeService.ts | 63 +++++++++++++------ 1 file changed, 44 insertions(+), 19 deletions(-) diff --git a/src/vs/workbench/services/themes/electron-browser/themeService.ts b/src/vs/workbench/services/themes/electron-browser/themeService.ts index 9be5cff8b6c..5487b6ab663 100644 --- a/src/vs/workbench/services/themes/electron-browser/themeService.ts +++ b/src/vs/workbench/services/themes/electron-browser/themeService.ts @@ -104,6 +104,9 @@ let iconThemeExtPoint = ExtensionsRegistry.registerExtensionPoint { for (let ext of extensions) { - this.onThemes(ext.description.extensionFolderPath, ext.description.id, ext.value, ext.collector); + let extensionData = { + extensionId: ext.description.id, + extensionPublisher: ext.description.publisher, + extensionName: ext.description.name, + extensionIsBuiltin: ext.description.isBuiltin + }; + this.onThemes(ext.description.extensionFolderPath, extensionData, ext.value, ext.collector); } }); @@ -176,7 +192,13 @@ export class ThemeService implements IThemeService { iconThemeExtPoint.setHandler((extensions) => { for (let ext of extensions) { - this.onIconThemes(ext.description.extensionFolderPath, ext.description.id, ext.value, ext.collector); + let extensionData = { + extensionId: ext.description.id, + extensionPublisher: ext.description.publisher, + extensionName: ext.description.name, + extensionIsBuiltin: ext.description.isBuiltin + }; + this.onIconThemes(ext.description.extensionFolderPath, extensionData, ext.value, ext.collector); } }); @@ -277,7 +299,7 @@ export class ThemeService implements IThemeService { }); } - private onThemes(extensionFolderPath: string, extensionId: string, themes: IThemeExtensionPoint[], collector: IExtensionMessageCollector): void { + private onThemes(extensionFolderPath: string, extensionData: ExtensionData, themes: IThemeExtensionPoint[], collector: IExtensionMessageCollector): void { if (!Array.isArray(themes)) { collector.error(nls.localize( 'reqarray', @@ -302,18 +324,21 @@ export class ThemeService implements IThemeService { collector.warn(nls.localize('invalid.path.1', "Expected `contributes.{0}.path` ({1}) to be included inside extension's folder ({2}). This might make the extension non-portable.", themesExtPoint.name, normalizedAbsolutePath, extensionFolderPath)); } - let themeSelector = toCSSSelector(extensionId + '-' + Paths.normalize(theme.path)); + let themeSelector = toCSSSelector(extensionData.extensionId + '-' + Paths.normalize(theme.path)); this.knownColorThemes.push({ id: `${theme.uiTheme || defaultBaseTheme} ${themeSelector}`, label: theme.label || Paths.basename(theme.path), description: theme.description, path: normalizedAbsolutePath, - extensionId: extensionId + extensionId: extensionData.extensionId, + extensionPublisher: extensionData.extensionPublisher, + extensionName: extensionData.extensionName, + extensionIsBuiltin: extensionData.extensionIsBuiltin }); }); } - private onIconThemes(extensionFolderPath: string, extensionId: string, iconThemes: IThemeExtensionPoint[], collector: IExtensionMessageCollector): void { + private onIconThemes(extensionFolderPath: string, extensionData: ExtensionData, iconThemes: IThemeExtensionPoint[], collector: IExtensionMessageCollector): void { if (!Array.isArray(iconThemes)) { collector.error(nls.localize( 'reqarray', @@ -348,11 +373,14 @@ export class ThemeService implements IThemeService { } this.knownIconThemes.push({ - id: extensionId + '-' + iconTheme.id, + id: extensionData.extensionId + '-' + iconTheme.id, label: iconTheme.label || Paths.basename(iconTheme.path), description: iconTheme.description, path: normalizedAbsolutePath, - extensionId: extensionId + extensionId: extensionData.extensionId, + extensionPublisher: extensionData.extensionPublisher, + extensionName: extensionData.extensionName, + extensionIsBuiltin: extensionData.extensionIsBuiltin }); }); } @@ -360,17 +388,14 @@ export class ThemeService implements IThemeService { private themeExtensionsActivated = {}; private sendTelemetry(themeData: IInternalThemeData) { if (!this.themeExtensionsActivated[themeData.extensionId]) { - let description = ExtensionsRegistry.getExtensionDescription(themeData.extensionId); - if (description) { - this.telemetryService.publicLog('activatePlugin', { - id: description.id, - name: description.name, - isBuiltin: description.isBuiltin, - publisherDisplayName: description.publisher, - themeId: themeData.id - }); - this.themeExtensionsActivated[themeData.extensionId] = true; - } + this.telemetryService.publicLog('activatePlugin', { + id: themeData.extensionId, + name: themeData.extensionName, + isBuiltin: themeData.extensionIsBuiltin, + publisherDisplayName: themeData.extensionPublisher, + themeId: themeData.id + }); + this.themeExtensionsActivated[themeData.extensionId] = true; } } From 746dceadca4b62aaece251fa5244751f8445dcaa Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 18:18:01 +0200 Subject: [PATCH 121/242] emmet - read grammars contributions through API --- src/vs/editor/node/textMate/TMSyntax.ts | 4 +-- .../commands/test/commandService.test.ts | 6 +++- .../common/abstractExtensionService.ts | 21 ++++++++++++-- .../platform/extensions/common/extensions.ts | 16 ++++++++++ .../parts/emmet/node/emmetActions.ts | 29 ++++++++----------- 5 files changed, 54 insertions(+), 22 deletions(-) diff --git a/src/vs/editor/node/textMate/TMSyntax.ts b/src/vs/editor/node/textMate/TMSyntax.ts index 96f738fb8a6..0c957f4e8c2 100644 --- a/src/vs/editor/node/textMate/TMSyntax.ts +++ b/src/vs/editor/node/textMate/TMSyntax.ts @@ -9,7 +9,7 @@ import { onUnexpectedError } from 'vs/base/common/errors'; import * as paths from 'vs/base/common/paths'; import * as strings from 'vs/base/common/strings'; import Event, { Emitter } from 'vs/base/common/event'; -import { IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionPoint, IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { ILineTokens, ITokenizationSupport, TokenizationRegistry } from 'vs/editor/common/modes'; import { TMState } from 'vs/editor/common/modes/TMState'; import { LineTokens } from 'vs/editor/common/modes/supports'; @@ -26,7 +26,7 @@ export interface ITMSyntaxExtensionPoint { } // TODO@Martin TS(2.0.2) - Type IJsonSchema has no defined property require. Keeping semantic using any cast -let grammarsExtPoint = ExtensionsRegistry.registerExtensionPoint('grammars', { +export const grammarsExtPoint: IExtensionPoint = ExtensionsRegistry.registerExtensionPoint('grammars', { description: nls.localize('vscode.extension.contributes.grammars', 'Contributes textmate tokenizers.'), type: 'array', defaultSnippets: [{ body: [{ language: '{{id}}', scopeName: 'source.{{id}}', path: './syntaxes/{{id}}.tmLanguage.' }] }], diff --git a/src/vs/platform/commands/test/commandService.test.ts b/src/vs/platform/commands/test/commandService.test.ts index fc181d7a231..3ef879a5d8f 100644 --- a/src/vs/platform/commands/test/commandService.test.ts +++ b/src/vs/platform/commands/test/commandService.test.ts @@ -9,8 +9,9 @@ import { IDisposable } from 'vs/base/common/lifecycle'; import { TPromise } from 'vs/base/common/winjs.base'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { CommandService } from 'vs/platform/commands/common/commandService'; -import { IExtensionService } from 'vs/platform/extensions/common/extensions'; +import { IExtensionService, ExtensionPointContribution } from 'vs/platform/extensions/common/extensions'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; +import { IExtensionPoint } from 'vs/platform/extensions/common/extensionsRegistry'; class SimpleExtensionService implements IExtensionService { _serviceBrand: any; @@ -20,6 +21,9 @@ class SimpleExtensionService implements IExtensionService { onReady(): TPromise { return TPromise.as(true); } + readExtensionPointContributions(extPoint:IExtensionPoint): TPromise[]> { + return TPromise.as([]); + } getExtensionsStatus() { return undefined; } diff --git a/src/vs/platform/extensions/common/abstractExtensionService.ts b/src/vs/platform/extensions/common/abstractExtensionService.ts index 6fea18a4015..5e6a5716e6a 100644 --- a/src/vs/platform/extensions/common/abstractExtensionService.ts +++ b/src/vs/platform/extensions/common/abstractExtensionService.ts @@ -7,8 +7,8 @@ import * as nls from 'vs/nls'; import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; -import { IExtensionDescription, IExtensionService, IExtensionsStatus } from 'vs/platform/extensions/common/extensions'; -import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionDescription, IExtensionService, IExtensionsStatus, ExtensionPointContribution } from 'vs/platform/extensions/common/extensions'; +import { IExtensionPoint, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; const hasOwnProperty = Object.hasOwnProperty; @@ -59,6 +59,23 @@ export abstract class AbstractExtensionService imp return this._onReady; } + public readExtensionPointContributions(extPoint: IExtensionPoint): TPromise[]> { + return this.onReady().then(() => { + let availableExtensions = ExtensionsRegistry.getAllExtensionDescriptions(); + + let result: ExtensionPointContribution[] = [], resultLen = 0; + for (let i = 0, len = availableExtensions.length; i < len; i++) { + let desc = availableExtensions[i]; + + if (desc.contributes && hasOwnProperty.call(desc.contributes, extPoint.name)) { + result[resultLen++] = new ExtensionPointContribution(desc, desc.contributes[extPoint.name]); + } + } + + return result; + }); + } + public getExtensionsStatus(): { [id: string]: IExtensionsStatus } { return null; } diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts index 66896440a85..ab6a9f54f74 100644 --- a/src/vs/platform/extensions/common/extensions.ts +++ b/src/vs/platform/extensions/common/extensions.ts @@ -7,6 +7,7 @@ import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; +import { IExtensionPoint } from 'vs/platform/extensions/common/extensionsRegistry'; export interface IExtensionDescription { readonly id: string; @@ -44,6 +45,16 @@ export interface IExtensionsStatus { messages: IMessage[]; } +export class ExtensionPointContribution { + readonly description: IExtensionDescription; + readonly value: T; + + constructor(description: IExtensionDescription, value: T) { + this.description = description; + this.value = value; + } +} + export interface IExtensionService { _serviceBrand: any; @@ -57,6 +68,11 @@ export interface IExtensionService { */ onReady(): TPromise; + /** + * Read all contributions to an extension point. + */ + readExtensionPointContributions(extPoint: IExtensionPoint): TPromise[]>; + /** * Get information about extensions status. */ diff --git a/src/vs/workbench/parts/emmet/node/emmetActions.ts b/src/vs/workbench/parts/emmet/node/emmetActions.ts index 0b273de5c62..f3cde468d4d 100644 --- a/src/vs/workbench/parts/emmet/node/emmetActions.ts +++ b/src/vs/workbench/parts/emmet/node/emmetActions.ts @@ -10,11 +10,11 @@ import { ICommonCodeEditor, EditorContextKeys } from 'vs/editor/common/editorCom import { EditorAction, ServicesAccessor } from 'vs/editor/common/editorCommonExtensions'; import { ICommandKeybindingsOptions } from 'vs/editor/common/config/config'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { grammarsExtPoint, ITMSyntaxExtensionPoint } from 'vs/editor/node/textMate/TMSyntax'; import { EditorAccessor, IGrammarContributions } from 'vs/workbench/parts/emmet/node/editorAccessor'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { IExtensionService } from 'vs/platform/extensions/common/extensions'; +import { IExtensionService, ExtensionPointContribution } from 'vs/platform/extensions/common/extensions'; import * as emmet from 'emmet'; interface IEmmetConfiguration { @@ -34,25 +34,20 @@ class GrammarContributions implements IGrammarContributions { private static _grammars: ModeScopeMap = null; - constructor() { + constructor(contributions: ExtensionPointContribution[]) { if (GrammarContributions._grammars === null) { - this.fillModeScopeMap(); + this.fillModeScopeMap(contributions); } } - private fillModeScopeMap() { + private fillModeScopeMap(contributions: ExtensionPointContribution[]) { GrammarContributions._grammars = {}; - ExtensionsRegistry.getAllExtensionDescriptions().forEach((desc) => { - if (desc.contributes) { - let grammars = (desc.contributes).grammars; - if (grammars) { - grammars.forEach((grammar) => { - if (grammar.language && grammar.scopeName) { - GrammarContributions._grammars[grammar.language] = grammar.scopeName; - } - }); + contributions.forEach((contribution) => { + contribution.value.forEach((grammar) => { + if (grammar.language && grammar.scopeName) { + GrammarContributions._grammars[grammar.language] = grammar.scopeName; } - } + }); }); } @@ -140,8 +135,8 @@ export abstract class EmmetEditorAction extends EditorAction { private _withGrammarContributions(extensionService: IExtensionService): TPromise { if (this._lastExtensionService !== extensionService) { this._lastExtensionService = extensionService; - this._lastGrammarContributions = extensionService.onReady().then(() => { - return new GrammarContributions(); + this._lastGrammarContributions = extensionService.readExtensionPointContributions(grammarsExtPoint).then((contributions) => { + return new GrammarContributions(contributions); }); } return this._lastGrammarContributions; From 17243e765a4d02318a57493557710e4d93422f11 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 19:38:33 +0200 Subject: [PATCH 122/242] Simplify extension point handling --- .../editor/common/services/modeServiceImpl.ts | 4 +- src/vs/editor/node/textMate/TMSnippets.ts | 5 +- src/vs/editor/node/textMate/TMSyntax.ts | 3 +- .../actions/browser/menusExtensionPoint.ts | 4 +- .../common/configurationRegistry.ts | 2 +- .../platform/extensions/common/extensions.ts | 4 - .../extensions/common/extensionsRegistry.ts | 105 ++++++------------ .../common/jsonValidationExtensionPoint.ts | 2 +- src/vs/workbench/api/node/extHost.protocol.ts | 4 +- .../api/node/extHostExtensionService.ts | 6 +- .../api/node/mainThreadExtensionService.ts | 36 +++++- src/vs/workbench/node/extensionHostMain.ts | 2 +- .../debug/node/debugConfigurationManager.ts | 4 +- .../electron-browser/keybindingService.ts | 2 +- .../themes/electron-browser/themeService.ts | 4 +- 15 files changed, 87 insertions(+), 100 deletions(-) diff --git a/src/vs/editor/common/services/modeServiceImpl.ts b/src/vs/editor/common/services/modeServiceImpl.ts index 62c374a8c16..0b69fed633b 100644 --- a/src/vs/editor/common/services/modeServiceImpl.ts +++ b/src/vs/editor/common/services/modeServiceImpl.ts @@ -12,7 +12,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import mime = require('vs/base/common/mime'); import { IFilesConfiguration } from 'vs/platform/files/common/files'; import { IExtensionService } from 'vs/platform/extensions/common/extensions'; -import { IExtensionPointUser, IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionPoint, IExtensionPointUser, IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import * as modes from 'vs/editor/common/modes'; import { FrankensteinMode } from 'vs/editor/common/modes/abstractMode'; @@ -24,7 +24,7 @@ import { AbstractState } from 'vs/editor/common/modes/abstractState'; import { Token } from 'vs/editor/common/core/token'; import { ModeTransition } from 'vs/editor/common/core/modeTransition'; -let languagesExtPoint = ExtensionsRegistry.registerExtensionPoint('languages', { +export const languagesExtPoint: IExtensionPoint = ExtensionsRegistry.registerExtensionPoint('languages', [], { description: nls.localize('vscode.extension.contributes.languages', 'Contributes language declarations.'), type: 'array', items: { diff --git a/src/vs/editor/node/textMate/TMSnippets.ts b/src/vs/editor/node/textMate/TMSnippets.ts index 76661b2bd98..15b203a575e 100644 --- a/src/vs/editor/node/textMate/TMSnippets.ts +++ b/src/vs/editor/node/textMate/TMSnippets.ts @@ -13,13 +13,14 @@ import { IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/exte import { ISnippetsRegistry, Extensions, ISnippet } from 'vs/editor/common/modes/snippetsRegistry'; import { IModeService } from 'vs/editor/common/services/modeService'; import platform = require('vs/platform/platform'); +import { languagesExtPoint } from 'vs/editor/common/services/modeServiceImpl'; export interface ISnippetsExtensionPoint { language: string; path: string; } -let snippetsExtensionPoint = ExtensionsRegistry.registerExtensionPoint('snippets', { +let snippetsExtensionPoint = ExtensionsRegistry.registerExtensionPoint('snippets', [languagesExtPoint], { description: nls.localize('vscode.extension.contributes.snippets', 'Contributes snippets.'), type: 'array', defaultSnippets: [{ body: [{ language: '', path: '' }] }], @@ -56,7 +57,7 @@ export class MainProcessTextMateSnippet { } private _withSnippetContribution(extensionName: string, extensionFolderPath: string, snippet: ISnippetsExtensionPoint, collector: IExtensionMessageCollector): void { - if (!snippet.language || (typeof snippet.language !== 'string')) { + if (!snippet.language || (typeof snippet.language !== 'string') || !this._modeService.isRegisteredMode(snippet.language)) { collector.error(nls.localize('invalid.language', "Unknown language in `contributes.{0}.language`. Provided value: {1}", snippetsExtensionPoint.name, String(snippet.language))); return; } diff --git a/src/vs/editor/node/textMate/TMSyntax.ts b/src/vs/editor/node/textMate/TMSyntax.ts index 0c957f4e8c2..188e53df270 100644 --- a/src/vs/editor/node/textMate/TMSyntax.ts +++ b/src/vs/editor/node/textMate/TMSyntax.ts @@ -17,6 +17,7 @@ import { IModeService } from 'vs/editor/common/services/modeService'; import { IGrammar, Registry, StackElement, IToken } from 'vscode-textmate'; import { ModeTransition } from 'vs/editor/common/core/modeTransition'; import { Token } from 'vs/editor/common/core/token'; +import { languagesExtPoint } from 'vs/editor/common/services/modeServiceImpl'; export interface ITMSyntaxExtensionPoint { language: string; @@ -26,7 +27,7 @@ export interface ITMSyntaxExtensionPoint { } // TODO@Martin TS(2.0.2) - Type IJsonSchema has no defined property require. Keeping semantic using any cast -export const grammarsExtPoint: IExtensionPoint = ExtensionsRegistry.registerExtensionPoint('grammars', { +export const grammarsExtPoint: IExtensionPoint = ExtensionsRegistry.registerExtensionPoint('grammars', [languagesExtPoint], { description: nls.localize('vscode.extension.contributes.grammars', 'Contributes textmate tokenizers.'), type: 'array', defaultSnippets: [{ body: [{ language: '{{id}}', scopeName: 'source.{{id}}', path: './syntaxes/{{id}}.tmLanguage.' }] }], diff --git a/src/vs/platform/actions/browser/menusExtensionPoint.ts b/src/vs/platform/actions/browser/menusExtensionPoint.ts index 42e12353fdf..c1526a461e1 100644 --- a/src/vs/platform/actions/browser/menusExtensionPoint.ts +++ b/src/vs/platform/actions/browser/menusExtensionPoint.ts @@ -208,7 +208,7 @@ namespace schema { }; } -ExtensionsRegistry.registerExtensionPoint('commands', schema.commandsContribution).setHandler(extensions => { +ExtensionsRegistry.registerExtensionPoint('commands', [], schema.commandsContribution).setHandler(extensions => { const ids = new IdGenerator('contrib-cmd-icon-'); @@ -251,7 +251,7 @@ ExtensionsRegistry.registerExtensionPoint('menus', schema.menusContribtion).setHandler(extensions => { +ExtensionsRegistry.registerExtensionPoint<{ [loc: string]: schema.IUserFriendlyMenuItem[] }>('menus', [], schema.menusContribtion).setHandler(extensions => { for (let extension of extensions) { const {value, collector} = extension; diff --git a/src/vs/platform/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts index 3bd7abda4ce..64086447f3d 100644 --- a/src/vs/platform/configuration/common/configurationRegistry.ts +++ b/src/vs/platform/configuration/common/configurationRegistry.ts @@ -88,7 +88,7 @@ class ConfigurationRegistry implements IConfigurationRegistry { const configurationRegistry = new ConfigurationRegistry(); Registry.add(Extensions.Configuration, configurationRegistry); -const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint('configuration', { +const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint('configuration', [], { description: nls.localize('vscode.extension.contributes.configuration', 'Contributes configuration settings.'), type: 'object', defaultSnippets: [{ body: { title: '', properties: {} } }], diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts index ab6a9f54f74..0bd8d784f58 100644 --- a/src/vs/platform/extensions/common/extensions.ts +++ b/src/vs/platform/extensions/common/extensions.ts @@ -29,10 +29,6 @@ export interface IActivationEventListener { (): void; } -export interface IPointListener { - (desc: IExtensionDescription[]): void; -} - export const IExtensionService = createDecorator('extensionService'); export interface IMessage { diff --git a/src/vs/platform/extensions/common/extensionsRegistry.ts b/src/vs/platform/extensions/common/extensionsRegistry.ts index 006140e0e2c..e3fb2bde54e 100644 --- a/src/vs/platform/extensions/common/extensionsRegistry.ts +++ b/src/vs/platform/extensions/common/extensionsRegistry.ts @@ -8,7 +8,7 @@ import * as nls from 'vs/nls'; import { onUnexpectedError } from 'vs/base/common/errors'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import Severity from 'vs/base/common/severity'; -import { IActivationEventListener, IMessage, IExtensionDescription, IPointListener } from 'vs/platform/extensions/common/extensions'; +import { IActivationEventListener, IMessage, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { Extensions, IJSONContributionRegistry } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; import { Registry } from 'vs/platform/platform'; @@ -18,7 +18,7 @@ export interface IExtensionMessageCollector { info(message: string): void; } -class ExtensionMessageCollector implements IExtensionMessageCollector { +export class ExtensionMessageCollector implements IExtensionMessageCollector { private _messageHandler: (msg: IMessage) => void; private _source: string; @@ -83,52 +83,57 @@ export interface IExtensionsRegistry { registerOneTimeActivationEventListener(activationEvent: string, listener: IActivationEventListener): void; triggerActivationEventListeners(activationEvent: string): void; - registerExtensionPoint(extensionPoint: string, jsonSchema: IJSONSchema): IExtensionPoint; - handleExtensionPoints(messageHandler: (msg: IMessage) => void): void; + registerExtensionPoint(extensionPoint: string, deps: IExtensionPoint[], jsonSchema: IJSONSchema): IExtensionPoint; + getExtensionPoints(): ExtensionPoint[]; } -class ExtensionPoint implements IExtensionPoint { +export class ExtensionPoint implements IExtensionPoint { - public name: string; - private _registry: ExtensionsRegistryImpl; + public readonly name: string; private _handler: IExtensionPointHandler; - private _messageHandler: (msg: IMessage) => void; + private _users: IExtensionPointUser[]; + private _done: boolean; - constructor(name: string, registry: ExtensionsRegistryImpl) { + constructor(name: string) { this.name = name; - this._registry = registry; this._handler = null; - this._messageHandler = null; + this._users = null; + this._done = false; } setHandler(handler: IExtensionPointHandler): void { - if (this._handler) { + if (this._handler !== null || this._done) { throw new Error('Handler already set!'); } this._handler = handler; this._handle(); } - handle(messageHandler: (msg: IMessage) => void): void { - this._messageHandler = messageHandler; + acceptUsers(users: IExtensionPointUser[]): void { + if (this._users !== null || this._done) { + throw new Error('Users already set!'); + } + this._users = users; this._handle(); } private _handle(): void { - if (!this._handler || !this._messageHandler) { + if (this._handler === null || this._users === null) { return; } + this._done = true; - this._registry.registerPointListener(this.name, (descriptions: IExtensionDescription[]) => { - let users = descriptions.map((desc) => { - return { - description: desc, - value: desc.contributes[this.name], - collector: new ExtensionMessageCollector(this._messageHandler, desc.extensionFolderPath) - }; - }); - this._handler(users); - }); + let handler = this._handler; + this._handler = null; + + let users = this._users; + this._users = null; + + try { + handler(users); + } catch (err) { + onUnexpectedError(err); + } } } @@ -252,17 +257,11 @@ const schema: IJSONSchema = { } }; -interface IPointListenerEntry { - extensionPoint: string; - listener: IPointListener; -} - class ExtensionsRegistryImpl implements IExtensionsRegistry { private _extensionsMap: IExtensionDescriptionMap; private _extensionsArr: IExtensionDescription[]; private _activationMap: { [activationEvent: string]: IExtensionDescription[]; }; - private _pointListeners: IPointListenerEntry[]; private _oneTimeActivationEventListeners: { [activationEvent: string]: IActivationEventListener[]; }; private _extensionPoints: { [extPoint: string]: ExtensionPoint; }; @@ -270,25 +269,15 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { this._extensionsMap = {}; this._extensionsArr = []; this._activationMap = {}; - this._pointListeners = []; this._extensionPoints = {}; this._oneTimeActivationEventListeners = {}; } - public registerPointListener(point: string, handler: IPointListener): void { - let entry = { - extensionPoint: point, - listener: handler - }; - this._pointListeners.push(entry); - this._triggerPointListener(entry, ExtensionsRegistryImpl._filterWithExtPoint(this.getAllExtensionDescriptions(), point)); - } - - public registerExtensionPoint(extensionPoint: string, jsonSchema: IJSONSchema): IExtensionPoint { + public registerExtensionPoint(extensionPoint: string, deps: IExtensionPoint[], jsonSchema: IJSONSchema): IExtensionPoint { if (hasOwnProperty.call(this._extensionPoints, extensionPoint)) { throw new Error('Duplicate extension point: ' + extensionPoint); } - let result = new ExtensionPoint(extensionPoint, this); + let result = new ExtensionPoint(extensionPoint); this._extensionPoints[extensionPoint] = result; schema.properties['contributes'].properties[extensionPoint] = jsonSchema; @@ -297,22 +286,8 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { return result; } - public handleExtensionPoints(messageHandler: (msg: IMessage) => void): void { - Object.keys(this._extensionPoints).forEach((extensionPointName) => { - this._extensionPoints[extensionPointName].handle(messageHandler); - }); - } - - private _triggerPointListener(handler: IPointListenerEntry, desc: IExtensionDescription[]): void { - // console.log('_triggerPointListeners: ' + desc.length + ' OF ' + handler.extensionPoint); - if (!desc || desc.length === 0) { - return; - } - try { - handler.listener(desc); - } catch (e) { - onUnexpectedError(e); - } + public getExtensionPoints(): ExtensionPoint[] { + return Object.keys(this._extensionPoints).map(point => this._extensionPoints[point]); } public registerExtensions(extensionDescriptions: IExtensionDescription[]): void { @@ -336,18 +311,6 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { } } } - - for (let i = 0, len = this._pointListeners.length; i < len; i++) { - let listenerEntry = this._pointListeners[i]; - let descriptions = ExtensionsRegistryImpl._filterWithExtPoint(extensionDescriptions, listenerEntry.extensionPoint); - this._triggerPointListener(listenerEntry, descriptions); - } - } - - private static _filterWithExtPoint(input: IExtensionDescription[], point: string): IExtensionDescription[] { - return input.filter((desc) => { - return (desc.contributes && hasOwnProperty.call(desc.contributes, point)); - }); } public getExtensionDescriptionsForActivationEvent(activationEvent: string): IExtensionDescription[] { diff --git a/src/vs/platform/jsonschemas/common/jsonValidationExtensionPoint.ts b/src/vs/platform/jsonschemas/common/jsonValidationExtensionPoint.ts index f96051b652b..70864e06df8 100644 --- a/src/vs/platform/jsonschemas/common/jsonValidationExtensionPoint.ts +++ b/src/vs/platform/jsonschemas/common/jsonValidationExtensionPoint.ts @@ -15,7 +15,7 @@ interface IJSONValidationExtensionPoint { url: string; } -let configurationExtPoint = ExtensionsRegistry.registerExtensionPoint('jsonValidation', { +let configurationExtPoint = ExtensionsRegistry.registerExtensionPoint('jsonValidation', [], { description: nls.localize('contributes.jsonValidation', 'Contributes json schema configuration.'), type: 'array', defaultSnippets: [{ body: [{ fileMatch: '{{file.json}}', url: '{{url}}' }] }], diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 1938377959b..13781f3a5e4 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -18,7 +18,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IMarkerData } from 'vs/platform/markers/common/markers'; import { Position as EditorPosition } from 'vs/platform/editor/common/editor'; -import { IMessage, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; +import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { StatusbarAlignment as MainThreadStatusBarAlignment } from 'vs/platform/statusbar/common/statusbar'; import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; import { ICommandHandlerDescription } from 'vs/platform/commands/common/commands'; @@ -195,7 +195,7 @@ export abstract class MainThreadWorkspaceShape { } export abstract class MainProcessExtensionServiceShape { - $onExtensionHostReady(extensionDescriptions: IExtensionDescription[], messages: IMessage[]): TPromise { throw ni(); } + $onExtensionHostReady(extensionDescriptions: IExtensionDescription[]): TPromise { throw ni(); } $localShowMessage(severity: Severity, msg: string): void { throw ni(); } $onExtensionActivated(extensionId: string): void { throw ni(); } $onExtensionActivationFailed(extensionId: string): void { throw ni(); } diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index f395c9e517a..be1ed872a91 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -10,7 +10,7 @@ import * as paths from 'vs/base/common/paths'; import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { AbstractExtensionService, ActivatedExtension } from 'vs/platform/extensions/common/abstractExtensionService'; -import { IMessage, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; +import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { ExtHostStorage } from 'vs/workbench/api/node/extHostStorage'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; @@ -178,8 +178,8 @@ export class ExtHostExtensionService extends AbstractExtensionService { + public registrationDone(): void { + this._proxy.$onExtensionHostReady(ExtensionsRegistry.getAllExtensionDescriptions()).then(() => { // Wait for the main process to acknowledge its receival of the extensions descriptions // before allowing extensions to be activated this._triggerOnReady(); diff --git a/src/vs/workbench/api/node/mainThreadExtensionService.ts b/src/vs/workbench/api/node/mainThreadExtensionService.ts index bd035a19e09..03ddce9e31f 100644 --- a/src/vs/workbench/api/node/mainThreadExtensionService.ts +++ b/src/vs/workbench/api/node/mainThreadExtensionService.ts @@ -8,7 +8,7 @@ import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { AbstractExtensionService, ActivatedExtension } from 'vs/platform/extensions/common/abstractExtensionService'; import { IMessage, IExtensionDescription, IExtensionsStatus } from 'vs/platform/extensions/common/extensions'; -import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { ExtensionsRegistry, ExtensionPoint, IExtensionPointUser, ExtensionMessageCollector } from 'vs/platform/extensions/common/extensionsRegistry'; import { IMessageService } from 'vs/platform/message/common/message'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { ExtHostContext, ExtHostExtensionServiceShape } from './extHost.protocol'; @@ -37,6 +37,8 @@ function messageWithSource(msg: IMessage): string { return (msg.source ? '[' + msg.source + ']: ' : '') + msg.message; } +const hasOwnProperty = Object.hasOwnProperty; + export class MainProcessExtensionService extends AbstractExtensionService { private _threadService: IThreadService; @@ -60,8 +62,6 @@ export class MainProcessExtensionService extends AbstractExtensionService this._handleMessage(msg)); } private _handleMessage(msg: IMessage) { @@ -124,13 +124,39 @@ export class MainProcessExtensionService extends AbstractExtensionService { + public $onExtensionHostReady(extensionDescriptions: IExtensionDescription[]): TPromise { ExtensionsRegistry.registerExtensions(extensionDescriptions); - messages.forEach((entry) => this._handleMessage(entry)); + + let availableExtensions = ExtensionsRegistry.getAllExtensionDescriptions(); + let extensionPoints = ExtensionsRegistry.getExtensionPoints(); + + for (let i = 0, len = extensionPoints.length; i < len; i++) { + this._handleExtensionPoint(extensionPoints[i], availableExtensions); + } + this._triggerOnReady(); return; } + private _handleExtensionPoint(extensionPoint: ExtensionPoint, availableExtensions: IExtensionDescription[]): void { + let messageHandler = (msg: IMessage) => this._handleMessage(msg); + + let users: IExtensionPointUser[] = [], usersLen = 0; + for (let i = 0, len = availableExtensions.length; i < len; i++) { + let desc = availableExtensions[i]; + + if (desc.contributes && hasOwnProperty.call(desc.contributes, extensionPoint.name)) { + users[usersLen++] = { + description: desc, + value: desc.contributes[extensionPoint.name], + collector: new ExtensionMessageCollector(messageHandler, desc.extensionFolderPath) + }; + } + } + + extensionPoint.acceptUsers(users); + } + public $onExtensionActivated(extensionId: string): void { this._activatedExtensions[extensionId] = new MainProcessSuccessExtension(); } diff --git a/src/vs/workbench/node/extensionHostMain.ts b/src/vs/workbench/node/extensionHostMain.ts index a0044918522..eb74c8d62ad 100644 --- a/src/vs/workbench/node/extensionHostMain.ts +++ b/src/vs/workbench/node/extensionHostMain.ts @@ -165,7 +165,7 @@ export class ExtensionHostMain { private registerExtensions(): TPromise { ExtensionsRegistry.registerExtensions(this._extensions); - this._extensionService.registrationDone([]); + this._extensionService.registrationDone(); return this.handleEagerExtensions().then(() => this.handleExtensionTests()); } diff --git a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts index e4d0b451d4f..a0591247eca 100644 --- a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts @@ -30,7 +30,7 @@ import { IQuickOpenService } from 'vs/workbench/services/quickopen/common/quickO import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver'; // debuggers extension point -export const debuggersExtPoint = extensionsRegistry.ExtensionsRegistry.registerExtensionPoint('debuggers', { +export const debuggersExtPoint = extensionsRegistry.ExtensionsRegistry.registerExtensionPoint('debuggers', [], { description: nls.localize('vscode.extension.contributes.debuggers', 'Contributes debug adapters.'), type: 'array', defaultSnippets: [{ body: [{ type: '', extensions: [] }] }], @@ -122,7 +122,7 @@ export const debuggersExtPoint = extensionsRegistry.ExtensionsRegistry.registerE }); // breakpoints extension point #9037 -export const breakpointsExtPoint = extensionsRegistry.ExtensionsRegistry.registerExtensionPoint('breakpoints', { +export const breakpointsExtPoint = extensionsRegistry.ExtensionsRegistry.registerExtensionPoint('breakpoints', [], { description: nls.localize('vscode.extension.contributes.breakpoints', 'Contributes breakpoints.'), type: 'array', defaultSnippets: [{ body: [{ language: '' }] }], diff --git a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts index f539a78db11..c23b460f0b5 100644 --- a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts +++ b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts @@ -102,7 +102,7 @@ let keybindingType: IJSONSchema = { } }; -let keybindingsExtPoint = ExtensionsRegistry.registerExtensionPoint('keybindings', { +let keybindingsExtPoint = ExtensionsRegistry.registerExtensionPoint('keybindings', [], { description: nls.localize('vscode.extension.contributes.keybindings', "Contributes keybindings."), oneOf: [ keybindingType, diff --git a/src/vs/workbench/services/themes/electron-browser/themeService.ts b/src/vs/workbench/services/themes/electron-browser/themeService.ts index 5487b6ab663..a6e82bcfc1f 100644 --- a/src/vs/workbench/services/themes/electron-browser/themeService.ts +++ b/src/vs/workbench/services/themes/electron-browser/themeService.ts @@ -53,7 +53,7 @@ function validateThemeId(theme: string): string { return theme; } -let themesExtPoint = ExtensionsRegistry.registerExtensionPoint('themes', { +let themesExtPoint = ExtensionsRegistry.registerExtensionPoint('themes', [], { description: nls.localize('vscode.extension.contributes.themes', 'Contributes textmate color themes.'), type: 'array', items: { @@ -77,7 +77,7 @@ let themesExtPoint = ExtensionsRegistry.registerExtensionPoint('iconThemes', { +let iconThemeExtPoint = ExtensionsRegistry.registerExtensionPoint('iconThemes', [], { description: nls.localize('vscode.extension.contributes.iconThemes', 'Contributes file icon themes.'), type: 'array', items: { From ccfaf9796a18f8dd449ba825a96ebcc4fb616a4c Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 19:50:49 +0200 Subject: [PATCH 123/242] Further simplifications to ExtensionsRegistry --- .../browser/standalone/standaloneLanguages.ts | 15 ++++---- .../common/abstractExtensionService.ts | 4 +-- .../platform/extensions/common/extensions.ts | 4 --- .../extensions/common/extensionsRegistry.ts | 34 +++---------------- 4 files changed, 14 insertions(+), 43 deletions(-) diff --git a/src/vs/editor/browser/standalone/standaloneLanguages.ts b/src/vs/editor/browser/standalone/standaloneLanguages.ts index 01dad87890a..f7e14e0d68c 100644 --- a/src/vs/editor/browser/standalone/standaloneLanguages.ts +++ b/src/vs/editor/browser/standalone/standaloneLanguages.ts @@ -7,7 +7,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IDisposable } from 'vs/base/common/lifecycle'; -import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { onWillActivate } from 'vs/platform/extensions/common/extensionsRegistry'; import { ModesRegistry } from 'vs/editor/common/modes/modesRegistry'; import { IMonarchLanguage } from 'vs/editor/common/modes/monarch/monarchTypes'; import { ILanguageExtensionPoint } from 'vs/editor/common/services/modeService'; @@ -45,15 +45,16 @@ export function getLanguages(): ILanguageExtensionPoint[] { * @event */ export function onLanguage(languageId: string, callback: () => void): IDisposable { - let isDisposed = false; - ExtensionsRegistry.registerOneTimeActivationEventListener('onLanguage:' + languageId, () => { - if (!isDisposed) { + const desired = 'onLanguage:' + languageId; + let disposable = onWillActivate.event((activationEvent) => { + if (activationEvent === desired) { + // stop listening + disposable.dispose(); + // invoke actual listener callback(); } }); - return { - dispose: () => { isDisposed = true; } - }; + return disposable; } /** diff --git a/src/vs/platform/extensions/common/abstractExtensionService.ts b/src/vs/platform/extensions/common/abstractExtensionService.ts index 5e6a5716e6a..e881a3b2e23 100644 --- a/src/vs/platform/extensions/common/abstractExtensionService.ts +++ b/src/vs/platform/extensions/common/abstractExtensionService.ts @@ -8,7 +8,7 @@ import * as nls from 'vs/nls'; import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { IExtensionDescription, IExtensionService, IExtensionsStatus, ExtensionPointContribution } from 'vs/platform/extensions/common/extensions'; -import { IExtensionPoint, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionPoint, ExtensionsRegistry, onWillActivate } from 'vs/platform/extensions/common/extensionsRegistry'; const hasOwnProperty = Object.hasOwnProperty; @@ -86,7 +86,7 @@ export abstract class AbstractExtensionService imp public activateByEvent(activationEvent: string): TPromise { return this._onReady.then(() => { - ExtensionsRegistry.triggerActivationEventListeners(activationEvent); + onWillActivate.fire(activationEvent); let activateExtensions = ExtensionsRegistry.getExtensionDescriptionsForActivationEvent(activationEvent); return this._activateExtensions(activateExtensions, 0); }); diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts index 0bd8d784f58..c47facfc403 100644 --- a/src/vs/platform/extensions/common/extensions.ts +++ b/src/vs/platform/extensions/common/extensions.ts @@ -25,10 +25,6 @@ export interface IExtensionDescription { readonly contributes?: { [point: string]: any; }; } -export interface IActivationEventListener { - (): void; -} - export const IExtensionService = createDecorator('extensionService'); export interface IMessage { diff --git a/src/vs/platform/extensions/common/extensionsRegistry.ts b/src/vs/platform/extensions/common/extensionsRegistry.ts index e3fb2bde54e..638522732af 100644 --- a/src/vs/platform/extensions/common/extensionsRegistry.ts +++ b/src/vs/platform/extensions/common/extensionsRegistry.ts @@ -8,9 +8,12 @@ import * as nls from 'vs/nls'; import { onUnexpectedError } from 'vs/base/common/errors'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import Severity from 'vs/base/common/severity'; -import { IActivationEventListener, IMessage, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; +import { IMessage, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { Extensions, IJSONContributionRegistry } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; import { Registry } from 'vs/platform/platform'; +import { Emitter } from 'vs/base/common/event'; + +export const onWillActivate: Emitter = new Emitter(); export interface IExtensionMessageCollector { error(message: string): void; @@ -80,9 +83,6 @@ export interface IExtensionsRegistry { getAllExtensionDescriptions(): IExtensionDescription[]; getExtensionDescription(extensionId: string): IExtensionDescription; - registerOneTimeActivationEventListener(activationEvent: string, listener: IActivationEventListener): void; - triggerActivationEventListeners(activationEvent: string): void; - registerExtensionPoint(extensionPoint: string, deps: IExtensionPoint[], jsonSchema: IJSONSchema): IExtensionPoint; getExtensionPoints(): ExtensionPoint[]; } @@ -262,7 +262,6 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { private _extensionsMap: IExtensionDescriptionMap; private _extensionsArr: IExtensionDescription[]; private _activationMap: { [activationEvent: string]: IExtensionDescription[]; }; - private _oneTimeActivationEventListeners: { [activationEvent: string]: IActivationEventListener[]; }; private _extensionPoints: { [extPoint: string]: ExtensionPoint; }; constructor() { @@ -270,7 +269,6 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { this._extensionsArr = []; this._activationMap = {}; this._extensionPoints = {}; - this._oneTimeActivationEventListeners = {}; } public registerExtensionPoint(extensionPoint: string, deps: IExtensionPoint[], jsonSchema: IJSONSchema): IExtensionPoint { @@ -330,30 +328,6 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { } return this._extensionsMap[extensionId]; } - - public registerOneTimeActivationEventListener(activationEvent: string, listener: IActivationEventListener): void { - if (!hasOwnProperty.call(this._oneTimeActivationEventListeners, activationEvent)) { - this._oneTimeActivationEventListeners[activationEvent] = []; - } - this._oneTimeActivationEventListeners[activationEvent].push(listener); - } - - public triggerActivationEventListeners(activationEvent: string): void { - if (hasOwnProperty.call(this._oneTimeActivationEventListeners, activationEvent)) { - let listeners = this._oneTimeActivationEventListeners[activationEvent]; - delete this._oneTimeActivationEventListeners[activationEvent]; - - for (let i = 0, len = listeners.length; i < len; i++) { - let listener = listeners[i]; - try { - listener(); - } catch (e) { - onUnexpectedError(e); - } - } - } - } - } From d801542057871bce9d92db0ec25b7e1fc8fdf3a1 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 20:58:15 +0200 Subject: [PATCH 124/242] ExtensionsRegistry only tracks extension points --- .../editor/common/services/modeServiceImpl.ts | 4 +- src/vs/editor/node/textMate/TMSnippets.ts | 4 +- src/vs/editor/node/textMate/TMSyntax.ts | 4 +- .../actions/browser/menusExtensionPoint.ts | 8 +- .../common/abstractExtensionService.ts | 70 +++++++++++++-- .../extensions/common/extensionsRegistry.ts | 87 ++----------------- src/vs/workbench/api/node/extHost.api.impl.ts | 8 +- src/vs/workbench/api/node/extHost.protocol.ts | 18 ++++ .../api/node/extHostExtensionService.ts | 14 ++- .../api/node/mainThreadExtensionService.ts | 4 +- src/vs/workbench/node/extensionHostMain.ts | 32 ++----- src/vs/workbench/node/extensionHostProcess.ts | 3 +- .../electron-browser/extensionHost.ts | 7 +- .../electron-browser/keybindingService.ts | 6 +- .../themes/electron-browser/themeService.ts | 6 +- 15 files changed, 134 insertions(+), 141 deletions(-) diff --git a/src/vs/editor/common/services/modeServiceImpl.ts b/src/vs/editor/common/services/modeServiceImpl.ts index 0b69fed633b..ffb1424db08 100644 --- a/src/vs/editor/common/services/modeServiceImpl.ts +++ b/src/vs/editor/common/services/modeServiceImpl.ts @@ -12,7 +12,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import mime = require('vs/base/common/mime'); import { IFilesConfiguration } from 'vs/platform/files/common/files'; import { IExtensionService } from 'vs/platform/extensions/common/extensions'; -import { IExtensionPoint, IExtensionPointUser, IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionPoint, IExtensionPointUser, ExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import * as modes from 'vs/editor/common/modes'; import { FrankensteinMode } from 'vs/editor/common/modes/abstractMode'; @@ -94,7 +94,7 @@ function isUndefinedOrStringArray(value: string[]): boolean { return value.every(item => typeof item === 'string'); } -function isValidLanguageExtensionPoint(value: ILanguageExtensionPoint, collector: IExtensionMessageCollector): boolean { +function isValidLanguageExtensionPoint(value: ILanguageExtensionPoint, collector: ExtensionMessageCollector): boolean { if (!value) { collector.error(nls.localize('invalid.empty', "Empty value for `contributes.{0}`", languagesExtPoint.name)); return false; diff --git a/src/vs/editor/node/textMate/TMSnippets.ts b/src/vs/editor/node/textMate/TMSnippets.ts index 15b203a575e..40273eca78d 100644 --- a/src/vs/editor/node/textMate/TMSnippets.ts +++ b/src/vs/editor/node/textMate/TMSnippets.ts @@ -9,7 +9,7 @@ import { parse } from 'vs/base/common/json'; import * as paths from 'vs/base/common/paths'; import { TPromise } from 'vs/base/common/winjs.base'; import { readFile } from 'vs/base/node/pfs'; -import { IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { ExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { ISnippetsRegistry, Extensions, ISnippet } from 'vs/editor/common/modes/snippetsRegistry'; import { IModeService } from 'vs/editor/common/services/modeService'; import platform = require('vs/platform/platform'); @@ -56,7 +56,7 @@ export class MainProcessTextMateSnippet { }); } - private _withSnippetContribution(extensionName: string, extensionFolderPath: string, snippet: ISnippetsExtensionPoint, collector: IExtensionMessageCollector): void { + private _withSnippetContribution(extensionName: string, extensionFolderPath: string, snippet: ISnippetsExtensionPoint, collector: ExtensionMessageCollector): void { if (!snippet.language || (typeof snippet.language !== 'string') || !this._modeService.isRegisteredMode(snippet.language)) { collector.error(nls.localize('invalid.language', "Unknown language in `contributes.{0}.language`. Provided value: {1}", snippetsExtensionPoint.name, String(snippet.language))); return; diff --git a/src/vs/editor/node/textMate/TMSyntax.ts b/src/vs/editor/node/textMate/TMSyntax.ts index 188e53df270..3c27507a5b0 100644 --- a/src/vs/editor/node/textMate/TMSyntax.ts +++ b/src/vs/editor/node/textMate/TMSyntax.ts @@ -9,7 +9,7 @@ import { onUnexpectedError } from 'vs/base/common/errors'; import * as paths from 'vs/base/common/paths'; import * as strings from 'vs/base/common/strings'; import Event, { Emitter } from 'vs/base/common/event'; -import { IExtensionPoint, IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionPoint, ExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { ILineTokens, ITokenizationSupport, TokenizationRegistry } from 'vs/editor/common/modes'; import { TMState } from 'vs/editor/common/modes/TMState'; import { LineTokens } from 'vs/editor/common/modes/supports'; @@ -163,7 +163,7 @@ export class MainProcessTextMateSyntax { }); } - private _handleGrammarExtensionPointUser(extensionFolderPath: string, syntax: ITMSyntaxExtensionPoint, collector: IExtensionMessageCollector): void { + private _handleGrammarExtensionPointUser(extensionFolderPath: string, syntax: ITMSyntaxExtensionPoint, collector: ExtensionMessageCollector): void { if (syntax.language && ((typeof syntax.language !== 'string') || !this._modeService.isRegisteredMode(syntax.language))) { collector.error(nls.localize('invalid.language', "Unknown language in `contributes.{0}.language`. Provided value: {1}", grammarsExtPoint.name, String(syntax.language))); return; diff --git a/src/vs/platform/actions/browser/menusExtensionPoint.ts b/src/vs/platform/actions/browser/menusExtensionPoint.ts index c1526a461e1..9bfc70e8d83 100644 --- a/src/vs/platform/actions/browser/menusExtensionPoint.ts +++ b/src/vs/platform/actions/browser/menusExtensionPoint.ts @@ -11,7 +11,7 @@ import { join } from 'vs/base/common/paths'; import { IdGenerator } from 'vs/base/common/idGenerator'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { forEach } from 'vs/base/common/collections'; -import { IExtensionPointUser, IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionPointUser, ExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { MenuId, MenuRegistry } from 'vs/platform/actions/common/actions'; @@ -35,7 +35,7 @@ namespace schema { } } - export function isValidMenuItems(menu: IUserFriendlyMenuItem[], collector: IExtensionMessageCollector): boolean { + export function isValidMenuItems(menu: IUserFriendlyMenuItem[], collector: ExtensionMessageCollector): boolean { if (!Array.isArray(menu)) { collector.error(localize('requirearry', "menu items must be an arry")); return false; @@ -123,7 +123,7 @@ namespace schema { export type IUserFriendlyIcon = string | { light: string; dark: string; }; - export function isValidCommand(command: IUserFriendlyCommand, collector: IExtensionMessageCollector): boolean { + export function isValidCommand(command: IUserFriendlyCommand, collector: ExtensionMessageCollector): boolean { if (!command) { collector.error(localize('nonempty', "expected non-empty value.")); return false; @@ -146,7 +146,7 @@ namespace schema { return true; } - function isValidIcon(icon: IUserFriendlyIcon, collector: IExtensionMessageCollector): boolean { + function isValidIcon(icon: IUserFriendlyIcon, collector: ExtensionMessageCollector): boolean { if (typeof icon === 'undefined') { return true; } diff --git a/src/vs/platform/extensions/common/abstractExtensionService.ts b/src/vs/platform/extensions/common/abstractExtensionService.ts index e881a3b2e23..bb27a525222 100644 --- a/src/vs/platform/extensions/common/abstractExtensionService.ts +++ b/src/vs/platform/extensions/common/abstractExtensionService.ts @@ -8,7 +8,7 @@ import * as nls from 'vs/nls'; import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { IExtensionDescription, IExtensionService, IExtensionsStatus, ExtensionPointContribution } from 'vs/platform/extensions/common/extensions'; -import { IExtensionPoint, ExtensionsRegistry, onWillActivate } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionPoint, onWillActivate } from 'vs/platform/extensions/common/extensionsRegistry'; const hasOwnProperty = Object.hasOwnProperty; @@ -35,6 +35,7 @@ export abstract class AbstractExtensionService imp protected _activatedExtensions: IActivatedExtensionMap; private _onReady: TPromise; private _onReadyC: (v: boolean) => void; + protected _registry: ExtensionDescriptionRegistry; constructor(isReadyByDefault: boolean) { if (isReadyByDefault) { @@ -49,6 +50,7 @@ export abstract class AbstractExtensionService imp } this._activatingExtensions = {}; this._activatedExtensions = {}; + this._registry = new ExtensionDescriptionRegistry(); } protected _triggerOnReady(): void { @@ -61,7 +63,7 @@ export abstract class AbstractExtensionService imp public readExtensionPointContributions(extPoint: IExtensionPoint): TPromise[]> { return this.onReady().then(() => { - let availableExtensions = ExtensionsRegistry.getAllExtensionDescriptions(); + let availableExtensions = this._registry.getAllExtensionDescriptions(); let result: ExtensionPointContribution[] = [], resultLen = 0; for (let i = 0, len = availableExtensions.length; i < len; i++) { @@ -87,14 +89,14 @@ export abstract class AbstractExtensionService imp public activateByEvent(activationEvent: string): TPromise { return this._onReady.then(() => { onWillActivate.fire(activationEvent); - let activateExtensions = ExtensionsRegistry.getExtensionDescriptionsForActivationEvent(activationEvent); + let activateExtensions = this._registry.getExtensionDescriptionsForActivationEvent(activationEvent); return this._activateExtensions(activateExtensions, 0); }); } public activateById(extensionId: string): TPromise { return this._onReady.then(() => { - let desc = ExtensionsRegistry.getExtensionDescription(extensionId); + let desc = this._registry.getExtensionDescription(extensionId); if (!desc) { throw new Error('Extension `' + extensionId + '` is not known'); } @@ -113,7 +115,7 @@ export abstract class AbstractExtensionService imp for (let j = 0, lenJ = depIds.length; j < lenJ; j++) { let depId = depIds[j]; - let depDesc = ExtensionsRegistry.getExtensionDescription(depId); + let depDesc = this._registry.getExtensionDescription(depId); if (!depDesc) { // Error condition 1: unknown dependency @@ -223,3 +225,61 @@ export abstract class AbstractExtensionService imp protected abstract _actualActivateExtension(extensionDescription: IExtensionDescription): TPromise; } + + +interface IExtensionDescriptionMap { + [extensionId: string]: IExtensionDescription; +} + +export class ExtensionDescriptionRegistry { + private _extensionsMap: IExtensionDescriptionMap; + private _extensionsArr: IExtensionDescription[]; + private _activationMap: { [activationEvent: string]: IExtensionDescription[]; }; + + constructor() { + this._extensionsMap = {}; + this._extensionsArr = []; + this._activationMap = {}; + } + + public registerExtensions(extensionDescriptions: IExtensionDescription[]): void { + for (let i = 0, len = extensionDescriptions.length; i < len; i++) { + let extensionDescription = extensionDescriptions[i]; + + if (hasOwnProperty.call(this._extensionsMap, extensionDescription.id)) { + // No overwriting allowed! + console.error('Extension `' + extensionDescription.id + '` is already registered'); + continue; + } + + this._extensionsMap[extensionDescription.id] = extensionDescription; + this._extensionsArr.push(extensionDescription); + + if (Array.isArray(extensionDescription.activationEvents)) { + for (let j = 0, lenJ = extensionDescription.activationEvents.length; j < lenJ; j++) { + let activationEvent = extensionDescription.activationEvents[j]; + this._activationMap[activationEvent] = this._activationMap[activationEvent] || []; + this._activationMap[activationEvent].push(extensionDescription); + } + } + } + } + + public getExtensionDescriptionsForActivationEvent(activationEvent: string): IExtensionDescription[] { + if (!hasOwnProperty.call(this._activationMap, activationEvent)) { + return []; + } + return this._activationMap[activationEvent].slice(0); + } + + public getAllExtensionDescriptions(): IExtensionDescription[] { + return this._extensionsArr.slice(0); + } + + public getExtensionDescription(extensionId: string): IExtensionDescription { + if (!hasOwnProperty.call(this._extensionsMap, extensionId)) { + return null; + } + return this._extensionsMap[extensionId]; + } +} diff --git a/src/vs/platform/extensions/common/extensionsRegistry.ts b/src/vs/platform/extensions/common/extensionsRegistry.ts index 638522732af..a5d19f5bc6a 100644 --- a/src/vs/platform/extensions/common/extensionsRegistry.ts +++ b/src/vs/platform/extensions/common/extensionsRegistry.ts @@ -13,15 +13,12 @@ import { Extensions, IJSONContributionRegistry } from 'vs/platform/jsonschemas/c import { Registry } from 'vs/platform/platform'; import { Emitter } from 'vs/base/common/event'; +const hasOwnProperty = Object.hasOwnProperty; +const schemaRegistry = Registry.as(Extensions.JSONContribution); + export const onWillActivate: Emitter = new Emitter(); -export interface IExtensionMessageCollector { - error(message: string): void; - warn(message: string): void; - info(message: string): void; -} - -export class ExtensionMessageCollector implements IExtensionMessageCollector { +export class ExtensionMessageCollector { private _messageHandler: (msg: IMessage) => void; private _source: string; @@ -50,21 +47,12 @@ export class ExtensionMessageCollector implements IExtensionMessageCollector { public info(message: string): void { this._msg(Severity.Info, message); } - } - - -interface IExtensionDescriptionMap { - [extensionId: string]: IExtensionDescription; -} -const hasOwnProperty = Object.hasOwnProperty; -let schemaRegistry = Registry.as(Extensions.JSONContribution); - export interface IExtensionPointUser { description: IExtensionDescription; value: T; - collector: IExtensionMessageCollector; + collector: ExtensionMessageCollector; } export interface IExtensionPointHandler { @@ -76,17 +64,6 @@ export interface IExtensionPoint { setHandler(handler: IExtensionPointHandler): void; } -export interface IExtensionsRegistry { - registerExtensions(extensionDescriptions: IExtensionDescription[]): void; - - getExtensionDescriptionsForActivationEvent(activationEvent: string): IExtensionDescription[]; - getAllExtensionDescriptions(): IExtensionDescription[]; - getExtensionDescription(extensionId: string): IExtensionDescription; - - registerExtensionPoint(extensionPoint: string, deps: IExtensionPoint[], jsonSchema: IJSONSchema): IExtensionPoint; - getExtensionPoints(): ExtensionPoint[]; -} - export class ExtensionPoint implements IExtensionPoint { public readonly name: string; @@ -137,8 +114,6 @@ export class ExtensionPoint implements IExtensionPoint { } } - - const schemaId = 'vscode://schemas/vscode-extensions'; const schema: IJSONSchema = { default: { @@ -257,17 +232,11 @@ const schema: IJSONSchema = { } }; -class ExtensionsRegistryImpl implements IExtensionsRegistry { +export class ExtensionsRegistryImpl { - private _extensionsMap: IExtensionDescriptionMap; - private _extensionsArr: IExtensionDescription[]; - private _activationMap: { [activationEvent: string]: IExtensionDescription[]; }; private _extensionPoints: { [extPoint: string]: ExtensionPoint; }; constructor() { - this._extensionsMap = {}; - this._extensionsArr = []; - this._activationMap = {}; this._extensionPoints = {}; } @@ -287,54 +256,12 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { public getExtensionPoints(): ExtensionPoint[] { return Object.keys(this._extensionPoints).map(point => this._extensionPoints[point]); } - - public registerExtensions(extensionDescriptions: IExtensionDescription[]): void { - for (let i = 0, len = extensionDescriptions.length; i < len; i++) { - let extensionDescription = extensionDescriptions[i]; - - if (hasOwnProperty.call(this._extensionsMap, extensionDescription.id)) { - // No overwriting allowed! - console.error('Extension `' + extensionDescription.id + '` is already registered'); - continue; - } - - this._extensionsMap[extensionDescription.id] = extensionDescription; - this._extensionsArr.push(extensionDescription); - - if (Array.isArray(extensionDescription.activationEvents)) { - for (let j = 0, lenJ = extensionDescription.activationEvents.length; j < lenJ; j++) { - let activationEvent = extensionDescription.activationEvents[j]; - this._activationMap[activationEvent] = this._activationMap[activationEvent] || []; - this._activationMap[activationEvent].push(extensionDescription); - } - } - } - } - - public getExtensionDescriptionsForActivationEvent(activationEvent: string): IExtensionDescription[] { - if (!hasOwnProperty.call(this._activationMap, activationEvent)) { - return []; - } - return this._activationMap[activationEvent].slice(0); - } - - public getAllExtensionDescriptions(): IExtensionDescription[] { - return this._extensionsArr.slice(0); - } - - public getExtensionDescription(extensionId: string): IExtensionDescription { - if (!hasOwnProperty.call(this._extensionsMap, extensionId)) { - return null; - } - return this._extensionsMap[extensionId]; - } } - const PRExtensions = { ExtensionsRegistry: 'ExtensionsRegistry' }; Registry.add(PRExtensions.ExtensionsRegistry, new ExtensionsRegistryImpl()); -export const ExtensionsRegistry: IExtensionsRegistry = Registry.as(PRExtensions.ExtensionsRegistry); +export const ExtensionsRegistry: ExtensionsRegistryImpl = Registry.as(PRExtensions.ExtensionsRegistry); schemaRegistry.registerSchema(schemaId, schema); \ No newline at end of file diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 060ac66a02f..b3bbfb536be 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -36,7 +36,6 @@ import Severity from 'vs/base/common/severity'; import EditorCommon = require('vs/editor/common/editorCommon'); import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService'; -import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { TPromise } from 'vs/base/common/winjs.base'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { CancellationTokenSource } from 'vs/base/common/cancellation'; @@ -143,13 +142,13 @@ export function createApiFactory(threadService: IThreadService, extensionService // namespace: extensions const extensions: typeof vscode.extensions = { getExtension(extensionId: string): Extension { - let desc = ExtensionsRegistry.getExtensionDescription(extensionId); + let desc = extensionService.getExtensionDescription(extensionId); if (desc) { return new Extension(extensionService, desc); } }, get all(): Extension[] { - return ExtensionsRegistry.getAllExtensionDescriptions().map((desc) => new Extension(extensionService, desc)); + return extensionService.getAllExtensionDescriptions().map((desc) => new Extension(extensionService, desc)); } }; @@ -417,7 +416,7 @@ class Extension implements vscode.Extension { } } -export function defineAPI(factory: IExtensionApiFactory, extensions: IExtensionDescription[]): void { +export function defineAPI(factory: IExtensionApiFactory, extensionService: ExtHostExtensionService): void { // each extension is meant to get its own api implementation const extApiImpl: { [id: string]: typeof vscode } = Object.create(null); @@ -425,6 +424,7 @@ export function defineAPI(factory: IExtensionApiFactory, extensions: IExtensionD // create trie to enable fast 'filename -> extension id' look up const trie = new TrieMap(TrieMap.PathSplitter); + const extensions = extensionService.getAllExtensionDescriptions(); for (const ext of extensions) { if (ext.name) { const path = realpathSync(ext.extensionFolderPath); diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index 13781f3a5e4..bc7bf0c2e0a 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -22,6 +22,7 @@ import { IExtensionDescription } from 'vs/platform/extensions/common/extensions' import { StatusbarAlignment as MainThreadStatusBarAlignment } from 'vs/platform/statusbar/common/statusbar'; import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; import { ICommandHandlerDescription } from 'vs/platform/commands/common/commands'; +import { IWorkspace } from 'vs/platform/workspace/common/workspace'; import * as editorCommon from 'vs/editor/common/editorCommon'; import * as modes from 'vs/editor/common/modes'; @@ -34,6 +35,23 @@ import { SaveReason } from 'vs/workbench/services/textfile/common/textfiles'; import { IWorkspaceSymbol } from 'vs/workbench/parts/search/common/search'; import { IApplyEditsOptions, TextEditorRevealType, ITextEditorConfigurationUpdate, IResolvedTextEditorConfiguration, ISelectionChangeEvent } from './mainThreadEditorsTracker'; +export interface IEnvironment { + appSettingsHome: string; + disableExtensions: boolean; + userExtensionsHome: string; + extensionDevelopmentPath: string; + extensionTestsPath: string; +} + +export interface IInitData { + parentPid: number; + environment: IEnvironment; + contextService: { + workspace: IWorkspace; + }; + extensions: IExtensionDescription[]; +} + export interface InstanceSetter { set(instance: T): R; } diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index be1ed872a91..8a0f2016c00 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -11,7 +11,6 @@ import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { AbstractExtensionService, ActivatedExtension } from 'vs/platform/extensions/common/abstractExtensionService'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; -import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { ExtHostStorage } from 'vs/workbench/api/node/extHostStorage'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; @@ -119,8 +118,9 @@ export class ExtHostExtensionService extends AbstractExtensionService { + this._proxy.$onExtensionHostReady(this._registry.getAllExtensionDescriptions()).then(() => { // Wait for the main process to acknowledge its receival of the extensions descriptions // before allowing extensions to be activated this._triggerOnReady(); diff --git a/src/vs/workbench/api/node/mainThreadExtensionService.ts b/src/vs/workbench/api/node/mainThreadExtensionService.ts index 03ddce9e31f..eb2f6954a0c 100644 --- a/src/vs/workbench/api/node/mainThreadExtensionService.ts +++ b/src/vs/workbench/api/node/mainThreadExtensionService.ts @@ -125,9 +125,9 @@ export class MainProcessExtensionService extends AbstractExtensionService { - ExtensionsRegistry.registerExtensions(extensionDescriptions); + this._registry.registerExtensions(extensionDescriptions); - let availableExtensions = ExtensionsRegistry.getAllExtensionDescriptions(); + let availableExtensions = this._registry.getAllExtensionDescriptions(); let extensionPoints = ExtensionsRegistry.getExtensionPoints(); for (let i = 0, len = extensionPoints.length; i < len; i++) { diff --git a/src/vs/workbench/node/extensionHostMain.ts b/src/vs/workbench/node/extensionHostMain.ts index eb74c8d62ad..29216aec2f9 100644 --- a/src/vs/workbench/node/extensionHostMain.ts +++ b/src/vs/workbench/node/extensionHostMain.ts @@ -11,34 +11,15 @@ import nls = require('vs/nls'); import pfs = require('vs/base/node/pfs'); import { TPromise } from 'vs/base/common/winjs.base'; import paths = require('vs/base/common/paths'); -import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; -import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { createApiFactory, defineAPI } from 'vs/workbench/api/node/extHost.api.impl'; import { IMainProcessExtHostIPC } from 'vs/platform/extensions/common/ipcRemoteCom'; import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService'; import { ExtHostThreadService } from 'vs/workbench/services/thread/common/extHostThreadService'; import { RemoteTelemetryService } from 'vs/workbench/api/node/extHostTelemetry'; import { IWorkspaceContextService, WorkspaceContextService } from 'vs/platform/workspace/common/workspace'; +import { IInitData, IEnvironment } from 'vs/workbench/api/node/extHost.protocol'; import * as errors from 'vs/base/common/errors'; -export interface IEnvironment { - appSettingsHome: string; - disableExtensions: boolean; - userExtensionsHome: string; - extensionDevelopmentPath: string; - extensionTestsPath: string; -} - -export interface IInitData { - environment: IEnvironment; - threadService: any; - contextService: { - workspace: any; - options: any; - }; - extensions: IExtensionDescription[]; -} - const nativeExit = process.exit.bind(process); process.exit = function () { const err = new Error('An extension called process.exit() and this was prevented.'); @@ -58,13 +39,11 @@ export class ExtensionHostMain { private _contextService: IWorkspaceContextService; private _environment: IEnvironment; private _extensionService: ExtHostExtensionService; - private _extensions: IExtensionDescription[]; constructor(remoteCom: IMainProcessExtHostIPC, initData: IInitData) { this._isTerminating = false; this._environment = initData.environment; - this._extensions = initData.extensions; this._contextService = new WorkspaceContextService(initData.contextService.workspace); const workspaceStoragePath = this._getOrCreateWorkspaceStoragePath(); @@ -73,11 +52,11 @@ export class ExtensionHostMain { const telemetryService = new RemoteTelemetryService('pluginHostTelemetry', threadService); - this._extensionService = new ExtHostExtensionService(threadService, telemetryService, { _serviceBrand: 'optionalArgs', workspaceStoragePath }); + this._extensionService = new ExtHostExtensionService(initData.extensions, threadService, telemetryService, { _serviceBrand: 'optionalArgs', workspaceStoragePath }); // Create the ext host API const factory = createApiFactory(threadService, this._extensionService, this._contextService, telemetryService); - defineAPI(factory, this._extensions); + defineAPI(factory, this._extensionService); } private _getOrCreateWorkspaceStoragePath(): string { @@ -144,7 +123,7 @@ export class ExtensionHostMain { let allPromises: TPromise[] = []; try { - let allExtensions = ExtensionsRegistry.getAllExtensionDescriptions(); + let allExtensions = this._extensionService.getAllExtensionDescriptions(); let allExtensionsIds = allExtensions.map(ext => ext.id); let activatedExtensions = allExtensionsIds.filter(id => this._extensionService.isActivated(id)); @@ -164,7 +143,6 @@ export class ExtensionHostMain { } private registerExtensions(): TPromise { - ExtensionsRegistry.registerExtensions(this._extensions); this._extensionService.registrationDone(); return this.handleEagerExtensions().then(() => this.handleExtensionTests()); } @@ -189,7 +167,7 @@ export class ExtensionHostMain { [filename: string]: boolean; } = {}; - ExtensionsRegistry.getAllExtensionDescriptions().forEach((desc) => { + this._extensionService.getAllExtensionDescriptions().forEach((desc) => { let activationEvents = desc.activationEvents; if (!activationEvents) { return; diff --git a/src/vs/workbench/node/extensionHostProcess.ts b/src/vs/workbench/node/extensionHostProcess.ts index e33e1cc82d7..726c7231287 100644 --- a/src/vs/workbench/node/extensionHostProcess.ts +++ b/src/vs/workbench/node/extensionHostProcess.ts @@ -7,10 +7,11 @@ import { onUnexpectedError } from 'vs/base/common/errors'; import { TPromise } from 'vs/base/common/winjs.base'; -import { ExtensionHostMain, IInitData, exit } from 'vs/workbench/node/extensionHostMain'; +import { ExtensionHostMain, exit } from 'vs/workbench/node/extensionHostMain'; import { create as createIPC, IMainProcessExtHostIPC } from 'vs/platform/extensions/common/ipcRemoteCom'; import marshalling = require('vs/base/common/marshalling'); import { createQueuedSender } from 'vs/base/node/processes'; +import { IInitData } from 'vs/workbench/api/node/extHost.protocol'; interface IRendererConnection { remoteCom: IMainProcessExtHostIPC; diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts index 5c560a357b8..3feb264e282 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts @@ -26,6 +26,7 @@ import { IExtensionsRuntimeService } from 'vs/platform/extensions/common/extensi import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc'; import Event, { Emitter } from 'vs/base/common/event'; import { createQueuedSender, IQueuedSender } from 'vs/base/node/processes'; +import { IInitData } from 'vs/workbench/api/node/extHost.protocol'; export const EXTENSION_LOG_BROADCAST_CHANNEL = 'vscode:extensionLog'; export const EXTENSION_ATTACH_BROADCAST_CHANNEL = 'vscode:extensionAttach'; @@ -200,7 +201,7 @@ export class ExtensionHostProcessWorker { window.clearTimeout(this.initializeTimer); } this.extensionsRuntimeService.getExtensions().then(extensionDescriptors => { - let initPayload = stringify({ + let initData: IInitData = { parentPid: process.pid, environment: { appSettingsHome: this.environmentService.appSettingsHome, @@ -213,8 +214,8 @@ export class ExtensionHostProcessWorker { workspace: this.contextService.getWorkspace() }, extensions: extensionDescriptors - }); - this.extensionHostProcessQueuedSender.send(initPayload); + }; + this.extensionHostProcessQueuedSender.send(stringify(initData)); }); } diff --git a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts index c23b460f0b5..c64fd9f4d05 100644 --- a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts +++ b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts @@ -10,7 +10,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { Keybinding } from 'vs/base/common/keybinding'; import * as platform from 'vs/base/common/platform'; import { toDisposable } from 'vs/base/common/lifecycle'; -import { IExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { ExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { Extensions, IJSONContributionRegistry } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; import { KeybindingService } from 'vs/platform/keybinding/browser/keybindingServiceImpl'; import { IStatusbarService } from 'vs/platform/statusbar/common/statusbar'; @@ -203,7 +203,7 @@ export class WorkbenchKeybindingService extends KeybindingService { return super.getElectronAcceleratorFor(keybinding); } - private _handleKeybindingsExtensionPointUser(isBuiltin: boolean, keybindings: ContributedKeyBinding | ContributedKeyBinding[], collector: IExtensionMessageCollector): boolean { + private _handleKeybindingsExtensionPointUser(isBuiltin: boolean, keybindings: ContributedKeyBinding | ContributedKeyBinding[], collector: ExtensionMessageCollector): boolean { if (isContributedKeyBindingsArray(keybindings)) { let commandAdded = false; for (let i = 0, len = keybindings.length; i < len; i++) { @@ -215,7 +215,7 @@ export class WorkbenchKeybindingService extends KeybindingService { } } - private _handleKeybinding(isBuiltin: boolean, idx: number, keybindings: ContributedKeyBinding, collector: IExtensionMessageCollector): boolean { + private _handleKeybinding(isBuiltin: boolean, idx: number, keybindings: ContributedKeyBinding, collector: ExtensionMessageCollector): boolean { let rejects: string[] = []; let commandAdded = false; diff --git a/src/vs/workbench/services/themes/electron-browser/themeService.ts b/src/vs/workbench/services/themes/electron-browser/themeService.ts index a6e82bcfc1f..604ed663470 100644 --- a/src/vs/workbench/services/themes/electron-browser/themeService.ts +++ b/src/vs/workbench/services/themes/electron-browser/themeService.ts @@ -10,7 +10,7 @@ import Paths = require('vs/base/common/paths'); import Json = require('vs/base/common/json'); import { IThemeExtensionPoint } from 'vs/platform/theme/common/themeExtensionPoint'; import { IExtensionService } from 'vs/platform/extensions/common/extensions'; -import { ExtensionsRegistry, IExtensionMessageCollector } from 'vs/platform/extensions/common/extensionsRegistry'; +import { ExtensionsRegistry, ExtensionMessageCollector } from 'vs/platform/extensions/common/extensionsRegistry'; import { IThemeService, IThemeData, IThemeSetting, IThemeDocument } from 'vs/workbench/services/themes/common/themeService'; import { TokenStylesContribution, EditorStylesContribution, SearchViewStylesContribution, TerminalStylesContribution } from 'vs/workbench/services/themes/electron-browser/stylesContributions'; import { getBaseThemeId } from 'vs/platform/theme/common/themes'; @@ -299,7 +299,7 @@ export class ThemeService implements IThemeService { }); } - private onThemes(extensionFolderPath: string, extensionData: ExtensionData, themes: IThemeExtensionPoint[], collector: IExtensionMessageCollector): void { + private onThemes(extensionFolderPath: string, extensionData: ExtensionData, themes: IThemeExtensionPoint[], collector: ExtensionMessageCollector): void { if (!Array.isArray(themes)) { collector.error(nls.localize( 'reqarray', @@ -338,7 +338,7 @@ export class ThemeService implements IThemeService { }); } - private onIconThemes(extensionFolderPath: string, extensionData: ExtensionData, iconThemes: IThemeExtensionPoint[], collector: IExtensionMessageCollector): void { + private onIconThemes(extensionFolderPath: string, extensionData: ExtensionData, iconThemes: IThemeExtensionPoint[], collector: ExtensionMessageCollector): void { if (!Array.isArray(iconThemes)) { collector.error(nls.localize( 'reqarray', From 6dd7a04bbd1e596336a30a11e8471698b63b6d42 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 22:02:47 +0200 Subject: [PATCH 125/242] Fixes #14500: wait for extension points * Use the extension descriptions available in the UI thread * Don't wait for handling extension points until extension host is running * Create the extension host process only after extension points have been handled * Send the initial configuration as part of the initData to the extension host --- .../common/abstractExtensionService.ts | 6 ++++++ src/vs/workbench/api/node/extHost.api.impl.ts | 6 +++--- src/vs/workbench/api/node/extHost.protocol.ts | 6 +++++- .../workbench/api/node/extHostConfiguration.ts | 9 ++------- .../api/node/extHostExtensionService.ts | 10 +--------- .../api/node/mainThreadConfiguration.ts | 1 - .../api/node/mainThreadExtensionService.ts | 10 ++++++---- src/vs/workbench/electron-browser/shell.ts | 9 ++------- src/vs/workbench/node/extensionHostMain.ts | 9 ++------- .../electron-browser/extensionHost.ts | 17 +++++++++++------ .../test/node/api/extHostConfiguration.test.ts | 8 +------- 11 files changed, 39 insertions(+), 52 deletions(-) diff --git a/src/vs/platform/extensions/common/abstractExtensionService.ts b/src/vs/platform/extensions/common/abstractExtensionService.ts index bb27a525222..b6b9f4fca70 100644 --- a/src/vs/platform/extensions/common/abstractExtensionService.ts +++ b/src/vs/platform/extensions/common/abstractExtensionService.ts @@ -78,6 +78,12 @@ export abstract class AbstractExtensionService imp }); } + public readExtensions(): TPromise { + return this.onReady().then(() => { + return this._registry.getAllExtensionDescriptions(); + }); + } + public getExtensionsStatus(): { [id: string]: IExtensionsStatus } { return null; } diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index b3bbfb536be..79be650c93a 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -43,7 +43,7 @@ import * as vscode from 'vscode'; import * as paths from 'vs/base/common/paths'; import { realpathSync } from 'fs'; import { ITelemetryService, ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; -import { MainContext, ExtHostContext, InstanceCollection } from './extHost.protocol'; +import { MainContext, ExtHostContext, InstanceCollection, IInitConfiguration } from './extHost.protocol'; export interface IExtensionApiFactory { @@ -53,7 +53,7 @@ export interface IExtensionApiFactory { /** * This method instantiates and returns the extension API surface */ -export function createApiFactory(threadService: IThreadService, extensionService: ExtHostExtensionService, contextService: IWorkspaceContextService, telemetryService: ITelemetryService): IExtensionApiFactory { +export function createApiFactory(initDataConfiguration: IInitConfiguration, threadService: IThreadService, extensionService: ExtHostExtensionService, contextService: IWorkspaceContextService, telemetryService: ITelemetryService): IExtensionApiFactory { @@ -64,7 +64,7 @@ export function createApiFactory(threadService: IThreadService, extensionService const extHostDocumentSaveParticipant = col.define(ExtHostContext.ExtHostDocumentSaveParticipant).set(new ExtHostDocumentSaveParticipant(extHostDocuments, threadService.get(MainContext.MainThreadWorkspace))); const extHostEditors = col.define(ExtHostContext.ExtHostEditors).set(new ExtHostEditors(threadService, extHostDocuments)); const extHostCommands = col.define(ExtHostContext.ExtHostCommands).set(new ExtHostCommands(threadService, extHostEditors, extHostHeapService)); - const extHostConfiguration = col.define(ExtHostContext.ExtHostConfiguration).set(new ExtHostConfiguration(threadService.get(MainContext.MainThreadConfiguration))); + const extHostConfiguration = col.define(ExtHostContext.ExtHostConfiguration).set(new ExtHostConfiguration(threadService.get(MainContext.MainThreadConfiguration), initDataConfiguration)); const extHostDiagnostics = col.define(ExtHostContext.ExtHostDiagnostics).set(new ExtHostDiagnostics(threadService)); const languageFeatures = col.define(ExtHostContext.ExtHostLanguageFeatures).set(new ExtHostLanguageFeatures(threadService, extHostDocuments, extHostCommands, extHostHeapService, extHostDiagnostics)); const extHostFileSystemEvent = col.define(ExtHostContext.ExtHostFileSystemEventService).set(new ExtHostFileSystemEventService()); diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index bc7bf0c2e0a..a7d6157e15b 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -43,6 +43,10 @@ export interface IEnvironment { extensionTestsPath: string; } +export interface IInitConfiguration { + _initConfigurationBrand: void; +} + export interface IInitData { parentPid: number; environment: IEnvironment; @@ -50,6 +54,7 @@ export interface IInitData { workspace: IWorkspace; }; extensions: IExtensionDescription[]; + configuration: IInitConfiguration; } export interface InstanceSetter { @@ -213,7 +218,6 @@ export abstract class MainThreadWorkspaceShape { } export abstract class MainProcessExtensionServiceShape { - $onExtensionHostReady(extensionDescriptions: IExtensionDescription[]): TPromise { throw ni(); } $localShowMessage(severity: Severity, msg: string): void { throw ni(); } $onExtensionActivated(extensionId: string): void { throw ni(); } $onExtensionActivationFailed(extensionId: string): void { throw ni(); } diff --git a/src/vs/workbench/api/node/extHostConfiguration.ts b/src/vs/workbench/api/node/extHostConfiguration.ts index e2426909469..662c14b0a04 100644 --- a/src/vs/workbench/api/node/extHostConfiguration.ts +++ b/src/vs/workbench/api/node/extHostConfiguration.ts @@ -5,7 +5,6 @@ 'use strict'; import { mixin } from 'vs/base/common/objects'; -import { illegalState } from 'vs/base/common/errors'; import Event, { Emitter } from 'vs/base/common/event'; import { WorkspaceConfiguration } from 'vscode'; import { ExtHostConfigurationShape, MainThreadConfigurationShape } from './extHost.protocol'; @@ -14,13 +13,13 @@ import { ConfigurationTarget } from 'vs/workbench/services/configuration/common/ export class ExtHostConfiguration extends ExtHostConfigurationShape { private _proxy: MainThreadConfigurationShape; - private _hasConfig: boolean; private _config: any; private _onDidChangeConfiguration = new Emitter(); - constructor(proxy: MainThreadConfigurationShape) { + constructor(proxy: MainThreadConfigurationShape, configuration: any) { super(); this._proxy = proxy; + this._config = configuration; } get onDidChangeConfiguration(): Event { @@ -29,14 +28,10 @@ export class ExtHostConfiguration extends ExtHostConfigurationShape { public $acceptConfigurationChanged(config: any) { this._config = config; - this._hasConfig = true; this._onDidChangeConfiguration.fire(undefined); } public getConfiguration(section?: string): WorkspaceConfiguration { - if (!this._hasConfig) { - throw illegalState('missing config'); - } const config = section ? ExtHostConfiguration._lookUp(section, this._config) diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index 8a0f2016c00..5e2c54c7a1f 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -119,7 +119,7 @@ export class ExtHostExtensionService extends AbstractExtensionService { - // Wait for the main process to acknowledge its receival of the extensions descriptions - // before allowing extensions to be activated - this._triggerOnReady(); - }); - } - // -- overwriting AbstractExtensionService protected _showMessage(severity: Severity, msg: string): void { diff --git a/src/vs/workbench/api/node/mainThreadConfiguration.ts b/src/vs/workbench/api/node/mainThreadConfiguration.ts index b707f4e6a47..39a5c31f124 100644 --- a/src/vs/workbench/api/node/mainThreadConfiguration.ts +++ b/src/vs/workbench/api/node/mainThreadConfiguration.ts @@ -25,7 +25,6 @@ export class MainThreadConfiguration extends MainThreadConfigurationShape { this._configurationEditingService = configurationEditingService; const proxy = threadService.get(ExtHostContext.ExtHostConfiguration); this._toDispose = configurationService.onDidUpdateConfiguration(event => proxy.$acceptConfigurationChanged(event.config)); - proxy.$acceptConfigurationChanged(configurationService.getConfiguration()); } public dispose(): void { diff --git a/src/vs/workbench/api/node/mainThreadExtensionService.ts b/src/vs/workbench/api/node/mainThreadExtensionService.ts index eb2f6954a0c..436d492117e 100644 --- a/src/vs/workbench/api/node/mainThreadExtensionService.ts +++ b/src/vs/workbench/api/node/mainThreadExtensionService.ts @@ -7,7 +7,7 @@ import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { AbstractExtensionService, ActivatedExtension } from 'vs/platform/extensions/common/abstractExtensionService'; -import { IMessage, IExtensionDescription, IExtensionsStatus } from 'vs/platform/extensions/common/extensions'; +import { IExtensionsRuntimeService, IMessage, IExtensionDescription, IExtensionsStatus } from 'vs/platform/extensions/common/extensions'; import { ExtensionsRegistry, ExtensionPoint, IExtensionPointUser, ExtensionMessageCollector } from 'vs/platform/extensions/common/extensionsRegistry'; import { IMessageService } from 'vs/platform/message/common/message'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; @@ -53,7 +53,8 @@ export class MainProcessExtensionService extends AbstractExtensionService this._onExtensionDescriptions(extensionDescriptions)); } private _handleMessage(msg: IMessage) { @@ -124,7 +127,7 @@ export class MainProcessExtensionService extends AbstractExtensionService { + private _onExtensionDescriptions(extensionDescriptions: IExtensionDescription[]): void { this._registry.registerExtensions(extensionDescriptions); let availableExtensions = this._registry.getAllExtensionDescriptions(); @@ -135,7 +138,6 @@ export class MainProcessExtensionService extends AbstractExtensionService(extensionPoint: ExtensionPoint, availableExtensions: IExtensionDescription[]): void { diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index 258ffbab5d3..429b4b21bc3 100644 --- a/src/vs/workbench/electron-browser/shell.ts +++ b/src/vs/workbench/electron-browser/shell.ts @@ -296,12 +296,13 @@ export class WorkbenchShell { serviceCollection.set(IExtensionsRuntimeService, extensionsRuntimeService); disposables.add(extensionsRuntimeService); - const extensionHostProcessWorker = this.startExtensionHost(instantiationService); + const extensionHostProcessWorker = instantiationService.createInstance(ExtensionHostProcessWorker); this.threadService = instantiationService.createInstance(MainThreadService, extensionHostProcessWorker.messagingProtocol); serviceCollection.set(IThreadService, this.threadService); const extensionService = instantiationService.createInstance(MainProcessExtensionService); serviceCollection.set(IExtensionService, extensionService); + extensionHostProcessWorker.start(extensionService); serviceCollection.set(ICommandService, new CommandService(instantiationService, extensionService)); @@ -454,12 +455,6 @@ export class WorkbenchShell { this.workbench.layout(); } - private startExtensionHost(instantiationService: InstantiationService): ExtensionHostProcessWorker { - const extensionHostProcessWorker: ExtensionHostProcessWorker = instantiationService.createInstance(ExtensionHostProcessWorker); - extensionHostProcessWorker.start(); - return extensionHostProcessWorker; - } - public joinCreation(): TPromise { return this.workbench.joinCreation(); } diff --git a/src/vs/workbench/node/extensionHostMain.ts b/src/vs/workbench/node/extensionHostMain.ts index 29216aec2f9..1cf968a7acc 100644 --- a/src/vs/workbench/node/extensionHostMain.ts +++ b/src/vs/workbench/node/extensionHostMain.ts @@ -55,7 +55,7 @@ export class ExtensionHostMain { this._extensionService = new ExtHostExtensionService(initData.extensions, threadService, telemetryService, { _serviceBrand: 'optionalArgs', workspaceStoragePath }); // Create the ext host API - const factory = createApiFactory(threadService, this._extensionService, this._contextService, telemetryService); + const factory = createApiFactory(initData.configuration, threadService, this._extensionService, this._contextService, telemetryService); defineAPI(factory, this._extensionService); } @@ -107,7 +107,7 @@ export class ExtensionHostMain { } public start(): TPromise { - return this.registerExtensions(); + return this.handleEagerExtensions().then(() => this.handleExtensionTests()); } public terminate(): void { @@ -142,11 +142,6 @@ export class ExtensionHostMain { }, 1000); } - private registerExtensions(): TPromise { - this._extensionService.registrationDone(); - return this.handleEagerExtensions().then(() => this.handleExtensionTests()); - } - // Handle "eager" activation extensions private handleEagerExtensions(): TPromise { this._extensionService.activateByEvent('*').then(null, (err) => { diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts index 3feb264e282..f2f1b0671d9 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts @@ -22,11 +22,12 @@ import { ipcRenderer as ipc } from 'electron'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { ReloadWindowAction } from 'vs/workbench/electron-browser/actions'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { IExtensionsRuntimeService } from 'vs/platform/extensions/common/extensions'; import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc'; import Event, { Emitter } from 'vs/base/common/event'; import { createQueuedSender, IQueuedSender } from 'vs/base/node/processes'; -import { IInitData } from 'vs/workbench/api/node/extHost.protocol'; +import { IInitData, IInitConfiguration } from 'vs/workbench/api/node/extHost.protocol'; +import { MainProcessExtensionService } from 'vs/workbench/api/node/mainThreadExtensionService'; +import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration'; export const EXTENSION_LOG_BROADCAST_CHANNEL = 'vscode:extensionLog'; export const EXTENSION_ATTACH_BROADCAST_CHANNEL = 'vscode:extensionAttach'; @@ -58,6 +59,8 @@ export class ExtensionHostProcessWorker { return this._onMessage.event; } + private extensionService: MainProcessExtensionService; + constructor( @IWorkspaceContextService private contextService: IWorkspaceContextService, @IMessageService private messageService: IMessageService, @@ -65,7 +68,7 @@ export class ExtensionHostProcessWorker { @ILifecycleService lifecycleService: ILifecycleService, @IInstantiationService private instantiationService: IInstantiationService, @IEnvironmentService private environmentService: IEnvironmentService, - @IExtensionsRuntimeService private extensionsRuntimeService: IExtensionsRuntimeService + @IWorkspaceConfigurationService private configurationService: IWorkspaceConfigurationService ) { // handle extension host lifecycle a bit special when we know we are developing an extension that runs inside this.isExtensionDevelopmentHost = !!environmentService.extensionDevelopmentPath; @@ -78,7 +81,8 @@ export class ExtensionHostProcessWorker { lifecycleService.onShutdown(() => this.terminate()); } - public start(): void { + public start(extensionService: MainProcessExtensionService): void { + this.extensionService = extensionService; let opts: any = { env: objects.mixin(objects.clone(process.env), { AMD_ENTRYPOINT: 'vs/workbench/node/extensionHostProcess', @@ -200,7 +204,7 @@ export class ExtensionHostProcessWorker { if (this.initializeTimer) { window.clearTimeout(this.initializeTimer); } - this.extensionsRuntimeService.getExtensions().then(extensionDescriptors => { + this.extensionService.readExtensions().then((extensionDescriptions) => { let initData: IInitData = { parentPid: process.pid, environment: { @@ -213,7 +217,8 @@ export class ExtensionHostProcessWorker { contextService: { workspace: this.contextService.getWorkspace() }, - extensions: extensionDescriptors + extensions: extensionDescriptions, + configuration: this.configurationService.getConfiguration() }; this.extensionHostProcessQueuedSender.send(stringify(initData)); }); diff --git a/src/vs/workbench/test/node/api/extHostConfiguration.test.ts b/src/vs/workbench/test/node/api/extHostConfiguration.test.ts index 4eb053a2380..50839cabd00 100644 --- a/src/vs/workbench/test/node/api/extHostConfiguration.test.ts +++ b/src/vs/workbench/test/node/api/extHostConfiguration.test.ts @@ -25,15 +25,9 @@ suite('ExtHostConfiguration', function () { if (!shape) { shape = new class extends MainThreadConfigurationShape { }; } - const result = new ExtHostConfiguration(shape); - result.$acceptConfigurationChanged(data); - return result; + return new ExtHostConfiguration(shape, data); } - test('check illegal state', function () { - assert.throws(() => new ExtHostConfiguration(new class extends MainThreadConfigurationShape { }).getConfiguration('foo')); - }); - test('udate / section to key', function () { const shape = new RecordingShape(); From d55daa1998124d7c865cb87fa8d0ad42fed5c657 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 26 Oct 2016 23:28:08 +0200 Subject: [PATCH 126/242] Fixes #14143: Maintain editor's selection as primary range if it is one of the find matches --- .../editor/contrib/find/common/findModel.ts | 13 +++++- .../find/test/common/findModel.test.ts | 46 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/contrib/find/common/findModel.ts b/src/vs/editor/contrib/find/common/findModel.ts index 9fff3acac84..83c3bde8e72 100644 --- a/src/vs/editor/contrib/find/common/findModel.ts +++ b/src/vs/editor/contrib/find/common/findModel.ts @@ -428,8 +428,19 @@ export class FindModelBoundToEditorModel { // Get all the ranges (even more than the highlighted ones) let ranges = this._findMatches(findScope, Number.MAX_VALUE); + let selections = ranges.map(r => new Selection(r.startLineNumber, r.startColumn, r.endLineNumber, r.endColumn)); - this._editor.setSelections(ranges.map(r => new Selection(r.startLineNumber, r.startColumn, r.endLineNumber, r.endColumn))); + // If one of the ranges is the editor selection, then maintain it as primary + let editorSelection = this._editor.getSelection(); + for (let i = 0, len = selections.length; i < len; i++) { + let sel = selections[i]; + if (sel.equalsRange(editorSelection)) { + selections = [editorSelection].concat(selections.slice(0, i)).concat(selections.slice(i + 1)); + break; + } + } + + this._editor.setSelections(selections); } private _executeEditorCommand(source: string, command: editorCommon.ICommand): void { diff --git a/src/vs/editor/contrib/find/test/common/findModel.test.ts b/src/vs/editor/contrib/find/test/common/findModel.test.ts index 266f7bba790..4af097a3886 100644 --- a/src/vs/editor/contrib/find/test/common/findModel.test.ts +++ b/src/vs/editor/contrib/find/test/common/findModel.test.ts @@ -1585,6 +1585,52 @@ suite('FindModel', () => { findState.dispose(); }); + findTest('issue #14143 selectAllMatches should maintain primary cursor if feasible', (editor, cursor) => { + let findState = new FindReplaceState(); + findState.change({ searchString: 'hello', replaceString: 'hi', wholeWord: true }, false); + let findModel = new FindModelBoundToEditorModel(editor, findState); + + assertFindState( + editor, + [1, 1, 1, 1], + null, + [ + [6, 14, 6, 19], + [6, 27, 6, 32], + [7, 14, 7, 19], + [8, 14, 8, 19] + ] + ); + + editor.setSelection(new Range(7, 14, 7, 19)); + + findModel.selectAllMatches(); + + assert.deepEqual(editor.getSelections().map(s => s.toString()), [ + new Selection(7, 14, 7, 19), + new Selection(6, 14, 6, 19), + new Selection(6, 27, 6, 32), + new Selection(8, 14, 8, 19) + ].map(s => s.toString())); + + assert.deepEqual(editor.getSelection().toString(), new Selection(7, 14, 7, 19).toString()); + + assertFindState( + editor, + [7, 14, 7, 19], + null, + [ + [6, 14, 6, 19], + [6, 27, 6, 32], + [7, 14, 7, 19], + [8, 14, 8, 19] + ] + ); + + findModel.dispose(); + findState.dispose(); + }); + findTest('issue #1914: NPE when there is only one find match', (editor, cursor) => { let findState = new FindReplaceState(); findState.change({ searchString: 'cool.h' }, false); From d6c6446109e766f58a12dc160b1c040fe954d91b Mon Sep 17 00:00:00 2001 From: roblou Date: Tue, 25 Oct 2016 19:29:47 -0700 Subject: [PATCH 127/242] Update node-debug2 --- build/gulpfile.vscode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index 87fe83151c9..85f61c2a8d4 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -40,7 +40,7 @@ const nodeModules = ['electron', 'original-fs'] const builtInExtensions = [ { name: 'ms-vscode.node-debug', version: '1.7.7' }, - { name: 'ms-vscode.node-debug2', version: '1.7.0' } + { name: 'ms-vscode.node-debug2', version: '1.7.1' } ]; const vscodeEntryPoints = _.flatten([ From 4a83b379632be275ac2145e582ab90a5f55db530 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Wed, 26 Oct 2016 18:09:18 -0700 Subject: [PATCH 128/242] Force nowrap on terminal lines Fixes #13554 --- .../parts/terminal/electron-browser/media/xterm.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/vs/workbench/parts/terminal/electron-browser/media/xterm.css b/src/vs/workbench/parts/terminal/electron-browser/media/xterm.css index 2c10a8dd818..6a37bcd71a7 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/media/xterm.css +++ b/src/vs/workbench/parts/terminal/electron-browser/media/xterm.css @@ -131,6 +131,11 @@ bottom: 0; } +.monaco-workbench .panel.integrated-terminal .xterm .xterm-rows > div { + /* Lines containing spans and text nodes ocassionally wrap despite being the same width (#327) */ + white-space: nowrap; +} + .monaco-workbench .panel.integrated-terminal .xterm .xterm-scroll-area { visibility: hidden; } From 7dbe52c77bcbd68f491061ae9e45e6c4af0c43b9 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Wed, 26 Oct 2016 18:11:08 -0700 Subject: [PATCH 129/242] Change terminal scroll top/bottom mac keybindings to use cmd+ Fixes #14370 --- .../terminal/electron-browser/terminal.contribution.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.ts b/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.ts index 47e799f039b..a760bdcce51 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.ts @@ -181,8 +181,7 @@ actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ScrollDownPageTe }, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Scroll Down (Page)', category); actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ScrollToBottomTerminalAction, ScrollToBottomTerminalAction.ID, ScrollToBottomTerminalAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.End, - linux: { primary: KeyMod.Shift | KeyCode.End }, - mac: { primary: KeyCode.End } + linux: { primary: KeyMod.Shift | KeyCode.End } }, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Scroll to Bottom', category); actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ScrollUpTerminalAction, ScrollUpTerminalAction.ID, ScrollUpTerminalAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.UpArrow, @@ -194,7 +193,6 @@ actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ScrollUpPageTerm }, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Scroll Up (Page)', category); actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ScrollToTopTerminalAction, ScrollToTopTerminalAction.ID, ScrollToTopTerminalAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.Home, - linux: { primary: KeyMod.Shift | KeyCode.Home }, - mac: { primary: KeyCode.Home } -}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Scroll to Bottom', category); + linux: { primary: KeyMod.Shift | KeyCode.Home } +}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Scroll to Top', category); actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ClearTerminalAction, ClearTerminalAction.ID, ClearTerminalAction.LABEL), 'Terminal: Clear', category); From 7d2aca6a27247abec77ad589eb5d710e9a073464 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Wed, 26 Oct 2016 18:12:30 -0700 Subject: [PATCH 130/242] Uplevel xterm.js Fixes #11334 --- npm-shrinkwrap.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 8204cc5dae1..9eb516cbc0f 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -432,7 +432,7 @@ "xterm": { "version": "2.0.1", "from": "git+https://github.com/Tyriar/xterm.js.git#vscode-release/1.7", - "resolved": "git+https://github.com/Tyriar/xterm.js.git#ce674e714a0a0cae1a3738e2934f28e3842debdc" + "resolved": "git+https://github.com/Tyriar/xterm.js.git#901d42fe43c37f38bf0375fb1e99279a16eb2738" }, "yauzl": { "version": "2.3.1", From 2f182c08a781799b9df11011b36877e84dc07970 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Wed, 26 Oct 2016 18:54:22 -0700 Subject: [PATCH 131/242] Prefix setProcessId with an underscore Fixes #12434 --- src/vs/workbench/api/node/extHostTerminalService.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/api/node/extHostTerminalService.ts b/src/vs/workbench/api/node/extHostTerminalService.ts index 4bd8c38a499..49229564694 100644 --- a/src/vs/workbench/api/node/extHostTerminalService.ts +++ b/src/vs/workbench/api/node/extHostTerminalService.ts @@ -68,7 +68,7 @@ export class ExtHostTerminal implements vscode.Terminal { } } - public setProcessId(processId: number): void { + public _setProcessId(processId: number): void { this._pidPromiseComplete(processId); this._pidPromiseComplete = null; } @@ -123,7 +123,7 @@ export class ExtHostTerminalService implements ExtHostTerminalServiceShape { public $acceptTerminalProcessId(id: number, processId: number): void { let terminal = this._getTerminalById(id); - terminal.setProcessId(processId); + terminal._setProcessId(processId); } private _getTerminalById(id: number): ExtHostTerminal { From 9d472850269c3f7ff1043b86f823115927af1982 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 06:52:01 +0200 Subject: [PATCH 132/242] fix telemetry for cpus/memory --- src/vs/code/electron-main/windows.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index cf7c80cba0d..a40d75ee821 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -576,7 +576,7 @@ export class WindowsManager implements IWindowsService { this.logService.log(error); // be on the safe side with these hardware method calls } - window.send('vscode:telemetry', { eventName: 'startupTime', data: { ellapsed: Date.now() - global.vscodeStart }, totalmem, cpus }); + window.send('vscode:telemetry', { eventName: 'startupTime', data: { ellapsed: Date.now() - global.vscodeStart, totalmem, cpus } }); } private onBroadcast(event: string, payload: any): void { From 2d3b66546827c57b863080580dfc16cd63206aa2 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 08:22:23 +0200 Subject: [PATCH 133/242] fixes #14550 --- src/vs/workbench/electron-browser/workbench.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/electron-browser/workbench.ts b/src/vs/workbench/electron-browser/workbench.ts index 55cdf73869c..955b02c089b 100644 --- a/src/vs/workbench/electron-browser/workbench.ts +++ b/src/vs/workbench/electron-browser/workbench.ts @@ -553,10 +553,14 @@ export class Workbench implements IPartService { if (hidden && this.sidebarPart.getActiveViewlet()) { this.sidebarPart.hideActiveViewlet(); - // Pass Focus to Editor if Sidebar is now hidden - const editor = this.editorPart.getActiveEditor(); - if (editor) { - editor.focus(); + const activeEditor = this.editorPart.getActiveEditor(); + const activePanel = this.panelPart.getActivePanel(); + + // Pass Focus to Editor or Panel if Sidebar is now hidden + if (this.hasFocus(Parts.PANEL_PART) && activePanel) { + activePanel.focus(); + } else if (activeEditor) { + activeEditor.focus(); } } From 7daa2494d0377d0593399cbc0275b2dfbc19c591 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 08:25:00 +0200 Subject: [PATCH 134/242] Revert "explorer: keep focused item even when editors close" This reverts commit 6c6f520eb1c166ffaf359c2a114f70b284bd7cbc. --- src/vs/workbench/parts/files/browser/views/explorerView.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/vs/workbench/parts/files/browser/views/explorerView.ts b/src/vs/workbench/parts/files/browser/views/explorerView.ts index 1d17d100f1d..a737574c92e 100644 --- a/src/vs/workbench/parts/files/browser/views/explorerView.ts +++ b/src/vs/workbench/parts/files/browser/views/explorerView.ts @@ -160,6 +160,7 @@ export class ExplorerView extends CollapsibleViewletView { private onEditorsChanged(): void { const activeInput = this.editorService.getActiveEditorInput(); let clearSelection = true; + let clearFocus = false; // Handle File Input if (activeInput instanceof FileEditorInput) { @@ -182,12 +183,17 @@ export class ExplorerView extends CollapsibleViewletView { // Handle closed or untitled file (convince explorer to not reopen any file when getting visible) if (activeInput instanceof UntitledEditorInput || !activeInput) { this.settings[ExplorerView.MEMENTO_LAST_ACTIVE_FILE_RESOURCE] = void 0; + clearFocus = true; } // Otherwise clear if (clearSelection) { this.explorerViewer.clearSelection(); } + + if (clearFocus) { + this.explorerViewer.clearFocus(); + } } private onConfigurationUpdated(configuration: IFilesConfiguration, refresh?: boolean): void { From 0e4fa466b1d316ed8caff1fc2ff0e83c5f0b4c06 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 08:27:11 +0200 Subject: [PATCH 135/242] fix #14468 --- .../browser/parts/editor/sideBySideEditorControl.ts | 5 +---- src/vs/workbench/common/editor.ts | 3 +-- src/vs/workbench/electron-browser/main.contribution.ts | 6 ------ 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts index f35bb4e0252..5b959dce157 100644 --- a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts +++ b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts @@ -108,7 +108,6 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti private dragging: boolean; private layoutVertically: boolean; - private defaultEditorGroupOrientation: GroupOrientation; private showTabs: boolean; private showIcons: boolean; @@ -170,7 +169,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti this.onConfigurationUpdated(this.configurationService.getConfiguration()); - const editorGroupOrientation = groupOrientation || this.defaultEditorGroupOrientation; + const editorGroupOrientation = groupOrientation || 'vertical'; this.layoutVertically = (editorGroupOrientation !== 'horizontal'); this.create(); @@ -212,11 +211,9 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti if (config.workbench && config.workbench.editor) { this.showTabs = config.workbench.editor.showTabs; this.showIcons = config.workbench.editor.showIcons; - this.defaultEditorGroupOrientation = (config.workbench.editor.defaultEditorGroupLayout === 'horizontal') ? 'horizontal' : 'vertical'; } else { this.showTabs = true; this.showIcons = false; - this.defaultEditorGroupOrientation = 'vertical'; } if (!refresh) { diff --git a/src/vs/workbench/common/editor.ts b/src/vs/workbench/common/editor.ts index 7a549008eca..316e19103d2 100644 --- a/src/vs/workbench/common/editor.ts +++ b/src/vs/workbench/common/editor.ts @@ -11,7 +11,7 @@ import URI from 'vs/base/common/uri'; import { IEditor, ICommonCodeEditor, IEditorViewState, IEditorOptions as ICodeEditorOptions } from 'vs/editor/common/editorCommon'; import { IEditorInput, IEditorModel, IEditorOptions, ITextEditorOptions, IResourceInput, Position } from 'vs/platform/editor/common/editor'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; -import { IEditorGroupService, GroupOrientation } from 'vs/workbench/services/group/common/groupService'; +import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { SyncDescriptor, AsyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { IInstantiationService, IConstructorSignature0 } from 'vs/platform/instantiation/common/instantiation'; import { IModel } from 'vs/editor/common/editorCommon'; @@ -861,7 +861,6 @@ export interface IWorkbenchEditorConfiguration { enablePreview: boolean; enablePreviewFromQuickOpen: boolean; openPositioning: 'left' | 'right' | 'first' | 'last'; - defaultEditorGroupLayout: GroupOrientation; } }; } diff --git a/src/vs/workbench/electron-browser/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts index 295a61af2ac..afc8ea109be 100644 --- a/src/vs/workbench/electron-browser/main.contribution.ts +++ b/src/vs/workbench/electron-browser/main.contribution.ts @@ -74,12 +74,6 @@ configurationRegistry.registerConfiguration({ 'title': nls.localize('workbenchConfigurationTitle', "Workbench"), 'type': 'object', 'properties': { - 'workbench.editor.defaultEditorGroupLayout': { - 'type': 'string', - 'enum': ['vertical', 'horizontal'], - 'default': 'vertical', - 'description': nls.localize('defaultEditorGroupLayout', "Controls how multiple editor groups should layout by default if no other user choice has been made.") - }, 'workbench.editor.showTabs': { 'type': 'boolean', 'description': nls.localize('showEditorTabs', "Controls if opened editors should show in tabs or not."), From 3d03839d8d883a12abcb10abec53053e3333917c Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 08:56:10 +0200 Subject: [PATCH 136/242] fixes #14576 --- .../parts/editor/sideBySideEditorControl.ts | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts index 5b959dce157..9ba56be69d3 100644 --- a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts +++ b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts @@ -193,10 +193,18 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti return this.silosSize[position] === this.minSize && this.silosMinimized[position]; } - private updateMinimizedState(): void { + private enableMinimizedState(): void { POSITIONS.forEach(p => this.silosMinimized[p] = this.silosSize[p] === this.minSize); } + private updateMinimizedState(): void { + POSITIONS.forEach(p => { + if (this.silosSize[p] !== this.minSize) { + this.silosMinimized[p] = false; // release silo from minimized state if it was sized large enough + } + }); + } + private get snapToMinimizeThresholdSize(): number { return this.layoutVertically ? SideBySideEditorControl.SNAP_TO_MINIMIZED_THRESHOLD_WIDTH : SideBySideEditorControl.SNAP_TO_MINIMIZED_THRESHOLD_HEIGHT; } @@ -461,7 +469,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti // Since we triggered a change in minimized/maximized editors, we need // to update our stored state of minimized silos accordingly - this.updateMinimizedState(); + this.enableMinimizedState(); if (layout) { this.layoutContainers(); @@ -805,7 +813,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti // Since we triggered a change in minimized/maximized editors, we need // to update our stored state of minimized silos accordingly - this.updateMinimizedState(); + this.enableMinimizedState(); // Layout silos this.layoutControl(this.dimension); @@ -1590,7 +1598,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti // We allow silos to turn into minimized state from user dragging the sash, // so we need to update our stored state of minimized silos accordingly - this.updateMinimizedState(); + this.enableMinimizedState(); // Pass on to containers this.layoutContainers(); @@ -1658,7 +1666,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti // We allow silos to turn into minimized state from user dragging the sash, // so we need to update our stored state of minimized silos accordingly - this.updateMinimizedState(); + this.enableMinimizedState(); // Pass on to containers this.layoutContainers(); @@ -1757,7 +1765,7 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti // When restoring from an initial ratio state, we treat editors of min-size as // minimized, so we need to update our stored state of minimized silos accordingly if (wasInitialRatioRestored) { - this.updateMinimizedState(); + this.enableMinimizedState(); } // Compensate for overflow either through rounding error or min editor size @@ -1841,6 +1849,9 @@ export class SideBySideEditorControl implements ISideBySideEditorControl, IVerti POSITIONS.forEach(position => { this.getTitleAreaControl(position).layout(); }); + + // Update minimized state + this.updateMinimizedState(); } private layoutEditor(position: Position): void { From 797f90b7b563acc44332c9a1f871d60cbe9787c5 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 09:16:32 +0200 Subject: [PATCH 137/242] oss input --- ThirdPartyNotices.txt | 157 ++++++++++++++++------------ extensions/fsharp/OSSREADME.json | 4 +- extensions/shaderlab/OSSREADME.json | 4 +- package.json | 2 +- 4 files changed, 93 insertions(+), 74 deletions(-) diff --git a/ThirdPartyNotices.txt b/ThirdPartyNotices.txt index 3408788037d..09e2f6aea42 100644 --- a/ThirdPartyNotices.txt +++ b/ThirdPartyNotices.txt @@ -7,60 +7,60 @@ This project incorporates components from the projects listed below. The origina 1. atom/language-c version 0.51.3 (https://github.com/atom/language-c) 2. atom/language-sass version 0.52.0 (https://github.com/atom/language-sass) -3. Benvie/JavaScriptNext.tmLanguage (https://github.com/Benvie/JavaScriptNext.tmLanguage) -4. chjj-marked version 0.3.2 (https://github.com/npmcomponent/chjj-marked) -5. chriskempson/tomorrow-theme (https://github.com/chriskempson/tomorrow-theme) -6. Colorsublime-Themes version 0.1.0 (https://github.com/Colorsublime/Colorsublime-Themes) -7. daaain/Handlebars (https://github.com/daaain/Handlebars) -8. davidrios/jade-tmbundle (https://github.com/davidrios/jade-tmbundle) -9. definitelytyped (https://github.com/DefinitelyTyped/DefinitelyTyped) -10. demyte/language-cshtml (https://github.com/demyte/language-cshtml) -11. freebroccolo/atom-language-swift (https://github.com/freebroccolo/atom-language-swift) -12. HTML 5.1 W3C Working Draft version 08 October 2015 (http://www.w3.org/TR/2015/WD-html51-20151008/) -13. Ionic documentation version 1.2.4 (https://github.com/driftyco/ionic-site) -14. ionide/ionide-fsharp (https://github.com/ionide/ionide-atom-fsharp) -15. js-beautify version 1.6.2 (https://github.com/beautify-web/js-beautify) -16. Jxck/assert version 1.0.0 (https://github.com/Jxck/assert) -17. language-docker (https://github.com/docker/docker) -18. language-go version 0.39.0 (https://github.com/atom/language-go) -19. language-php version 0.29.0 (https://github.com/atom/language-php) -20. language-rust version 0.4.4 (https://github.com/zargony/atom-language-rust) -21. MagicStack/MagicPython (https://github.com/MagicStack/MagicPython) -22. Microsoft/TypeScript-TmLanguage version 0.0.1 (https://github.com/Microsoft/TypeScript-TmLanguage) -23. mmcgrana/textmate-clojure (https://github.com/mmcgrana/textmate-clojure) -24. octicons-code version 3.1.0 (https://octicons.github.com) -25. octicons-font version 3.1.0 (https://octicons.github.com) -26. seti-ui version 0.1.0 (https://github.com/jesseweed/seti-ui) -27. string_scorer version 0.1.20 (https://github.com/joshaven/string_score) -28. sublimehq/Packages (https://github.com/sublimehq/Packages) -29. SublimeText/PowerShell (https://github.com/SublimeText/PowerShell) -30. textmate/asp.vb.net.tmbundle (https://github.com/textmate/asp.vb.net.tmbundle) -31. textmate/c.tmbundle (https://github.com/textmate/c.tmbundle) -32. textmate/coffee-script.tmbundle (https://github.com/textmate/coffee-script.tmbundle) -33. textmate/css.tmbundle (https://github.com/textmate/css.tmbundle) -34. textmate/diff.tmbundle (https://github.com/textmate/diff.tmbundle) -35. textmate/git.tmbundle (https://github.com/textmate/git.tmbundle) -36. textmate/groovy.tmbundle (https://github.com/textmate/groovy.tmbundle) -37. textmate/html.tmbundle (https://github.com/textmate/html.tmbundle) -38. textmate/ini.tmbundle (https://github.com/textmate/ini.tmbundle) -39. textmate/java.tmbundle (https://github.com/textmate/java.tmbundle) -40. textmate/javascript.tmbundle (https://github.com/textmate/javascript.tmbundle) -41. textmate/less.tmbundle (https://github.com/textmate/less.tmbundle) -42. textmate/lua.tmbundle (https://github.com/textmate/lua.tmbundle) -43. textmate/make.tmbundle (https://github.com/textmate/make.tmbundle) -44. textmate/markdown.tmbundle (https://github.com/textmate/markdown.tmbundle) -45. textmate/objective-c.tmbundle (https://github.com/textmate/objective-c.tmbundle) -46. textmate/perl.tmbundle (https://github.com/textmate/perl.tmbundle) -47. textmate/php.tmbundle (https://github.com/textmate/php.tmbundle) -48. textmate/r.tmbundle (https://github.com/textmate/r.tmbundle) -49. textmate/ruby.tmbundle (https://github.com/textmate/ruby.tmbundle) -50. textmate/shellscript.tmbundle (https://github.com/textmate/shellscript.tmbundle) -51. textmate/sql.tmbundle (https://github.com/textmate/sql.tmbundle) -52. textmate/xml.tmbundle (https://github.com/textmate/xml.tmbundle) +3. atom/language-xml (https://github.com/atom/language-xml) +4. Benvie/JavaScriptNext.tmLanguage (https://github.com/Benvie/JavaScriptNext.tmLanguage) +5. chjj-marked version 0.3.2 (https://github.com/npmcomponent/chjj-marked) +6. chriskempson/tomorrow-theme (https://github.com/chriskempson/tomorrow-theme) +7. Colorsublime-Themes version 0.1.0 (https://github.com/Colorsublime/Colorsublime-Themes) +8. daaain/Handlebars (https://github.com/daaain/Handlebars) +9. davidrios/jade-tmbundle (https://github.com/davidrios/jade-tmbundle) +10. definitelytyped (https://github.com/DefinitelyTyped/DefinitelyTyped) +11. demyte/language-cshtml (https://github.com/demyte/language-cshtml) +12. freebroccolo/atom-language-swift (https://github.com/freebroccolo/atom-language-swift) +13. HTML 5.1 W3C Working Draft version 08 October 2015 (http://www.w3.org/TR/2015/WD-html51-20151008/) +14. Ionic documentation version 1.2.4 (https://github.com/driftyco/ionic-site) +15. ionide/ionide-fsharp (https://github.com/ionide/ionide-atom-fsharp) +16. js-beautify version 1.6.2 (https://github.com/beautify-web/js-beautify) +17. Jxck/assert version 1.0.0 (https://github.com/Jxck/assert) +18. language-docker (https://github.com/docker/docker) +19. language-go version 0.39.0 (https://github.com/atom/language-go) +20. language-php version 0.29.0 (https://github.com/atom/language-php) +21. language-rust version 0.4.4 (https://github.com/zargony/atom-language-rust) +22. MagicStack/MagicPython (https://github.com/MagicStack/MagicPython) +23. Microsoft/TypeScript-TmLanguage version 0.0.1 (https://github.com/Microsoft/TypeScript-TmLanguage) +24. mmcgrana/textmate-clojure (https://github.com/mmcgrana/textmate-clojure) +25. octicons-code version 3.1.0 (https://octicons.github.com) +26. octicons-font version 3.1.0 (https://octicons.github.com) +27. seti-ui version 0.1.0 (https://github.com/jesseweed/seti-ui) +28. string_scorer version 0.1.20 (https://github.com/joshaven/string_score) +29. sublimehq/Packages (https://github.com/sublimehq/Packages) +30. SublimeText/PowerShell (https://github.com/SublimeText/PowerShell) +31. textmate/asp.vb.net.tmbundle (https://github.com/textmate/asp.vb.net.tmbundle) +32. textmate/c.tmbundle (https://github.com/textmate/c.tmbundle) +33. textmate/coffee-script.tmbundle (https://github.com/textmate/coffee-script.tmbundle) +34. textmate/css.tmbundle (https://github.com/textmate/css.tmbundle) +35. textmate/diff.tmbundle (https://github.com/textmate/diff.tmbundle) +36. textmate/git.tmbundle (https://github.com/textmate/git.tmbundle) +37. textmate/groovy.tmbundle (https://github.com/textmate/groovy.tmbundle) +38. textmate/html.tmbundle (https://github.com/textmate/html.tmbundle) +39. textmate/ini.tmbundle (https://github.com/textmate/ini.tmbundle) +40. textmate/java.tmbundle (https://github.com/textmate/java.tmbundle) +41. textmate/javascript.tmbundle (https://github.com/textmate/javascript.tmbundle) +42. textmate/less.tmbundle (https://github.com/textmate/less.tmbundle) +43. textmate/lua.tmbundle (https://github.com/textmate/lua.tmbundle) +44. textmate/make.tmbundle (https://github.com/textmate/make.tmbundle) +45. textmate/markdown.tmbundle (https://github.com/textmate/markdown.tmbundle) +46. textmate/objective-c.tmbundle (https://github.com/textmate/objective-c.tmbundle) +47. textmate/perl.tmbundle (https://github.com/textmate/perl.tmbundle) +48. textmate/php.tmbundle (https://github.com/textmate/php.tmbundle) +49. textmate/r.tmbundle (https://github.com/textmate/r.tmbundle) +50. textmate/ruby.tmbundle (https://github.com/textmate/ruby.tmbundle) +51. textmate/shellscript.tmbundle (https://github.com/textmate/shellscript.tmbundle) +52. textmate/sql.tmbundle (https://github.com/textmate/sql.tmbundle) 53. textmate/yaml.tmbundle (https://github.com/textmate/yaml.tmbundle) 54. typescript version 1.5 (https://github.com/Microsoft/TypeScript) 55. TypeScript-TmLanguage version 0.1.8 (https://github.com/Microsoft/TypeScript-TmLanguage) -56. unity-shader-files version 0.1.0 (https://github.com/nashella/unity-shader-files) +56. unity-shader-files version 0.1.0 (https://github.com/nadege/unity-shader-files) 57. vscode-swift version 0.0.1 (https://github.com/owensd/vscode-swift) @@ -154,6 +154,43 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ========================================= END OF atom/language-sass NOTICES AND INFORMATION +%% atom/language-xml NOTICES AND INFORMATION BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2014 GitHub Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +This package was derived from a TextMate bundle located at +https://github.com/textmate/xml.tmbundle and distributed under the following +license, located in `README.mdown`: + +Permission to copy, use, modify, sell and distribute this +software is granted. This software is provided "as is" without +express or implied warranty, and with no claim as to its +suitability for any purpose. +========================================= +END OF atom/language-xml NOTICES AND INFORMATION + %% Benvie/JavaScriptNext.tmLanguage NOTICES AND INFORMATION BEGIN HERE ========================================= The MIT License (MIT) @@ -1683,24 +1720,6 @@ to the base-name name of the original file, and an extension of txt, html, or si ========================================= END OF textmate/sql.tmbundle NOTICES AND INFORMATION -%% textmate/xml.tmbundle NOTICES AND INFORMATION BEGIN HERE -========================================= -Copyright (c) textmate-xml.tmbundle project authors - -If not otherwise specified (see below), files in this repository fall under the following license: - -Permission to copy, use, modify, sell and distribute this -software is granted. This software is provided "as is" without -express or implied warranty, and with no claim as to its -suitability for any purpose. - -An exception is made for files in readable text which contain their own license information, -or files where an accompanying file exists (in the same directory) with a "-license" suffix added -to the base-name name of the original file, and an extension of txt, html, or similar. For example -"tidy" is accompanied by "tidy-license.txt". -========================================= -END OF textmate/xml.tmbundle NOTICES AND INFORMATION - %% textmate/yaml.tmbundle NOTICES AND INFORMATION BEGIN HERE ========================================= Copyright (c) 2015 FichteFoll diff --git a/extensions/fsharp/OSSREADME.json b/extensions/fsharp/OSSREADME.json index 6da679f6ad3..6ee0c63a2e4 100644 --- a/extensions/fsharp/OSSREADME.json +++ b/extensions/fsharp/OSSREADME.json @@ -3,6 +3,6 @@ "name": "ionide/ionide-fsharp", "version": "0.0.0", "license": "MIT", - "repositoryURL": "https://github.com/ionide/ionide-fsharp", - "description": "The file syntaxes/fsharp.json was included from https://github.com/ionide/ionide-fsharp/blob/develop/release/grammars/fsharp.json." + "repositoryURL": "https://github.com/ionide/ionide-atom-fsharp", + "description": "The file syntaxes/fsharp.json was included from https://github.com/ionide/ionide-atom-fsharp/blob/develop/release/grammars/fsharp.json." }] diff --git a/extensions/shaderlab/OSSREADME.json b/extensions/shaderlab/OSSREADME.json index 0306286ac06..b2d5846e3e6 100644 --- a/extensions/shaderlab/OSSREADME.json +++ b/extensions/shaderlab/OSSREADME.json @@ -4,6 +4,6 @@ "name": "unity-shader-files", "version": "0.1.0", "license": "MIT", - "repositoryURL": "https://github.com/nashella/unity-shader-files", - "description": "The file syntaxes/shaderlab.json was derived from the Atom package https://github.com/nashella/unity-shader-files." + "repositoryURL": "https://github.com/nadege/unity-shader-files", + "description": "The file syntaxes/shaderlab.json was derived from the Atom package https://github.com/nadege/unity-shader-files." }] diff --git a/package.json b/package.json index 75d0f82a449..8964cd132ab 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "code-oss-dev", "version": "1.7.0", "electronVersion": "1.3.8", - "distro": "1fb24fffbc4d6428622dae7fd15b9a059e5c52d1", + "distro": "a7fe005047e2c139d0e695a1b19f572f5752fb14", "author": { "name": "Microsoft Corporation" }, From aa587165ff30cef42901552dfa9d073dfa6fcfb9 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Thu, 27 Oct 2016 11:02:17 +0200 Subject: [PATCH 138/242] Fixed #14548: Lock TypeScript 2.0.6 dependency in NPM shrinkwarp if necessary --- extensions/typescript/npm-shrinkwrap.json | 17 +++++++++++------ extensions/typescript/package.json | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/extensions/typescript/npm-shrinkwrap.json b/extensions/typescript/npm-shrinkwrap.json index 87964ab49f6..49b74809652 100644 --- a/extensions/typescript/npm-shrinkwrap.json +++ b/extensions/typescript/npm-shrinkwrap.json @@ -2,15 +2,20 @@ "name": "typescript", "version": "0.10.1", "dependencies": { + "applicationinsights": { + "version": "0.15.6", + "from": "applicationinsights@0.15.6", + "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-0.15.6.tgz" + }, "semver": { "version": "4.3.6", "from": "semver@4.3.6", "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, - "applicationinsights": { - "version": "0.15.6", - "from": "applicationinsights@0.15.6", - "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-0.15.6.tgz" + "typescript": { + "version": "2.0.6", + "from": "typescript@2.0.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.0.6.tgz" }, "vscode-extension-telemetry": { "version": "0.0.5", @@ -19,8 +24,8 @@ }, "vscode-nls": { "version": "2.0.1", - "from": "vscode-nls@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-1.0.7.tgz" + "from": "vscode-nls@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-2.0.1.tgz" }, "winreg": { "version": "0.0.13", diff --git a/extensions/typescript/package.json b/extensions/typescript/package.json index 3fa7dc19d0c..b5ba8ce4acc 100644 --- a/extensions/typescript/package.json +++ b/extensions/typescript/package.json @@ -14,7 +14,7 @@ "semver": "4.3.6", "vscode-extension-telemetry": "^0.0.5", "vscode-nls": "^2.0.1", - "typescript": "^2.0.6" + "typescript": "2.0.6" }, "scripts": { "postinstall": "node ./bin/postinstall", From f4923178905005ee9ecc99383ca76f568ee8ac0a Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Thu, 27 Oct 2016 11:19:30 +0200 Subject: [PATCH 139/242] fix #14564 --- .../electron-browser/extensionEditor.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index d4357939baf..158fb81cfc9 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -340,14 +340,16 @@ export class ExtensionEditor extends BaseEditor { const removeLayoutParticipant = arrays.insert(this.layoutParticipants, { layout }); this.contentDisposables.push(toDisposable(removeLayoutParticipant)); - let isEmpty = true; - isEmpty = isEmpty && !ExtensionEditor.renderSettings(content, manifest, layout); - isEmpty = isEmpty && !this.renderCommands(content, manifest, layout); - isEmpty = isEmpty && !ExtensionEditor.renderLanguages(content, manifest, layout); - isEmpty = isEmpty && !ExtensionEditor.renderThemes(content, manifest, layout); - isEmpty = isEmpty && !ExtensionEditor.renderJSONValidation(content, manifest, layout); - isEmpty = isEmpty && !ExtensionEditor.renderDebuggers(content, manifest, layout); + const renders = [ + ExtensionEditor.renderSettings(content, manifest, layout), + this.renderCommands(content, manifest, layout), + ExtensionEditor.renderLanguages(content, manifest, layout), + ExtensionEditor.renderThemes(content, manifest, layout), + ExtensionEditor.renderJSONValidation(content, manifest, layout), + ExtensionEditor.renderDebuggers(content, manifest, layout) + ]; + const isEmpty = !renders.reduce((v, r) => r || v, false); scrollableContent.scanDomNode(); if (isEmpty) { From f178d6c30fc533c38dba0027149b60db233586de Mon Sep 17 00:00:00 2001 From: isidor Date: Thu, 27 Oct 2016 11:33:45 +0200 Subject: [PATCH 140/242] debug: support evalaution when no stack frame exist fixes #14571 --- .../parts/debug/common/debugModel.ts | 84 +++++++++---------- .../debug/electron-browser/debugHover.ts | 17 ++-- .../debug/electron-browser/debugService.ts | 8 +- .../parts/debug/test/node/debugModel.test.ts | 14 ++-- 4 files changed, 63 insertions(+), 60 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 4eddacc3b10..57b109ce050 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -24,39 +24,6 @@ function massageValue(value: string): string { return value ? value.replace(/\n/g, '\\n').replace(/\r/g, '\\r').replace(/\t/g, '\\t') : value; } -export function evaluateExpression(stackFrame: debug.IStackFrame, expression: Expression, context: string): TPromise { - if (!stackFrame || !stackFrame.thread.process) { - expression.value = context === 'repl' ? nls.localize('startDebugFirst', "Please start a debug session to evaluate") : Expression.DEFAULT_VALUE; - expression.available = false; - expression.reference = 0; - return TPromise.as(expression); - } - expression.stackFrame = stackFrame; - - return stackFrame.thread.process.session.evaluate({ - expression: expression.name, - frameId: stackFrame ? stackFrame.frameId : undefined, - context - }).then(response => { - expression.available = !!(response && response.body); - if (response && response.body) { - expression.value = response.body.result; - expression.reference = response.body.variablesReference; - expression.namedVariables = response.body.namedVariables; - expression.indexedVariables = response.body.indexedVariables; - expression.type = response.body.type; - } - - return expression; - }, err => { - expression.value = err.message; - expression.available = false; - expression.reference = 0; - - return expression; - }); -} - export class OutputElement implements debug.ITreeElement { private static ID_COUNTER = 0; @@ -238,6 +205,39 @@ export class Expression extends ExpressionContainer implements debug.IExpression this.value = Expression.DEFAULT_VALUE; this.available = false; } + + public evaluate(process: debug.IProcess, stackFrame: debug.IStackFrame, context: string): TPromise { + if (!process) { + this.value = context === 'repl' ? nls.localize('startDebugFirst', "Please start a debug session to evaluate") : Expression.DEFAULT_VALUE; + this.available = false; + this.reference = 0; + + return TPromise.as(null); + } + + // Create a fake stack frame which is just used as a container for the process. + // TODO@Isidor revisit if variables should have a reference to the StackFrame or a process after all + this.stackFrame = stackFrame || new StackFrame(new Thread(process, undefined, undefined), undefined, undefined, undefined, undefined, undefined); + + return process.session.evaluate({ + expression: this.name, + frameId: stackFrame ? stackFrame.frameId : undefined, + context + }).then(response => { + this.available = !!(response && response.body); + if (response && response.body) { + this.value = response.body.result; + this.reference = response.body.variablesReference; + this.namedVariables = response.body.namedVariables; + this.indexedVariables = response.body.indexedVariables; + this.type = response.body.type; + } + }, err => { + this.value = err.message; + this.available = false; + this.reference = 0; + }); + } } export class Variable extends ExpressionContainer implements debug.IExpression { @@ -800,10 +800,10 @@ export class Model implements debug.IModel { return this.replElements; } - public addReplExpression(stackFrame: debug.IStackFrame, name: string): TPromise { + public addReplExpression(process: debug.IProcess, stackFrame: debug.IStackFrame, name: string): TPromise { const expression = new Expression(name, true); this.addReplElements([expression]); - return evaluateExpression(stackFrame, expression, 'repl') + return expression.evaluate(process, stackFrame, 'repl') .then(() => this._onDidChangeREPLElements.fire()); } @@ -875,7 +875,7 @@ export class Model implements debug.IModel { return this.watchExpressions; } - public addWatchExpression(stackFrame: debug.IStackFrame, name: string): TPromise { + public addWatchExpression(process: debug.IProcess, stackFrame: debug.IStackFrame, name: string): TPromise { const we = new Expression(name, false); this.watchExpressions.push(we); if (!name) { @@ -883,14 +883,14 @@ export class Model implements debug.IModel { return TPromise.as(null); } - return this.evaluateWatchExpressions(stackFrame, we.getId()); + return this.evaluateWatchExpressions(process, stackFrame, we.getId()); } - public renameWatchExpression(stackFrame: debug.IStackFrame, id: string, newName: string): TPromise { + public renameWatchExpression(process: debug.IProcess, stackFrame: debug.IStackFrame, id: string, newName: string): TPromise { const filtered = this.watchExpressions.filter(we => we.getId() === id); if (filtered.length === 1) { filtered[0].name = newName; - return evaluateExpression(stackFrame, filtered[0], 'watch').then(() => { + return filtered[0].evaluate(process, stackFrame, 'watch').then(() => { this._onDidChangeWatchExpressions.fire(filtered[0]); }); } @@ -898,19 +898,19 @@ export class Model implements debug.IModel { return TPromise.as(null); } - public evaluateWatchExpressions(stackFrame: debug.IStackFrame, id: string = null): TPromise { + public evaluateWatchExpressions(process: debug.IProcess, stackFrame: debug.IStackFrame, id: string = null): TPromise { if (id) { const filtered = this.watchExpressions.filter(we => we.getId() === id); if (filtered.length !== 1) { return TPromise.as(null); } - return evaluateExpression(stackFrame, filtered[0], 'watch').then(() => { + return filtered[0].evaluate(process, stackFrame, 'watch').then(() => { this._onDidChangeWatchExpressions.fire(filtered[0]); }); } - return TPromise.join(this.watchExpressions.map(we => evaluateExpression(stackFrame, we, 'watch'))).then(() => { + return TPromise.join(this.watchExpressions.map(we => we.evaluate(process, stackFrame, 'watch'))).then(() => { this._onDidChangeWatchExpressions.fire(); }); } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugHover.ts b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts index 792ba6b0c23..e21ed66f442 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugHover.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts @@ -15,7 +15,7 @@ import { IConfigurationChangedEvent } from 'vs/editor/common/editorCommon'; import editorbrowser = require('vs/editor/browser/editorBrowser'); import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import debug = require('vs/workbench/parts/debug/common/debug'); -import { evaluateExpression, Expression } from 'vs/workbench/parts/debug/common/debugModel'; +import { Expression } from 'vs/workbench/parts/debug/common/debugModel'; import viewer = require('vs/workbench/parts/debug/electron-browser/debugViewer'); import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { Position } from 'vs/editor/common/core/position'; @@ -158,13 +158,16 @@ export class DebugHoverWidget implements editorbrowser.IContentWidget { const expressionRange = this.getExactExpressionRange(lineContent, range); // use regex to extract the sub-expression #9821 const matchingExpression = lineContent.substring(expressionRange.startColumn - 1, expressionRange.endColumn); + let promise: TPromise; + if (process.session.configuration.capabilities.supportsEvaluateForHovers) { + const result = new Expression(matchingExpression, true); + promise = result.evaluate(process, focusedStackFrame, 'hover').then(() => result); + } else { + promise = this.findExpressionInStackFrame(matchingExpression.split('.').map(word => word.trim()).filter(word => !!word)); + } - const evaluatedExpression = process.session.configuration.capabilities.supportsEvaluateForHovers ? - evaluateExpression(focusedStackFrame, new Expression(matchingExpression, true), 'hover') : - this.findExpressionInStackFrame(matchingExpression.split('.').map(word => word.trim()).filter(word => !!word)); - - return evaluatedExpression.then(expression => { - if (!expression || !expression.available) { + return promise.then(expression => { + if (!expression || (expression instanceof Expression && !expression.available)) { this.hide(); return; } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index a95380fbedf..458df9ad131 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -451,7 +451,7 @@ export class DebugService implements debug.IDebugService { this.viewModel.setFocusedStackFrame(focusedStackFrame, process); this._onDidChangeState.fire(); if (focusedStackFrame) { - return this.model.evaluateWatchExpressions(focusedStackFrame); + return this.model.evaluateWatchExpressions(process, focusedStackFrame); } else { this.model.clearWatchExpressionValues(); return TPromise.as(null); @@ -512,7 +512,7 @@ export class DebugService implements debug.IDebugService { public addReplExpression(name: string): TPromise { this.telemetryService.publicLog('debugService/addReplExpression'); - return this.model.addReplExpression(this.viewModel.focusedStackFrame, name) + return this.model.addReplExpression(this.viewModel.focusedProcess, this.viewModel.focusedStackFrame, name) // Evaluate all watch expressions again since repl evaluation might have changed some. .then(() => this.setFocusedStackFrameAndEvaluate(this.viewModel.focusedStackFrame)); } @@ -530,11 +530,11 @@ export class DebugService implements debug.IDebugService { } public addWatchExpression(name: string): TPromise { - return this.model.addWatchExpression(this.viewModel.focusedStackFrame, name); + return this.model.addWatchExpression(this.viewModel.focusedProcess, this.viewModel.focusedStackFrame, name); } public renameWatchExpression(id: string, newName: string): TPromise { - return this.model.renameWatchExpression(this.viewModel.focusedStackFrame, id, newName); + return this.model.renameWatchExpression(this.viewModel.focusedProcess, this.viewModel.focusedStackFrame, id, newName); } public removeWatchExpressions(id?: string): void { diff --git a/src/vs/workbench/parts/debug/test/node/debugModel.test.ts b/src/vs/workbench/parts/debug/test/node/debugModel.test.ts index e31f2d38c68..09b8b2ae9a6 100644 --- a/src/vs/workbench/parts/debug/test/node/debugModel.test.ts +++ b/src/vs/workbench/parts/debug/test/node/debugModel.test.ts @@ -294,13 +294,13 @@ suite('Debug - Model', () => { const process = new debugmodel.Process('mockProcess', rawSession); const thread = new debugmodel.Thread(process, 'mockthread', 1); const stackFrame = new debugmodel.StackFrame(thread, 1, null, 'app.js', 1, 1); - model.addWatchExpression(stackFrame, 'console').done(); - model.addWatchExpression(stackFrame, 'console').done(); + model.addWatchExpression(process, stackFrame, 'console').done(); + model.addWatchExpression(process, stackFrame, 'console').done(); const watchExpressions = model.getWatchExpressions(); assertWatchExpressions(watchExpressions, 'console'); - model.renameWatchExpression(stackFrame, watchExpressions[0].getId(), 'new_name').done(); - model.renameWatchExpression(stackFrame, watchExpressions[1].getId(), 'new_name').done(); + model.renameWatchExpression(process, stackFrame, watchExpressions[0].getId(), 'new_name').done(); + model.renameWatchExpression(process, stackFrame, watchExpressions[1].getId(), 'new_name').done(); assertWatchExpressions(model.getWatchExpressions(), 'new_name'); model.clearWatchExpressionValues(); @@ -315,9 +315,9 @@ suite('Debug - Model', () => { const process = new debugmodel.Process('mockProcess', rawSession); const thread = new debugmodel.Thread(process, 'mockthread', 1); const stackFrame = new debugmodel.StackFrame(thread, 1, null, 'app.js', 1, 1); - model.addReplExpression(stackFrame, 'myVariable').done(); - model.addReplExpression(stackFrame, 'myVariable').done(); - model.addReplExpression(stackFrame, 'myVariable').done(); + model.addReplExpression(process, stackFrame, 'myVariable').done(); + model.addReplExpression(process, stackFrame, 'myVariable').done(); + model.addReplExpression(process, stackFrame, 'myVariable').done(); assert.equal(model.getReplElements().length, 3); model.getReplElements().forEach(re => { From 4a15897b3fe5fbfbaedf86da2124403dee7b4d65 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Thu, 27 Oct 2016 11:59:50 +0200 Subject: [PATCH 141/242] fixes #11918 --- src/vs/workbench/parts/git/browser/gitServices.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/vs/workbench/parts/git/browser/gitServices.ts b/src/vs/workbench/parts/git/browser/gitServices.ts index af4d7df93aa..ffc3e9b8a20 100644 --- a/src/vs/workbench/parts/git/browser/gitServices.ts +++ b/src/vs/workbench/parts/git/browser/gitServices.ts @@ -410,7 +410,6 @@ export class GitService extends EventEmitter private reactiveStatusDelayer: PeriodThrottledDelayer; private autoFetcher: AutoFetcher; private isStatusPending = false; - private isFocused = true; private _allowHugeRepositories: boolean; get allowHugeRepositories(): boolean { return this._allowHugeRepositories; } @@ -518,15 +517,10 @@ export class GitService extends EventEmitter const focusEvent = domEvent(window, 'focus'); this.toDispose.push(focusEvent(() => { - this.isFocused = true; - if (this.isStatusPending) { this.triggerAutoStatus(); } })); - - const blurEvent = domEvent(window, 'blur'); - this.toDispose.push(blurEvent(() => this.isFocused = false)); } private onTextFileChange(e: TextFileModelChangeEvent): void { @@ -615,7 +609,7 @@ export class GitService extends EventEmitter private triggerAutoStatus(force = false): void { this.isStatusPending = true; - if (!this.isFocused && !force) { + if (!document.hasFocus() && !force) { return; } From b74b36bee07a5d9db0a53f055997639b0bfb8038 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Thu, 27 Oct 2016 12:01:15 +0200 Subject: [PATCH 142/242] Fixes #13266: TSC version mismatch shouldn't be shown for JavaScript --- .../src/features/bufferSyncSupport.ts | 82 ++++++++++++++++++- .../typescript/src/typescriptService.ts | 25 +++--- .../typescript/src/typescriptServiceClient.ts | 75 +++-------------- 3 files changed, 106 insertions(+), 76 deletions(-) diff --git a/extensions/typescript/src/features/bufferSyncSupport.ts b/extensions/typescript/src/features/bufferSyncSupport.ts index b814de5f469..cad4ab73d1d 100644 --- a/extensions/typescript/src/features/bufferSyncSupport.ts +++ b/extensions/typescript/src/features/bufferSyncSupport.ts @@ -4,15 +4,19 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; +import * as cp from 'child_process'; import * as path from 'path'; import * as fs from 'fs'; -import { workspace, TextDocument, TextDocumentChangeEvent, TextDocumentContentChangeEvent, Disposable } from 'vscode'; +import { workspace, window, TextDocument, TextDocumentChangeEvent, TextDocumentContentChangeEvent, Disposable, MessageItem } from 'vscode'; import * as Proto from '../protocol'; import { ITypescriptServiceClient } from '../typescriptService'; import { Delayer } from '../utils/async'; import LinkedMap from './linkedMap'; +import * as nls from 'vscode-nls'; +let localize = nls.loadMessageBundle(); + interface IDiagnosticRequestor { requestDiagnostic(filepath: string): void; } @@ -96,6 +100,7 @@ export interface Diagnostics { delete(file: string): void; } +const checkTscVersionSettingKey = 'check.tscVersion'; export default class BufferSyncSupport { private client: ITypescriptServiceClient; @@ -112,6 +117,7 @@ export default class BufferSyncSupport { private pendingDiagnostics: { [key: string]: number; }; private diagnosticDelayer: Delayer; private emitQueue: LinkedMap; + private checkGlobalTSCVersion: boolean; constructor(client: ITypescriptServiceClient, modeIds: string[], diagnostics: Diagnostics, extensions: Map, validate: boolean = true) { this.client = client; @@ -128,6 +134,9 @@ export default class BufferSyncSupport { this.syncedBuffers = Object.create(null); this.emitQueue = new LinkedMap(); + + const tsConfig = workspace.getConfiguration('typescript'); + this.checkGlobalTSCVersion = client.checkGlobalTSCVersion && this.modeIds['typescript'] === true && tsConfig.get(checkTscVersionSettingKey, true); } public listen(): void { @@ -178,6 +187,7 @@ export default class BufferSyncSupport { this.syncedBuffers[filepath] = syncedBuffer; syncedBuffer.open(); this.requestDiagnostic(filepath); + this.checkTSCVersion(); } private onDidCloseTextDocument(document: TextDocument): void { @@ -276,4 +286,74 @@ export default class BufferSyncSupport { this.client.execute('geterr', args, false); this.pendingDiagnostics = Object.create(null); } + + private checkTSCVersion() { + if (!this.checkGlobalTSCVersion) { + return; + } + this.checkGlobalTSCVersion = false; + + interface MyMessageItem extends MessageItem { + id: number; + } + + function openUrl(url: string) { + let cmd: string; + switch (process.platform) { + case 'darwin': + cmd = 'open'; + break; + case 'win32': + cmd = 'start'; + break; + default: + cmd = 'xdg-open'; + } + return cp.exec(cmd + ' ' + url); + } + + let tscVersion: string = undefined; + try { + let out = cp.execSync('tsc --version', { encoding: 'utf8' }); + if (out) { + let matches = out.trim().match(/Version\s*(.*)$/); + if (matches && matches.length === 2) { + tscVersion = matches[1]; + } + } + } catch (error) { + } + if (tscVersion && tscVersion !== this.client.apiVersion.versionString) { + window.showInformationMessage( + localize('versionMismatch', 'Version mismatch! global tsc ({0}) != VS Code\'s language service ({1}). Inconsistent compile errors might occur', tscVersion, this.client.apiVersion.versionString), + { + title: localize('moreInformation', 'More Information'), + id: 1 + }, + { + title: localize('doNotCheckAgain', 'Don\'t Check Again'), + id: 2 + }, + { + title: localize('close', 'Close'), + id: 3, + isCloseAffordance: true + } + ).then((selected) => { + if (!selected || selected.id === 3) { + return; + } + switch (selected.id) { + case 1: + openUrl('http://go.microsoft.com/fwlink/?LinkId=826239'); + break; + case 2: + const tsConfig = workspace.getConfiguration('typescript'); + tsConfig.update(checkTscVersionSettingKey, false, true); + window.showInformationMessage(localize('updateTscCheck', 'Updated user setting \'typescript.check.tscVersion\' to false')); + break; + } + }); + } + } } \ No newline at end of file diff --git a/extensions/typescript/src/typescriptService.ts b/extensions/typescript/src/typescriptService.ts index d0ee45d2f5f..4a5442e957f 100644 --- a/extensions/typescript/src/typescriptService.ts +++ b/extensions/typescript/src/typescriptService.ts @@ -18,32 +18,36 @@ export interface ITypescriptServiceClientHost { export class API { - private version: string; + private _version: string; - constructor(version: string) { - this.version = semver.valid(version); - if (!this.version) { - this.version = '1.0.0'; + constructor(private _versionString: string) { + this._version = semver.valid(_versionString); + if (!this._version) { + this._version = '1.0.0'; } else { // Cut of any prerelease tag since we sometimes consume those // on purpose. - let index = version.indexOf('-'); + let index = _versionString.indexOf('-'); if (index >= 0) { - this.version = this.version.substr(0, index); + this._version = this._version.substr(0, index); } } } + public get versionString(): string { + return this._versionString; + } + public has1xFeatures(): boolean { - return semver.gte(this.version, '1.0.0'); + return semver.gte(this._version, '1.0.0'); } public has203Features(): boolean { - return semver.gte(this.version, '2.0.3'); + return semver.gte(this._version, '2.0.3'); } public has206Features(): boolean { - return semver.gte(this.version, '2.0.6'); + return semver.gte(this._version, '2.0.6'); } } @@ -59,6 +63,7 @@ export interface ITypescriptServiceClient { experimentalAutoBuild: boolean; apiVersion: API; + checkGlobalTSCVersion: boolean; execute(command: 'configure', args: Proto.ConfigureRequestArguments, token?: CancellationToken): Promise; execute(command: 'open', args: Proto.OpenRequestArgs, expectedResult: boolean, token?: CancellationToken): Promise; diff --git a/extensions/typescript/src/typescriptServiceClient.ts b/extensions/typescript/src/typescriptServiceClient.ts index 594fd043608..14a280ede6a 100644 --- a/extensions/typescript/src/typescriptServiceClient.ts +++ b/extensions/typescript/src/typescriptServiceClient.ts @@ -77,23 +77,6 @@ interface MyMessageItem extends MessageItem { id: MessageAction; } - -function openUrl(url: string) { - let cmd: string; - switch (process.platform) { - case 'darwin': - cmd = 'open'; - break; - case 'win32': - cmd = 'start'; - break; - default: - cmd = 'xdg-open'; - } - return cp.exec(cmd + ' ' + url); -} - - export default class TypeScriptServiceClient implements ITypescriptServiceClient { private host: ITypescriptServiceClientHost; @@ -103,6 +86,7 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient private _onReady: { promise: Promise; resolve: () => void; reject: () => void; }; private tsdk: string; + private _checkGlobalTSCVersion: boolean; private _experimentalAutoBuild: boolean; private trace: Trace; private _output: OutputChannel; @@ -148,6 +132,7 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient this.tsdk = configuration.get('typescript.tsdk', null); this._experimentalAutoBuild = false; // configuration.get('typescript.tsserver.experimentalAutoBuild', false); this._apiVersion = new API('1.0.0'); + this._checkGlobalTSCVersion = true; this.trace = this.readTrace(); workspace.onDidChangeConfiguration(() => { this.trace = this.readTrace(); @@ -182,6 +167,10 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient return this._experimentalAutoBuild; } + public get checkGlobalTSCVersion(): boolean { + return this._checkGlobalTSCVersion; + } + public get apiVersion(): API { return this._apiVersion; } @@ -280,11 +269,10 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient private startService(resendModels: boolean = false): void { let modulePath = path.join(__dirname, '..', 'node_modules', 'typescript', 'lib', 'tsserver.js'); - let checkGlobalVersion = true; let showVersionStatusItem = false; if (this.tsdk) { - checkGlobalVersion = false; + this._checkGlobalTSCVersion = false; if ((path).isAbsolute(this.tsdk)) { modulePath = path.join(this.tsdk, 'tsserver.js'); } else if (workspace.rootPath) { @@ -306,7 +294,7 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient let localVersion = this.getTypeScriptVersion(localModulePath); let shippedVersion = this.getTypeScriptVersion(modulePath); if (localVersion && localVersion !== shippedVersion) { - checkGlobalVersion = false; + this._checkGlobalTSCVersion = false; versionCheckPromise = window.showInformationMessage( localize( 'localTSFound', @@ -385,6 +373,8 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient VersionStatus.enable(!!this.tsdk || showVersionStatusItem); VersionStatus.setInfo(label, tooltip); + // This is backwards compatibility code to move the setting from the local + // store into the workspace setting file. const doGlobalVersionCheckKey: string = 'doGlobalVersionCheck'; const globalStateValue = this.globalState.get(doGlobalVersionCheckKey, true); const checkTscVersion = 'check.tscVersion'; @@ -392,51 +382,6 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient tsConfig.update(checkTscVersion, false, true); this.globalState.update(doGlobalVersionCheckKey, true); } - if (checkGlobalVersion && tsConfig.get(checkTscVersion)) { - let tscVersion: string = undefined; - try { - let out = cp.execSync('tsc --version', { encoding: 'utf8' }); - if (out) { - let matches = out.trim().match(/Version\s*(.*)$/); - if (matches && matches.length === 2) { - tscVersion = matches[1]; - } - } - } catch (error) { - } - if (tscVersion && tscVersion !== version) { - window.showInformationMessage( - localize('versionMismatch', 'Version mismatch! global tsc ({0}) != VS Code\'s language service ({1}). Inconsistent compile errors might occur', tscVersion, version), - { - title: localize('moreInformation', 'More Information'), - id: 1 - }, - { - title: localize('doNotCheckAgain', 'Don\'t Check Again'), - id: 2 - }, - { - title: localize('close', 'Close'), - id: 3, - isCloseAffordance: true - } - ).then((selected) => { - if (!selected || selected.id === 3) { - return; - } - switch (selected.id) { - case 1: - openUrl('http://go.microsoft.com/fwlink/?LinkId=826239'); - break; - case 2: - tsConfig.update(checkTscVersion, false, true); - window.showInformationMessage(localize('updateTscCheck', 'Updated user setting \'typescript.check.tscVersion\' to false')); - this.globalState.update(doGlobalVersionCheckKey, false); - break; - } - }); - } - } try { let options: electron.IForkOptions = { From 2db37ea17aa75528b89d2888b05cc7f397df6ddf Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 27 Oct 2016 12:04:45 +0200 Subject: [PATCH 143/242] Wrong highlighting for angle bracket syntax in embedded language. Fixes #14551 --- .../colorize-results/test_handlebars.json | 680 ++++----- .../test/colorize-results/test_hbs.json | 530 +++---- .../test/colorize-results/12750_html.json | 80 +- .../test/colorize-results/13448_html.json | 120 +- .../html/test/colorize-results/test_html.json | 1020 +++++++------- .../jade/test/colorize-results/test_jade.json | 360 ++--- .../test/colorize-results/test_jsx.json | 412 +++--- .../test/colorize-results/test_md.json | 380 ++--- .../php/test/colorize-results/test_php.json | 160 +-- .../test/colorize-results/test_cshtml.json | 1230 ++++++++--------- .../theme-defaults/themes/dark_plus.json | 7 + extensions/theme-defaults/themes/dark_vs.json | 4 +- .../theme-defaults/themes/hc_black.json | 3 +- .../theme-defaults/themes/light_plus.json | 7 + .../theme-defaults/themes/light_vs.json | 3 +- .../colorize-results/test-brackets_tsx.json | 136 +- .../test/colorize-results/test-7115_xml.json | 220 +-- .../xml/test/colorize-results/test_xml.json | 880 ++++++------ 18 files changed, 3124 insertions(+), 3108 deletions(-) diff --git a/extensions/handlebars/test/colorize-results/test_handlebars.json b/extensions/handlebars/test/colorize-results/test_handlebars.json index 93e5b369518..54addd702cc 100644 --- a/extensions/handlebars/test/colorize-results/test_handlebars.json +++ b/extensions/handlebars/test/colorize-results/test_handlebars.json @@ -3,11 +3,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -25,11 +25,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -58,11 +58,11 @@ "c": "\"", "t": "any.begin.block.definition.double.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -80,22 +80,22 @@ "c": "\"", "t": "any.block.definition.double.end.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -113,11 +113,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -135,11 +135,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -179,11 +179,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -278,11 +278,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -300,11 +300,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -388,11 +388,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -454,11 +454,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -476,11 +476,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -498,11 +498,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -597,11 +597,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -685,11 +685,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -707,11 +707,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -740,11 +740,11 @@ "c": "\"", "t": "any.begin.block.definition.double.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -762,22 +762,22 @@ "c": "\"", "t": "any.block.definition.double.end.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -795,11 +795,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -839,11 +839,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -861,11 +861,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -894,11 +894,11 @@ "c": "\"", "t": "any.begin.block.definition.double.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -916,22 +916,22 @@ "c": "\"", "t": "any.block.definition.double.end.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -949,11 +949,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -971,11 +971,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1048,11 +1048,11 @@ "c": "<", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1070,11 +1070,11 @@ "c": ">", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1114,11 +1114,11 @@ "c": "", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1180,11 +1180,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1268,11 +1268,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1290,11 +1290,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1345,11 +1345,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1367,22 +1367,22 @@ "c": "=", "t": "any.attribute-with-value.block.html.id.key-value.meta.punctuation.separator.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.block.definition.double.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1400,22 +1400,22 @@ "c": "\"", "t": "any.block.definition.double.end.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1488,11 +1488,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1510,22 +1510,22 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1543,11 +1543,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1576,11 +1576,11 @@ "c": "\"", "t": "any.begin.definition.double.handlebars.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1675,22 +1675,22 @@ "c": "\"", "t": "any.definition.double.end.handlebars.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1730,11 +1730,11 @@ "c": "", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1807,11 +1807,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1829,11 +1829,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1873,11 +1873,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1928,11 +1928,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file diff --git a/extensions/handlebars/test/colorize-results/test_hbs.json b/extensions/handlebars/test/colorize-results/test_hbs.json index 308183d94f0..4cdfcf2bf2e 100644 --- a/extensions/handlebars/test/colorize-results/test_hbs.json +++ b/extensions/handlebars/test/colorize-results/test_hbs.json @@ -3,11 +3,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -25,11 +25,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -47,11 +47,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -102,11 +102,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -124,22 +124,22 @@ "c": "=", "t": "any.attribute-with-value.block.html.id.key-value.meta.punctuation.separator.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.block.definition.double.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -157,22 +157,22 @@ "c": "\"", "t": "any.block.definition.double.end.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -245,11 +245,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -267,22 +267,22 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -300,11 +300,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -333,11 +333,11 @@ "c": "\"", "t": "any.begin.definition.double.handlebars.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -432,22 +432,22 @@ "c": "\"", "t": "any.definition.double.end.handlebars.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -487,11 +487,11 @@ "c": "", "t": "any.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -564,11 +564,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -586,11 +586,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -630,11 +630,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -696,11 +696,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -718,11 +718,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -850,11 +850,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -938,11 +938,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -971,11 +971,11 @@ "c": "\"", "t": "any.begin.block.definition.double.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -993,22 +993,22 @@ "c": "\"", "t": "any.block.definition.double.end.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1103,11 +1103,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1125,11 +1125,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1213,11 +1213,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1268,11 +1268,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1323,11 +1323,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1356,11 +1356,11 @@ "c": "\"", "t": "any.begin.block.definition.double.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1378,22 +1378,22 @@ "c": "\"", "t": "any.block.definition.double.end.handlebars.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1543,11 +1543,11 @@ "c": "<", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1565,11 +1565,11 @@ "c": ">", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1587,11 +1587,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1829,11 +1829,11 @@ "c": "", "t": "any.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file diff --git a/extensions/html/test/colorize-results/12750_html.json b/extensions/html/test/colorize-results/12750_html.json index 7a6e7685770..b8cb5129507 100644 --- a/extensions/html/test/colorize-results/12750_html.json +++ b/extensions/html/test/colorize-results/12750_html.json @@ -3,11 +3,11 @@ "c": "<", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -91,11 +91,11 @@ "c": ">", "t": "definition.embedded.html.js.punctuation.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -212,11 +212,11 @@ "c": "", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -267,11 +267,11 @@ "c": ">", "t": "definition.embedded.html.js.punctuation.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -388,11 +388,11 @@ "c": "", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file diff --git a/extensions/html/test/colorize-results/13448_html.json b/extensions/html/test/colorize-results/13448_html.json index f9ff133aca1..129f6273338 100644 --- a/extensions/html/test/colorize-results/13448_html.json +++ b/extensions/html/test/colorize-results/13448_html.json @@ -3,11 +3,11 @@ "c": "<", "t": "begin.definition.html.meta.other.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -25,22 +25,22 @@ "c": ">", "t": "definition.end.html.meta.other.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "begin.definition.html.meta.other.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -58,33 +58,33 @@ "c": "/", "t": "html.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": ">", "t": "definition.end.html.meta.other.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -102,33 +102,33 @@ "c": ">", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.between-tag-pair.definition.html.meta.punctuation.scope.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "/", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -146,22 +146,22 @@ "c": ">", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "definition.end.html.meta.other.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file diff --git a/extensions/html/test/colorize-results/test_html.json b/extensions/html/test/colorize-results/test_html.json index 35649ba574f..c8c3d5b2063 100644 --- a/extensions/html/test/colorize-results/test_html.json +++ b/extensions/html/test/colorize-results/test_html.json @@ -3,11 +3,11 @@ "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -25,22 +25,22 @@ "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -58,11 +58,11 @@ "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -80,11 +80,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -102,11 +102,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -124,22 +124,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -157,22 +157,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -190,11 +190,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -212,11 +212,11 @@ "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -234,11 +234,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -278,11 +278,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -300,11 +300,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -322,22 +322,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -355,22 +355,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -388,22 +388,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -421,22 +421,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " />", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -454,11 +454,11 @@ "c": "<", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -542,11 +542,11 @@ "c": ">", "t": "css.definition.embedded.html.punctuation.source.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -773,11 +773,11 @@ "c": "", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -861,11 +861,11 @@ "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -883,11 +883,11 @@ "c": "<", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -905,11 +905,11 @@ "c": " ", "t": "any.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -927,22 +927,22 @@ "c": "=", "t": "any.attribute-with-value.html.id.key-value.meta.punctuation.separator.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.attribute-with-value.begin.definition.double.html.id.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -960,44 +960,44 @@ "c": "\"", "t": "any.attribute-with-value.definition.double.end.html.id.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.between-tag-pair.definition.html.meta.punctuation.scope.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "/", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1015,11 +1015,11 @@ "c": ">", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1092,11 +1092,11 @@ "c": "<", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1180,11 +1180,11 @@ "c": ">", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1224,11 +1224,11 @@ "c": "<", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1312,11 +1312,11 @@ "c": ">", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1356,11 +1356,11 @@ "c": "<", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1378,11 +1378,11 @@ "c": ">", "t": "definition.embedded.html.js.punctuation.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2159,11 +2159,11 @@ "c": "", "t": "definition.html.punctuation.tag", "r": { - "dark_plus": ".vs-dark .token rgb(212, 212, 212)", - "light_plus": ".vs .token rgb(0, 0, 0)", - "dark_vs": ".vs-dark .token rgb(212, 212, 212)", - "light_vs": ".vs .token rgb(0, 0, 0)", - "hc_black": ".hc-black .token rgb(255, 255, 255)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2203,11 +2203,11 @@ "c": "<", "t": "any.begin.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2225,11 +2225,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2247,22 +2247,22 @@ "c": "=", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.block.definition.double.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2280,22 +2280,22 @@ "c": "\"", "t": "any.block.definition.double.end.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2313,11 +2313,11 @@ "c": "<", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2335,11 +2335,11 @@ "c": " ", "t": "any.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2357,11 +2357,11 @@ "c": "=", "t": "any.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2379,33 +2379,33 @@ "c": ">", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.between-tag-pair.definition.html.meta.punctuation.scope.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "/", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2423,11 +2423,11 @@ "c": ">", "t": "any.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2445,11 +2445,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2467,11 +2467,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2489,22 +2489,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2522,22 +2522,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2555,11 +2555,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2577,11 +2577,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2599,44 +2599,44 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2654,11 +2654,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2698,11 +2698,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2742,11 +2742,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2764,11 +2764,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2786,22 +2786,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2819,22 +2819,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2852,11 +2852,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2874,11 +2874,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2896,44 +2896,44 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2951,11 +2951,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2995,11 +2995,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3039,11 +3039,11 @@ "c": "", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file diff --git a/extensions/jade/test/colorize-results/test_jade.json b/extensions/jade/test/colorize-results/test_jade.json index 6fa35960d86..61f9b6013ff 100644 --- a/extensions/jade/test/colorize-results/test_jade.json +++ b/extensions/jade/test/colorize-results/test_jade.json @@ -91,11 +91,11 @@ "c": "(", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -113,11 +113,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -146,22 +146,22 @@ "c": "(", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "100", "t": "attribute_value.constant.decimal.js.meta.numeric.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.numeric rgb(181, 206, 168)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.numeric rgb(9, 136, 90)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.constant.numeric rgb(181, 206, 168)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.constant.numeric rgb(9, 136, 90)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.constant.numeric rgb(181, 206, 168)" } }, { @@ -179,22 +179,22 @@ "c": "2", "t": "attribute_value.constant.decimal.js.meta.numeric.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.numeric rgb(181, 206, 168)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.numeric rgb(9, 136, 90)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.constant.numeric rgb(181, 206, 168)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.constant.numeric rgb(9, 136, 90)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.constant.numeric rgb(181, 206, 168)" } }, { "c": ")", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -223,11 +223,11 @@ "c": ")", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -388,11 +388,11 @@ "c": "(", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -410,11 +410,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -443,22 +443,22 @@ "c": "(", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "100", "t": "attribute_value.constant.decimal.js.meta.numeric.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.numeric rgb(181, 206, 168)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.numeric rgb(9, 136, 90)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.constant.numeric rgb(181, 206, 168)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.constant.numeric rgb(9, 136, 90)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.constant.numeric rgb(181, 206, 168)" } }, { @@ -476,22 +476,22 @@ "c": "2", "t": "attribute_value.constant.decimal.js.meta.numeric.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.numeric rgb(181, 206, 168)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.numeric rgb(9, 136, 90)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.constant.numeric rgb(181, 206, 168)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.constant.numeric rgb(9, 136, 90)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.constant.numeric rgb(181, 206, 168)" } }, { "c": ")", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -520,11 +520,11 @@ "c": ")", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1070,11 +1070,11 @@ "c": "(", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1092,11 +1092,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1114,11 +1114,11 @@ "c": ", ", "t": "meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1136,11 +1136,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1158,11 +1158,11 @@ "c": ", ", "t": "meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1180,11 +1180,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1202,11 +1202,11 @@ "c": ")", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1235,11 +1235,11 @@ "c": "(", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1257,11 +1257,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1279,11 +1279,11 @@ "c": ", ", "t": "meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1301,11 +1301,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1323,11 +1323,11 @@ "c": ")", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1356,11 +1356,11 @@ "c": "(", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1378,11 +1378,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1400,11 +1400,11 @@ "c": ", ", "t": "meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1422,11 +1422,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1444,11 +1444,11 @@ "c": ")", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1477,11 +1477,11 @@ "c": "(", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1499,11 +1499,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1521,11 +1521,11 @@ "c": ", ", "t": "meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1543,11 +1543,11 @@ "c": "=", "t": "attribute_value.meta.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1565,11 +1565,11 @@ "c": ")", "t": "attribute.constant.jade.meta.name.other.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { diff --git a/extensions/javascript/test/colorize-results/test_jsx.json b/extensions/javascript/test/colorize-results/test_jsx.json index 017c86db1ef..18aad52b40c 100644 --- a/extensions/javascript/test/colorize-results/test_jsx.json +++ b/extensions/javascript/test/colorize-results/test_jsx.json @@ -1576,19 +1576,19 @@ "c": "<", "t": "begin.block.definition.expr.function.js.member.meta.object.object-literal.punctuation.tag.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "div", "t": "block.entity.expr.function.js.member.meta.name.object.object-literal.tag.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function rgb(220, 220, 170)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function rgb(121, 94, 38)", + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function.tag rgb(86, 156, 214)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function.tag rgb(128, 0, 0)", "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.tag rgb(86, 156, 214)", "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.entity.name.tag rgb(128, 0, 0)", "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.name.tag rgb(86, 156, 214)" @@ -1598,41 +1598,41 @@ "c": ">", "t": "block.definition.end.expr.function.js.member.meta.object.object-literal.punctuation.tag.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "<", "t": "begin.block.children.definition.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "h1", "t": "block.children.entity.expr.function.js.jsx.member.meta.name.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function rgb(220, 220, 170)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function rgb(121, 94, 38)", + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function.tag rgb(86, 156, 214)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function.tag rgb(128, 0, 0)", "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.tag rgb(86, 156, 214)", "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.entity.name.tag rgb(128, 0, 0)", "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.name.tag rgb(86, 156, 214)" @@ -1642,85 +1642,85 @@ "c": ">", "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "Hello ", "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "{", "t": "begin.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.section.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "message", "t": "block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.other.readwrite.tag.tsx.var.variable.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "}", "t": "block.children.embedded.end.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.section.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "!", "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "", "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "<", "t": "begin.block.children.definition.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "a", "t": "block.children.entity.expr.function.js.jsx.member.meta.name.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function rgb(220, 220, 170)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function rgb(121, 94, 38)", + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function.tag rgb(86, 156, 214)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function.tag rgb(128, 0, 0)", "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.tag rgb(86, 156, 214)", "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.entity.name.tag rgb(128, 0, 0)", "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.name.tag rgb(86, 156, 214)" @@ -1774,11 +1774,11 @@ "c": " ", "t": "attribute-name.block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1807,33 +1807,33 @@ "c": "\"", "t": "begin.block.children.definition.double.expr.function.js.jsx.jsxAttributeValue.member.meta.object.object-literal.punctuation.quoted.string.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "\"", "t": "block.children.definition.double.end.expr.function.js.jsx.jsxAttributeValue.member.meta.object.object-literal.punctuation.quoted.string.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "attribute-name.block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1862,11 +1862,11 @@ "c": "{", "t": "begin.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.section.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1884,74 +1884,74 @@ "c": ".", "t": "accessor.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "toggle", "t": "block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.other.property.tag.tsx.var.variable.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "}", "t": "block.children.embedded.end.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.section.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": ">", "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "Toggle", "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "", "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "", "t": "block.definition.end.expr.function.js.member.meta.object.object-literal.punctuation.tag.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2148,11 +2148,11 @@ "c": "<", "t": "begin.definition.js.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2170,11 +2170,11 @@ "c": " ", "t": "attribute-name.js.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2203,11 +2203,11 @@ "c": "\"", "t": "begin.definition.double.js.jsxAttributeValue.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2215,9 +2215,9 @@ "t": "double.js.jsxAttributeValue.meta.quoted.string.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)", "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)", "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" } }, @@ -2225,22 +2225,22 @@ "c": "\"", "t": "definition.double.end.js.jsxAttributeValue.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "attribute-name.js.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2269,11 +2269,11 @@ "c": "\"", "t": "begin.definition.double.js.jsxAttributeValue.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2281,9 +2281,9 @@ "t": "double.js.jsxAttributeValue.meta.quoted.string.tag", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)", "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string rgb(163, 21, 21)", "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" } }, @@ -2291,33 +2291,33 @@ "c": "\"", "t": "definition.double.end.js.jsxAttributeValue.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "js.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "/>", "t": "definition.end.js.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.js rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { diff --git a/extensions/markdown/test/colorize-results/test_md.json b/extensions/markdown/test/colorize-results/test_md.json index 6f3a2ead6d6..29ca78c3823 100644 --- a/extensions/markdown/test/colorize-results/test_md.json +++ b/extensions/markdown/test/colorize-results/test_md.json @@ -355,11 +355,11 @@ "c": "<", "t": "any.begin.block.definition.html.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -377,11 +377,11 @@ "c": " ", "t": "any.block.html.markdown.meta.paragraph.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -399,22 +399,22 @@ "c": "=", "t": "any.block.html.markdown.meta.paragraph.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.block.definition.double.html.markdown.meta.paragraph.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -432,22 +432,22 @@ "c": "\"", "t": "any.block.definition.double.end.html.markdown.meta.paragraph.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "any.block.html.markdown.meta.paragraph.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -465,22 +465,22 @@ "c": "=", "t": "any.block.html.markdown.meta.paragraph.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.block.definition.double.html.markdown.meta.paragraph.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -498,22 +498,22 @@ "c": "\"", "t": "any.block.definition.double.end.html.markdown.meta.paragraph.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.end.html.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -531,11 +531,11 @@ "c": "<", "t": "any.begin.block.definition.html.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -553,11 +553,11 @@ "c": ">", "t": "any.block.definition.end.html.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -586,11 +586,11 @@ "c": "", "t": "any.block.definition.end.html.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -630,11 +630,11 @@ "c": "<", "t": "any.begin.definition.html.inline.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -652,11 +652,11 @@ "c": " ", "t": "any.html.inline.markdown.meta.paragraph.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -674,22 +674,22 @@ "c": "=", "t": "any.html.inline.markdown.meta.paragraph.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "'", "t": "any.begin.definition.html.inline.markdown.meta.paragraph.punctuation.quoted.single.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -707,22 +707,22 @@ "c": "'", "t": "any.definition.end.html.inline.markdown.meta.paragraph.punctuation.quoted.single.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -751,11 +751,11 @@ "c": "", "t": "any.definition.end.html.inline.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -872,11 +872,11 @@ "c": "<", "t": "any.begin.definition.html.inline.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -894,11 +894,11 @@ "c": " ", "t": "any.html.inline.markdown.meta.paragraph.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -916,22 +916,22 @@ "c": "=", "t": "any.html.inline.markdown.meta.paragraph.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.markdown.meta.paragraph.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -949,22 +949,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.markdown.meta.paragraph.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -982,11 +982,11 @@ "c": "", "t": "any.definition.end.html.inline.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1037,11 +1037,11 @@ "c": "<", "t": "definition.html.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1059,11 +1059,11 @@ "c": ">", "t": "css.definition.embedded.html.markdown.meta.paragraph.punctuation.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1224,11 +1224,11 @@ "c": "", "t": "definition.html.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.block.definition.end.html.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2610,11 +2610,11 @@ "c": "<", "t": "any.begin.definition.html.inline.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2632,11 +2632,11 @@ "c": ">", "t": "any.definition.end.html.inline.markdown.meta.paragraph.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { diff --git a/extensions/php/test/colorize-results/test_php.json b/extensions/php/test/colorize-results/test_php.json index 476642d7b6e..5829a695717 100644 --- a/extensions/php/test/colorize-results/test_php.json +++ b/extensions/php/test/colorize-results/test_php.json @@ -3,11 +3,11 @@ "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -25,22 +25,22 @@ "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -58,11 +58,11 @@ "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -80,11 +80,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -102,11 +102,11 @@ "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -124,11 +124,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -212,11 +212,11 @@ "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3259,11 +3259,11 @@ "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file diff --git a/extensions/razor/test/colorize-results/test_cshtml.json b/extensions/razor/test/colorize-results/test_cshtml.json index 3e1e03e2012..7a5a1c44546 100644 --- a/extensions/razor/test/colorize-results/test_cshtml.json +++ b/extensions/razor/test/colorize-results/test_cshtml.json @@ -982,11 +982,11 @@ "c": "<", "t": "begin.cshtml.definition.embedded.html.meta.other.punctuation.section.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1004,22 +1004,22 @@ "c": ">", "t": "cshtml.definition.embedded.end.html.meta.other.punctuation.section.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "begin.cshtml.definition.embedded.html.meta.other.punctuation.section.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1037,11 +1037,11 @@ "c": ">", "t": "cshtml.definition.embedded.end.html.meta.other.punctuation.section.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1114,11 +1114,11 @@ "c": "", "t": "cshtml.definition.embedded.end.html.meta.other.punctuation.section.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "cshtml.definition.embedded.end.html.meta.other.punctuation.section.source.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1213,44 +1213,44 @@ "c": "", "t": "definition.html.meta.punctuation.sgml.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1268,11 +1268,11 @@ "c": " ", "t": "any.html.meta.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1290,22 +1290,22 @@ "c": "=", "t": "any.html.meta.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.meta.punctuation.quoted.string.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1323,22 +1323,22 @@ "c": "\"", "t": "any.definition.double.end.html.meta.punctuation.quoted.string.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1356,11 +1356,11 @@ "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1378,11 +1378,11 @@ "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1400,11 +1400,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1422,11 +1422,11 @@ "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1444,11 +1444,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1488,11 +1488,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1510,11 +1510,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1532,22 +1532,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1565,22 +1565,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " />", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1598,11 +1598,11 @@ "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1653,11 +1653,11 @@ "c": ">", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1675,11 +1675,11 @@ "c": "<", "t": "any.begin.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1697,11 +1697,11 @@ "c": ">", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1719,11 +1719,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1741,11 +1741,11 @@ "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1763,11 +1763,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1807,11 +1807,11 @@ "c": "", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1851,11 +1851,11 @@ "c": "<", "t": "any.begin.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1873,11 +1873,11 @@ "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1895,44 +1895,44 @@ "c": "=", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.block.definition.double.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "\"", "t": "any.block.definition.double.end.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1950,22 +1950,22 @@ "c": "=", "t": "any.block.html.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.block.definition.double.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1983,22 +1983,22 @@ "c": "\"", "t": "any.block.definition.double.end.html.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2016,11 +2016,11 @@ "c": "<", "t": "any.begin.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2038,22 +2038,22 @@ "c": ">", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2071,11 +2071,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2093,22 +2093,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2126,22 +2126,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2159,11 +2159,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2203,11 +2203,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2225,11 +2225,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2247,22 +2247,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2280,22 +2280,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2313,22 +2313,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2346,22 +2346,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " />", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2379,11 +2379,11 @@ "c": "", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2423,11 +2423,11 @@ "c": "<", "t": "any.begin.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2445,22 +2445,22 @@ "c": ">", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2478,11 +2478,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2500,22 +2500,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2533,22 +2533,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2566,11 +2566,11 @@ "c": "", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2610,11 +2610,11 @@ "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2632,11 +2632,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2654,22 +2654,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2687,22 +2687,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2720,22 +2720,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2753,22 +2753,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " />", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2786,11 +2786,11 @@ "c": "", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2830,11 +2830,11 @@ "c": "<", "t": "any.begin.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2852,22 +2852,22 @@ "c": ">", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "any.begin.definition.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2885,11 +2885,11 @@ "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2907,22 +2907,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -2940,22 +2940,22 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -2973,22 +2973,22 @@ "c": "=", "t": "any.html.inline.meta.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "any.begin.definition.double.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3006,33 +3006,33 @@ "c": "\"", "t": "any.definition.double.end.html.inline.meta.punctuation.quoted.string.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.html rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " />", "t": "any.definition.end.html.inline.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3072,11 +3072,11 @@ "c": "", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3171,11 +3171,11 @@ "c": "<", "t": "any.begin.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3193,11 +3193,11 @@ "c": ">", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3215,11 +3215,11 @@ "c": "", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3259,11 +3259,11 @@ "c": "<", "t": "any.begin.block.definition.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3281,11 +3281,11 @@ "c": ">", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3303,11 +3303,11 @@ "c": "", "t": "any.block.definition.end.html.meta.punctuation.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -3380,11 +3380,11 @@ "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "any.definition.html.meta.punctuation.structure.tag", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file diff --git a/extensions/theme-defaults/themes/dark_plus.json b/extensions/theme-defaults/themes/dark_plus.json index 2a901c8e28c..e2505fd98ea 100644 --- a/extensions/theme-defaults/themes/dark_plus.json +++ b/extensions/theme-defaults/themes/dark_plus.json @@ -77,6 +77,13 @@ "settings": { "foreground": "#CE9178" } + }, + { + "name": "JSX Tag names, workaround for flattening match with function", + "scope": "entity.name.function.tag", + "settings": { + "foreground": "#569cd6" + } } ] } \ No newline at end of file diff --git a/extensions/theme-defaults/themes/dark_vs.json b/extensions/theme-defaults/themes/dark_vs.json index 8fe36183fdd..6a5191fe50e 100644 --- a/extensions/theme-defaults/themes/dark_vs.json +++ b/extensions/theme-defaults/themes/dark_vs.json @@ -149,8 +149,8 @@ } }, { - "name": "brackets of XML tags", - "scope": ["meta.tag", "punctuation.tag.js", "punctuation.tag.tsx"], + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", "settings": { "foreground": "#808080" } diff --git a/extensions/theme-defaults/themes/hc_black.json b/extensions/theme-defaults/themes/hc_black.json index 972ae3130a1..b9504b9ea2f 100644 --- a/extensions/theme-defaults/themes/hc_black.json +++ b/extensions/theme-defaults/themes/hc_black.json @@ -129,7 +129,8 @@ } }, { - "scope": "meta.tag", + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", "settings": { "foreground": "#808080" } diff --git a/extensions/theme-defaults/themes/light_plus.json b/extensions/theme-defaults/themes/light_plus.json index b5807cffd65..89c1d8d5e50 100644 --- a/extensions/theme-defaults/themes/light_plus.json +++ b/extensions/theme-defaults/themes/light_plus.json @@ -77,6 +77,13 @@ "settings": { "foreground": "#0451a5" } + }, + { + "name": "JSX Tag names, workaround for flattening match with function", + "scope": "entity.name.function.tag", + "settings": { + "foreground": "#800000" + } } ] } \ No newline at end of file diff --git a/extensions/theme-defaults/themes/light_vs.json b/extensions/theme-defaults/themes/light_vs.json index 788155997a7..e8586e09f13 100644 --- a/extensions/theme-defaults/themes/light_vs.json +++ b/extensions/theme-defaults/themes/light_vs.json @@ -146,7 +146,8 @@ } }, { - "scope": "meta.tag", + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", "settings": { "foreground": "#800000" } diff --git a/extensions/typescript/test/colorize-results/test-brackets_tsx.json b/extensions/typescript/test/colorize-results/test-brackets_tsx.json index 4ad34b9b7c0..a05b2d7f050 100644 --- a/extensions/typescript/test/colorize-results/test-brackets_tsx.json +++ b/extensions/typescript/test/colorize-results/test-brackets_tsx.json @@ -80,11 +80,11 @@ "c": "<", "t": "begin.definition.expr.meta.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -102,77 +102,77 @@ "c": ">", "t": "definition.end.expr.meta.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "(); // Highlight ok here", "t": "children.expr.jsx.meta.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "interface egGenericsInArray ", "t": "children.expr.jsx.meta.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "{", "t": "begin.children.embedded.expr.expression.jsx.meta.punctuation.section.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": " ", "t": "children.embedded.expr.expression.jsx.meta.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "a", "t": "children.embedded.expr.expression.jsx.meta.other.readwrite.tag.tsx.var.variable.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": ": ", "t": "children.embedded.expr.expression.jsx.meta.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -181,20 +181,20 @@ "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.support.class rgb(78, 201, 176)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.support.class rgb(38, 127, 153)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "<", "t": "begin.children.definition.embedded.expr.expression.jsx.meta.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -212,44 +212,44 @@ "c": ">", "t": "children.definition.embedded.end.expr.expression.jsx.meta.punctuation.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.tag.tsx rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ";", "t": "children.embedded.expr.expression.jsx.meta.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "}", "t": "children.embedded.expr.expression.jsx.meta.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "let s = \"nothing should fail here...\";", "t": "children.embedded.expr.expression.jsx.meta.tag.tsx.var.without-attributes", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } } ] \ No newline at end of file diff --git a/extensions/xml/test/colorize-results/test-7115_xml.json b/extensions/xml/test/colorize-results/test-7115_xml.json index 5efa5999834..e9ffa6535b7 100644 --- a/extensions/xml/test/colorize-results/test-7115_xml.json +++ b/extensions/xml/test/colorize-results/test-7115_xml.json @@ -3,11 +3,11 @@ "c": "", "t": "definition.meta.preprocessor.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.preprocessor rgb(86, 156, 214)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.preprocessor rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.preprocessor rgb(86, 156, 214)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.preprocessor rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.preprocessor rgb(86, 156, 214)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -234,11 +234,11 @@ "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -256,11 +256,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -278,11 +278,11 @@ "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -300,22 +300,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -333,22 +333,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -366,22 +366,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -399,22 +399,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -432,11 +432,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -454,11 +454,11 @@ "c": "/>", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -476,11 +476,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -498,11 +498,11 @@ "c": "/>", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -520,11 +520,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file diff --git a/extensions/xml/test/colorize-results/test_xml.json b/extensions/xml/test/colorize-results/test_xml.json index 0938fe5c0a9..754a56b7588 100644 --- a/extensions/xml/test/colorize-results/test_xml.json +++ b/extensions/xml/test/colorize-results/test_xml.json @@ -3,11 +3,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -25,11 +25,11 @@ "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -47,11 +47,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -69,11 +69,11 @@ "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -91,22 +91,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -124,22 +124,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -157,11 +157,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -179,11 +179,11 @@ "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -201,22 +201,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -234,22 +234,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "/>", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -267,11 +267,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -289,11 +289,11 @@ "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -311,22 +311,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -344,22 +344,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -377,22 +377,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -410,22 +410,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -443,11 +443,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -465,11 +465,11 @@ "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -487,11 +487,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -509,11 +509,11 @@ "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -531,22 +531,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -564,22 +564,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -597,22 +597,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -630,22 +630,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "/>", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -663,11 +663,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -707,11 +707,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -751,11 +751,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -839,11 +839,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -861,11 +861,11 @@ "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -883,22 +883,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -916,22 +916,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -949,11 +949,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -993,11 +993,11 @@ "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1015,11 +1015,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1081,11 +1081,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1125,11 +1125,11 @@ "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1147,11 +1147,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1213,11 +1213,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1235,11 +1235,11 @@ "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1257,11 +1257,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1301,11 +1301,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1345,11 +1345,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1367,11 +1367,11 @@ "c": ">", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1389,11 +1389,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1411,11 +1411,11 @@ "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1433,22 +1433,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1466,22 +1466,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1499,22 +1499,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1532,22 +1532,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "/>", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1565,11 +1565,11 @@ "c": "<", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1587,11 +1587,11 @@ "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1609,22 +1609,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1642,22 +1642,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": " ", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { @@ -1675,22 +1675,22 @@ "c": "=", "t": "meta.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark .token rgb(212, 212, 212)", + "light_plus": ".vs .token rgb(0, 0, 0)", + "dark_vs": ".vs-dark .token rgb(212, 212, 212)", + "light_vs": ".vs .token rgb(0, 0, 0)", + "hc_black": ".hc-black .token rgb(255, 255, 255)" } }, { "c": "\"", "t": "begin.definition.double.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1708,22 +1708,22 @@ "c": "\"", "t": "definition.double.end.meta.punctuation.quoted.string.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string.tag rgb(206, 145, 120)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.xml rgb(0, 0, 255)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.string.tag rgb(206, 145, 120)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.string.xml rgb(0, 0, 255)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.string.tag rgb(206, 145, 120)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "/>", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { @@ -1741,11 +1741,11 @@ "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } }, { "c": "", "t": "definition.meta.punctuation.tag.xml", "r": { - "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.punctuation.definition.tag rgb(128, 128, 128)" } } ] \ No newline at end of file From 80cbf2e25e9666509a49f93653af284919012523 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Oct 2016 14:57:12 +0200 Subject: [PATCH 144/242] Fixes #14552: Introduce embeddedLanguages in grammars extension point and adopt it for html and php --- extensions/html/package.json | 9 +- extensions/php/package.json | 11 +- src/vs/editor/node/textMate/TMSyntax.ts | 55 ++- .../test/node/textMate/TMSyntax.test.ts | 336 ++++++++++++++++-- 4 files changed, 370 insertions(+), 41 deletions(-) diff --git a/extensions/html/package.json b/extensions/html/package.json index 299e499197d..be217706891 100644 --- a/extensions/html/package.json +++ b/extensions/html/package.json @@ -54,7 +54,14 @@ { "language": "html", "scopeName": "text.html.basic", - "path": "./syntaxes/html.json" + "path": "./syntaxes/html.json", + "embeddedLanguages": { + "text.html": "html", + "source.css": "css", + "source.js": "javascript", + "source.python": "python", + "source.smarty": "smarty" + } } ], "configuration": { diff --git a/extensions/php/package.json b/extensions/php/package.json index dd371585779..8b1c8ed17d5 100644 --- a/extensions/php/package.json +++ b/extensions/php/package.json @@ -19,7 +19,16 @@ "grammars": [{ "language": "php", "scopeName": "text.html.php", - "path": "./syntaxes/php.json" + "path": "./syntaxes/php.json", + "embeddedLanguages": { + "text.html": "html", + "source.php": "php", + "source.sql": "sql", + "text.xml": "xml", + "source.js": "javascript", + "source.json": "json", + "source.css": "css" + } }], "snippets": [{ "language": "php", diff --git a/src/vs/editor/node/textMate/TMSyntax.ts b/src/vs/editor/node/textMate/TMSyntax.ts index 3c27507a5b0..1e0ef0e988f 100644 --- a/src/vs/editor/node/textMate/TMSyntax.ts +++ b/src/vs/editor/node/textMate/TMSyntax.ts @@ -8,6 +8,7 @@ import * as nls from 'vs/nls'; import { onUnexpectedError } from 'vs/base/common/errors'; import * as paths from 'vs/base/common/paths'; import * as strings from 'vs/base/common/strings'; +import * as types from 'vs/base/common/types'; import Event, { Emitter } from 'vs/base/common/event'; import { IExtensionPoint, ExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; import { ILineTokens, ITokenizationSupport, TokenizationRegistry } from 'vs/editor/common/modes'; @@ -23,6 +24,7 @@ export interface ITMSyntaxExtensionPoint { language: string; scopeName: string; path: string; + embeddedLanguages: { [scopeName: string]: string; }; injectTo: string[]; } @@ -47,6 +49,10 @@ export const grammarsExtPoint: IExtensionPoint = Exte description: nls.localize('vscode.extension.contributes.grammars.path', 'Path of the tmLanguage file. The path is relative to the extension folder and typically starts with \'./syntaxes/\'.'), type: 'string' }, + embeddedLanguages: { + description: nls.localize('vscode.extension.contributes.grammars.embeddedLanguages', 'A map of scope name to language id if this grammar contains embedded languages.'), + type: 'object' + }, injectTo: { description: nls.localize('vscode.extension.contributes.grammars.injectTo', 'List of language scope names to which this grammar is injected to.'), type: 'array', @@ -78,8 +84,18 @@ export class TMScopeRegistry { public register(language: string, scopeName: string, filePath: string): void { this._scopeNameToFilePath[scopeName] = filePath; - if (language) { - this._scopeNameToLanguage[scopeName] = language; + } + + public registerEmbeddedLanguages(scopeToLanguageMap: { [scopeName: string]: string }): void { + var scopes = Object.keys(scopeToLanguageMap); + for (let i = 0, len = scopes.length; i < len; i++) { + let scope = scopes[i]; + let language = scopeToLanguageMap[scope]; + if (typeof language !== 'string') { + // never hurts to be too careful + continue; + } + this._scopeNameToLanguage[scope] = language; this._cachedScopesRegex = null; } } @@ -107,6 +123,9 @@ export class TMScopeRegistry { * e.g. source.html => html, source.css.embedded.html => css, punctuation.definition.tag.html => null */ public scopeToLanguage(scope: string): string { + if (!scope) { + return null; + } let regex = this._getScopesRegex(); if (!regex) { // no scopes registered @@ -180,6 +199,11 @@ export class MainProcessTextMateSyntax { collector.error(nls.localize('invalid.injectTo', "Invalid value in `contributes.{0}.injectTo`. Must be an array of language scope names. Provided value: {1}", grammarsExtPoint.name, JSON.stringify(syntax.injectTo))); return; } + if (syntax.embeddedLanguages && !types.isObject(syntax.embeddedLanguages)) { + collector.error(nls.localize('invalid.embeddedLanguages', "Invalid value in `contributes.{0}.embeddedLanguages`. Must be an object map from scope name to language. Provided value: {1}", grammarsExtPoint.name, JSON.stringify(syntax.embeddedLanguages))); + return; + } + let normalizedAbsolutePath = paths.normalize(paths.join(extensionFolderPath, syntax.path)); if (normalizedAbsolutePath.indexOf(extensionFolderPath) !== 0) { @@ -188,6 +212,10 @@ export class MainProcessTextMateSyntax { this._scopeRegistry.register(syntax.language, syntax.scopeName, normalizedAbsolutePath); + if (syntax.embeddedLanguages) { + this._scopeRegistry.registerEmbeddedLanguages(syntax.embeddedLanguages); + } + if (syntax.injectTo) { for (let injectScope of syntax.injectTo) { let injections = this._injections[injectScope]; @@ -217,13 +245,13 @@ export class MainProcessTextMateSyntax { return; } - TokenizationRegistry.register(modeId, createTokenizationSupport(this._scopeRegistry, modeId, grammar)); + TokenizationRegistry.register(modeId, createTokenizationSupport(this._scopeRegistry, scopeName, modeId, grammar)); }); } } -function createTokenizationSupport(scopeRegistry: TMScopeRegistry, modeId: string, grammar: IGrammar): ITokenizationSupport { - var tokenizer = new Tokenizer(scopeRegistry, modeId, grammar); +function createTokenizationSupport(scopeRegistry: TMScopeRegistry, topLevelScopeName: string, modeId: string, grammar: IGrammar): ITokenizationSupport { + var tokenizer = new Tokenizer(scopeRegistry, topLevelScopeName, modeId, grammar); return { getInitialState: () => new TMState(modeId, null, null), tokenize: (line, state, offsetDelta?, stopAtOffset?) => tokenizer.tokenize(line, state, offsetDelta, stopAtOffset) @@ -320,14 +348,16 @@ export class DecodeMap { private readonly tokenToTokenId: { [token: string]: number; }; private readonly tokenIdToToken: string[]; prevTokenScopes: TMScopesDecodeData[]; + public readonly topLevelScope: TMScopesDecodeData; - constructor(scopeRegistry: TMScopeRegistry) { + constructor(scopeRegistry: TMScopeRegistry, topLevelScopeName: string) { this.lastAssignedTokenId = 0; this.scopeRegistry = scopeRegistry; this.scopeToTokenIds = Object.create(null); this.tokenToTokenId = Object.create(null); this.tokenIdToToken = [null]; this.prevTokenScopes = []; + this.topLevelScope = new TMScopesDecodeData(null, new TMScopeDecodeData(topLevelScopeName, this.scopeRegistry.scopeToLanguage(topLevelScopeName), [])); } private _getTokenId(token: string): number { @@ -390,10 +420,10 @@ class Tokenizer { private _modeId: string; private _decodeMap: DecodeMap; - constructor(scopeRegistry: TMScopeRegistry, modeId: string, grammar: IGrammar) { + constructor(scopeRegistry: TMScopeRegistry, topLevelScopeName: string, modeId: string, grammar: IGrammar) { this._modeId = modeId; this._grammar = grammar; - this._decodeMap = new DecodeMap(scopeRegistry); + this._decodeMap = new DecodeMap(scopeRegistry, topLevelScopeName); } public tokenize(line: string, state: TMState, offsetDelta: number = 0, stopAtOffset?: number): ILineTokens { @@ -460,16 +490,11 @@ export function decodeTextMateTokens(line: string, offsetDelta: number, decodeMa } export function decodeTextMateToken(decodeMap: DecodeMap, scopes: string[]): TMScopesDecodeData { - if (scopes.length <= 1) { - // fast case - return null; - } - const prevTokenScopes = decodeMap.prevTokenScopes; const prevTokenScopesLength = prevTokenScopes.length; - let resultScopes: TMScopesDecodeData[] = [null]; - let lastResultScope: TMScopesDecodeData = null; + let resultScopes: TMScopesDecodeData[] = [decodeMap.topLevelScope]; + let lastResultScope: TMScopesDecodeData = decodeMap.topLevelScope; let sameAsPrev = true; for (let level = 1/* deliberately skip scope 0*/, scopesLength = scopes.length; level < scopesLength; level++) { diff --git a/src/vs/editor/test/node/textMate/TMSyntax.test.ts b/src/vs/editor/test/node/textMate/TMSyntax.test.ts index dd51ca2bda3..c6a0044f465 100644 --- a/src/vs/editor/test/node/textMate/TMSyntax.test.ts +++ b/src/vs/editor/test/node/textMate/TMSyntax.test.ts @@ -37,13 +37,15 @@ suite('TextMate.TMScopeRegistry', () => { assert.equal(registry.scopeToLanguage('source.html'), null); - registry.register('html', 'source.html', null); - registry.register('c', 'source.c', null); - registry.register('css', 'source.css', null); - registry.register('javascript', 'source.js', null); - registry.register('python', 'source.python', null); - registry.register('smarty', 'source.smarty', null); - registry.register(null, 'source.baz', null); + registry.registerEmbeddedLanguages({ + 'source.html': 'html', + 'source.c': 'c', + 'source.css': 'css', + 'source.js': 'javascript', + 'source.python': 'python', + 'source.smarty': 'smarty', + 'source.baz': null, + }); // exact matches assert.equal(registry.scopeToLanguage('source.html'), 'html'); @@ -76,15 +78,17 @@ suite('TextMate.decodeTextMateTokens', () => { test('embedded modes', () => { let registry = new TMScopeRegistry(); - registry.register('html', 'source.html', null); - registry.register('c', 'source.c', null); - registry.register('css', 'source.css', null); - registry.register('javascript', 'source.js', null); - registry.register('python', 'source.python', null); - registry.register('smarty', 'source.smarty', null); - registry.register(null, 'source.baz', null); + registry.registerEmbeddedLanguages({ + 'source.html': 'html', + 'source.c': 'c', + 'source.css': 'css', + 'source.js': 'javascript', + 'source.python': 'python', + 'source.smarty': 'smarty', + 'source.baz': null, + }); - let decodeMap = new DecodeMap(registry); + let decodeMap = new DecodeMap(registry, 'source.html'); let actual = decodeTextMateTokens( 'texttext', 0, @@ -113,6 +117,290 @@ suite('TextMate.decodeTextMateTokens', () => { ]); }); + test('php and embedded', () => { + var tests = [ + { + line: '
', + tmTokens: [ + { startIndex: 0, endIndex: 1, scopes: ['text.html.php', 'meta.tag.any.html', 'punctuation.definition.tag.html'] }, + { startIndex: 1, endIndex: 4, scopes: ['text.html.php', 'meta.tag.any.html', 'entity.name.tag.html'] }, + { startIndex: 4, endIndex: 5, scopes: ['text.html.php', 'meta.tag.any.html', 'punctuation.definition.tag.html'] }, + { startIndex: 5, endIndex: 6, scopes: ['text.html.php', 'meta.tag.any.html', 'punctuation.definition.tag.html', 'meta.scope.between-tag-pair.html'] }, + { startIndex: 6, endIndex: 7, scopes: ['text.html.php', 'meta.tag.any.html', 'punctuation.definition.tag.html'] }, + { startIndex: 7, endIndex: 10, scopes: ['text.html.php', 'meta.tag.any.html', 'entity.name.tag.html'] }, + { startIndex: 10, endIndex: 11, scopes: ['text.html.php', 'meta.tag.any.html', 'punctuation.definition.tag.html'] } + ], + tokens: [ + { startIndex: 0, type: 'meta.tag.any.html.punctuation.definition' }, + { startIndex: 1, type: 'meta.tag.any.html.entity.name' }, + { startIndex: 4, type: 'meta.tag.any.html.punctuation.definition' }, + { startIndex: 5, type: 'meta.tag.any.html.punctuation.definition.scope.between-tag-pair' }, + { startIndex: 6, type: 'meta.tag.any.html.punctuation.definition' }, + { startIndex: 7, type: 'meta.tag.any.html.entity.name' }, + { startIndex: 10, type: 'meta.tag.any.html.punctuation.definition' } + ], + modeTransitions: [ + { startIndex: 0, modeId: 'html' } + ] + }, { + line: '', + tmTokens: [ + { startIndex: 0, endIndex: 1, scopes: ['text.html.php', 'punctuation.definition.tag.html'] }, + { startIndex: 1, endIndex: 7, scopes: ['text.html.php', 'entity.name.tag.script.html'] }, + { startIndex: 7, endIndex: 8, scopes: ['text.html.php', 'source.js.embedded.html', 'punctuation.definition.tag.html'] }, + { startIndex: 8, endIndex: 11, scopes: ['text.html.php', 'source.js.embedded.html', 'meta.var.expr.js', 'storage.type.js'] }, + { startIndex: 11, endIndex: 12, scopes: ['text.html.php', 'source.js.embedded.html', 'meta.var.expr.js'] }, + { startIndex: 12, endIndex: 13, scopes: ['text.html.php', 'source.js.embedded.html', 'meta.var.expr.js', 'meta.var-single-variable.expr.js', 'variable.other.readwrite.js'] }, + { startIndex: 13, endIndex: 14, scopes: ['text.html.php', 'source.js.embedded.html', 'meta.var.expr.js', 'meta.var-single-variable.expr.js'] }, + { startIndex: 14, endIndex: 15, scopes: ['text.html.php', 'source.js.embedded.html', 'meta.var.expr.js', 'keyword.operator.assignment.js'] }, + { startIndex: 15, endIndex: 16, scopes: ['text.html.php', 'source.js.embedded.html', 'meta.var.expr.js'] }, + { startIndex: 16, endIndex: 17, scopes: ['text.html.php', 'source.js.embedded.html', 'meta.var.expr.js', 'constant.numeric.decimal.js'] }, + { startIndex: 17, endIndex: 18, scopes: ['text.html.php', 'source.js.embedded.html', 'punctuation.terminator.statement.js'] }, + { startIndex: 18, endIndex: 20, scopes: ['text.html.php', 'source.js.embedded.html', 'punctuation.definition.tag.html'] }, + { startIndex: 20, endIndex: 26, scopes: ['text.html.php', 'source.js.embedded.html', 'entity.name.tag.script.html'] }, + { startIndex: 26, endIndex: 27, scopes: ['text.html.php', 'punctuation.definition.tag.html'] } + ], + tokens: [ + { startIndex: 0, type: 'tag.html.punctuation.definition' }, + { startIndex: 1, type: 'tag.html.entity.name.script' }, + { startIndex: 7, type: 'tag.html.punctuation.definition.source.js.embedded' }, + { startIndex: 8, type: 'meta.html.source.js.embedded.var.expr.storage.type' }, + { startIndex: 11, type: 'meta.html.source.js.embedded.var.expr' }, + { startIndex: 12, type: 'meta.html.source.js.embedded.var.expr.var-single-variable.variable.other.readwrite' }, + { startIndex: 13, type: 'meta.html.source.js.embedded.var.expr.var-single-variable' }, + { startIndex: 14, type: 'meta.html.source.js.embedded.var.expr.keyword.operator.assignment' }, + { startIndex: 15, type: 'meta.html.source.js.embedded.var.expr' }, + { startIndex: 16, type: 'meta.html.source.js.embedded.var.expr.constant.numeric.decimal' }, + { startIndex: 17, type: 'html.punctuation.source.js.embedded.terminator.statement' }, + { startIndex: 18, type: 'tag.html.punctuation.definition.source.js.embedded' }, + { startIndex: 20, type: 'tag.html.entity.name.script.source.js.embedded' }, + { startIndex: 26, type: 'tag.html.punctuation.definition' } + ], + modeTransitions: [ + { startIndex: 0, modeId: 'html' }, + { startIndex: 7, modeId: 'javascript' }, + { startIndex: 26, modeId: 'html' } + ] + }, { + line: '', + tmTokens: [ + { startIndex: 0, endIndex: 1, scopes: ['text.html.php', 'punctuation.definition.tag.html'] }, + { startIndex: 1, endIndex: 6, scopes: ['text.html.php', 'entity.name.tag.style.html'] }, + { startIndex: 6, endIndex: 7, scopes: ['text.html.php', 'source.css.embedded.html', 'punctuation.definition.tag.html'] }, + { startIndex: 7, endIndex: 11, scopes: ['text.html.php', 'source.css.embedded.html', 'meta.selector.css', 'entity.name.tag.css'] }, + { startIndex: 11, endIndex: 12, scopes: ['text.html.php', 'source.css.embedded.html', 'meta.property-list.css', 'punctuation.section.property-list.begin.css'] }, + { startIndex: 12, endIndex: 28, scopes: ['text.html.php', 'source.css.embedded.html', 'meta.property-list.css', 'meta.property-name.css', 'support.type.property-name.css'] }, + { startIndex: 28, endIndex: 29, scopes: ['text.html.php', 'source.css.embedded.html', 'meta.property-list.css', 'meta.property-value.css', 'punctuation.separator.key-value.css'] }, + { startIndex: 29, endIndex: 32, scopes: ['text.html.php', 'source.css.embedded.html', 'meta.property-list.css', 'meta.property-value.css', 'support.constant.color.w3c-standard-color-name.css'] }, + { startIndex: 32, endIndex: 33, scopes: ['text.html.php', 'source.css.embedded.html', 'meta.property-list.css', 'meta.property-value.css', 'punctuation.terminator.rule.css'] }, + { startIndex: 33, endIndex: 34, scopes: ['text.html.php', 'source.css.embedded.html', 'meta.property-list.css', 'punctuation.section.property-list.end.css'] }, + { startIndex: 34, endIndex: 36, scopes: ['text.html.php', 'punctuation.definition.tag.html'] }, + { startIndex: 36, endIndex: 41, scopes: ['text.html.php', 'entity.name.tag.style.html'] }, + { startIndex: 41, endIndex: 42, scopes: ['text.html.php', 'punctuation.definition.tag.html'] } + ], + tokens: [ + { startIndex: 0, type: 'tag.html.punctuation.definition' }, + { startIndex: 1, type: 'tag.html.entity.name.style' }, + { startIndex: 6, type: 'tag.html.punctuation.definition.source.embedded.css' }, + { startIndex: 7, type: 'meta.tag.html.entity.name.source.embedded.css.selector' }, + { startIndex: 11, type: 'meta.html.punctuation.source.embedded.css.property-list.section.begin' }, + { startIndex: 12, type: 'meta.html.source.embedded.type.css.property-list.property-name.support' }, + { startIndex: 28, type: 'meta.html.punctuation.source.embedded.css.property-list.property-value.separator.key-value' }, + { startIndex: 29, type: 'meta.html.source.embedded.constant.css.property-list.support.property-value.color.w3c-standard-color-name' }, + { startIndex: 32, type: 'meta.html.punctuation.source.embedded.terminator.css.property-list.property-value.rule' }, + { startIndex: 33, type: 'meta.html.punctuation.source.embedded.css.property-list.section.end' }, + { startIndex: 34, type: 'tag.html.punctuation.definition' }, + { startIndex: 36, type: 'tag.html.entity.name.style' }, + { startIndex: 41, type: 'tag.html.punctuation.definition' } + ], + modeTransitions: [ + { startIndex: 0, modeId: 'html' }, + { startIndex: 6, modeId: 'css' }, + { startIndex: 34, modeId: 'html' } + ] + }, { + line: '', + tmTokens: [ + { startIndex: 0, endIndex: 1, scopes: ['text.html.php', 'meta.embedded.block.php', 'punctuation.section.embedded.metatag.end.php', 'source.php'] }, + { startIndex: 1, endIndex: 2, scopes: ['text.html.php', 'meta.embedded.block.php', 'punctuation.section.embedded.metatag.end.php'] } + ], + tokens: [ + { startIndex: 0, type: 'meta.punctuation.source.embedded.section.end.block.php.metatag' }, + { startIndex: 1, type: 'meta.punctuation.embedded.section.end.block.php.metatag' } + ], + modeTransitions: [ + { startIndex: 0, modeId: 'php'}, + { startIndex: 1, modeId: 'html' } + ] + }, { + line: '
', + tmTokens: [ + { startIndex: 0, endIndex: 1, scopes: ['text.html.php', 'meta.tag.block.any.html', 'punctuation.definition.tag.begin.html'] }, + { startIndex: 1, endIndex: 4, scopes: ['text.html.php', 'meta.tag.block.any.html', 'entity.name.tag.block.any.html'] }, + { startIndex: 4, endIndex: 5, scopes: ['text.html.php', 'meta.tag.block.any.html', 'punctuation.definition.tag.end.html'] }, + { startIndex: 5, endIndex: 8, scopes: ['text.html.php', 'meta.embedded.line.php', 'punctuation.section.embedded.begin.php'] }, + { startIndex: 8, endIndex: 9, scopes: ['text.html.php', 'meta.embedded.line.php', 'source.php', 'string.quoted.double.php', 'punctuation.definition.string.begin.php'] }, + { startIndex: 9, endIndex: 18, scopes: ['text.html.php', 'meta.embedded.line.php', 'source.php', 'string.quoted.double.php', 'meta.string-contents.quoted.double.php'] }, + { startIndex: 18, endIndex: 19, scopes: ['text.html.php', 'meta.embedded.line.php', 'source.php', 'string.quoted.double.php', 'punctuation.definition.string.end.php'] }, + { startIndex: 19, endIndex: 20, scopes: ['text.html.php', 'meta.embedded.line.php', 'punctuation.section.embedded.end.php', 'source.php'] }, + { startIndex: 20, endIndex: 21, scopes: ['text.html.php', 'meta.embedded.line.php', 'punctuation.section.embedded.end.php'] }, + { startIndex: 21, endIndex: 23, scopes: ['text.html.php', 'meta.tag.block.any.html', 'punctuation.definition.tag.begin.html'] }, + { startIndex: 23, endIndex: 26, scopes: ['text.html.php', 'meta.tag.block.any.html', 'entity.name.tag.block.any.html'] }, + { startIndex: 26, endIndex: 27, scopes: ['text.html.php', 'meta.tag.block.any.html', 'punctuation.definition.tag.end.html'] } + ], + tokens: [ + { startIndex: 0, type: 'meta.tag.any.html.punctuation.definition.begin.block' }, + { startIndex: 1, type: 'meta.tag.any.html.entity.name.block' }, + { startIndex: 4, type: 'meta.tag.any.html.punctuation.definition.end.block' }, + { startIndex: 5, type: 'meta.punctuation.embedded.section.begin.php.line' }, + { startIndex: 8, type: 'meta.punctuation.definition.source.embedded.begin.php.string.quoted.double.line' }, + { startIndex: 9, type: 'meta.source.embedded.php.string.quoted.double.line.string-contents' }, + { startIndex: 18, type: 'meta.punctuation.definition.source.embedded.end.php.string.quoted.double.line' }, + { startIndex: 19, type: 'meta.punctuation.source.embedded.section.end.php.line' }, + { startIndex: 20, type: 'meta.punctuation.embedded.section.end.php.line' }, + { startIndex: 21, type: 'meta.tag.any.html.punctuation.definition.begin.block' }, + { startIndex: 23, type: 'meta.tag.any.html.entity.name.block' }, + { startIndex: 26, type: 'meta.tag.any.html.punctuation.definition.end.block' } + ], + modeTransitions: [ + { startIndex: 0, modeId: 'html' }, + { startIndex: 8, modeId: 'php' }, + { startIndex: 20, modeId: 'html' } + ] + } + ]; + + let registry = new TMScopeRegistry(); + + registry.registerEmbeddedLanguages({ + 'text.html': 'html', + 'source.php': 'php', + 'source.sql': 'sql', + 'text.xml': 'xml', + 'source.js': 'javascript', + 'source.json': 'json', + 'source.css': 'css' + }); + + let decodeMap = new DecodeMap(registry, 'text.html.php'); + + for (let i = 0, len = tests.length; i < len; i++) { + let test = tests[i]; + let actual = decodeTextMateTokens(test.line, 0, decodeMap, test.tmTokens, new TMState('html', null, null)); + + let actualTokens = actual.tokens.map((t) => { return { startIndex: t.startIndex, type: t.type }; }); + let actualModeTransitions = actual.modeTransitions.map((t) => { return { startIndex: t.startIndex, modeId: t.modeId }; }); + + assert.deepEqual(actualTokens, test.tokens, 'test ' + test.line); + assert.deepEqual(actualModeTransitions, test.modeTransitions, 'test ' + test.line); + } + }); + test('html and embedded', () => { var tests = [ @@ -530,15 +818,15 @@ suite('TextMate.decodeTextMateTokens', () => { let registry = new TMScopeRegistry(); - registry.register('html', 'source.html', null); - registry.register('c', 'source.c', null); - registry.register('css', 'source.css', null); - registry.register('javascript', 'source.js', null); - registry.register('python', 'source.python', null); - registry.register('smarty', 'source.smarty', null); - registry.register(null, 'source.baz', null); + registry.registerEmbeddedLanguages({ + 'text.html.basic': 'html', + 'source.css': 'css', + 'source.js': 'javascript', + 'source.python': 'python', + 'source.smarty': 'smarty' + }); - let decodeMap = new DecodeMap(registry); + let decodeMap = new DecodeMap(registry, 'text.html.basic'); for (let i = 0, len = tests.length; i < len; i++) { let test = tests[i]; @@ -586,7 +874,7 @@ suite('textMate', () => { } function testDecodeTextMateToken(input: string[][], expected: string[]): void { - let decodeMap = new DecodeMap(new TMScopeRegistry()); + let decodeMap = new DecodeMap(new TMScopeRegistry(), null); for (let i = 0; i < input.length; i++) { testOneDecodeTextMateToken(decodeMap, input[i], expected[i]); From 3469ee49cf767d6a774a65bc1ef0f19fd1779e38 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Thu, 27 Oct 2016 15:19:57 +0200 Subject: [PATCH 145/242] Fixes 14391: Format Selection and Format Document don't do anything for JavaScript --- jsconfig.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jsconfig.json b/jsconfig.json index 53bb90ac3ae..cc732031011 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -15,9 +15,13 @@ "out-build", "out-vscode", "out-vscode-min", + "out-editor", + "out-editor-min", + "out-monaco-editor-core", "resources", "scripts", ".build", - "node_modules" + "node_modules", + "build/monaco/node_modules" ] } From 3c6f232d0546f32644e9fd3378ee967373655fc4 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Thu, 27 Oct 2016 15:04:14 +0200 Subject: [PATCH 146/242] revert heuristics change, more tests, #14583 --- .../contrib/suggest/common/completionModel.ts | 28 ++----- .../test/common/completionModel.test.ts | 78 ++++++++----------- 2 files changed, 41 insertions(+), 65 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index 42e79d06a9c..2c044773446 100644 --- a/src/vs/editor/contrib/suggest/common/completionModel.ts +++ b/src/vs/editor/contrib/suggest/common/completionModel.ts @@ -6,7 +6,6 @@ 'use strict'; import { isFalsyOrEmpty } from 'vs/base/common/arrays'; -import { escapeRegExpCharacters } from 'vs/base/common/strings'; import { IMatch, fuzzyContiguousFilter } from 'vs/base/common/filters'; import { ISuggestSupport } from 'vs/editor/common/modes'; import { ISuggestionItem } from './suggest'; @@ -155,7 +154,7 @@ export class CompletionModel { this._filteredItems.push(item); // compute score against word - const score = CompletionModel._scoreByHighlight(item, word); + const score = CompletionModel._scoreByHighlight(item, word, word.toLowerCase()); if (score > topScore) { topScore = score; this._topScoreIdx = this._filteredItems.length - 1; @@ -176,30 +175,19 @@ export class CompletionModel { } } - private static _scoreByHighlight(item: ICompletionItem, currentWord: string): number { + private static _scoreByHighlight(item: ICompletionItem, currentWord: string, currentWordLowerCase: string): number { const {highlights, suggestion} = item; let score = 0; if (!isFalsyOrEmpty(highlights)) { for (const {start, end} of highlights) { - // scoring logic: - // First find the highlighted portion from the label in the current - // word and second score a case-senstive match with 2pts and everything - // else with 1pt. - - // this is a case-insensitive String#indexOf + // find the highlight in the current word and + // score it based on case-match and start index const part = suggestion.label.substring(start, end); - const regexp = new RegExp(escapeRegExpCharacters(part), 'i'); - const idx = currentWord.search(regexp); + if (currentWord.indexOf(part) >= 0) { + score += (2 * part.length) / (start + 1); - // case senstive match score 2, the rest 1 - if (idx >= 0) { - for (let i = 0; i < part.length; i++) { - if (part[i] === currentWord[idx + i]) { - score += 2; - } else { - score += 1; - } - } + } else if (currentWordLowerCase.indexOf(part) >= 0) { + score += part.length / (start + 1); } } } diff --git a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts index 22f249441eb..67a7948e4fd 100644 --- a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts @@ -74,51 +74,6 @@ suite('CompletionModel', function () { assert.ok(itemsNow !== itemsThen); }); - test('top score', function () { - - assert.equal(model.topScoreIdx, 0); - - model.lineContext = { leadingLineContent: 'Foo', characterCountDelta: 0 }; - assert.equal(model.topScoreIdx, 1); - }); - - test('top score, issue #14446', function () { - - const model = new CompletionModel([ - createSuggestItem('workbench.editor.defaultSideBySideLayout', 15), - createSuggestItem('workbench.sideBar.location', 15), - ], 15, { - leadingLineContent: 'workbench.sideb', - characterCountDelta: 0 - } - ) - - assert.equal(model.topScoreIdx, 1); - assert.equal(model.items[model.topScoreIdx].suggestion.label, 'workbench.sideBar.location') - }); - - test('top score, issue #11423', function () { - - const model = new CompletionModel([ - createSuggestItem('diffEditor.renderSideBySide', 8), - createSuggestItem('editor.overviewRulerlanes', 8), - createSuggestItem('editor.renderControlCharacter', 8), - createSuggestItem('editor.renderWhitespace', 8), - ], 15, { - leadingLineContent: 'editor.r', - characterCountDelta: 0 - } - ) - - assert.equal(model.topScoreIdx, 2); - assert.equal(model.items[model.topScoreIdx].suggestion.label, 'editor.renderControlCharacter') - - model.lineContext = { leadingLineContent: 'editor.R', characterCountDelta: 0 }; - assert.equal(model.topScoreIdx, 1); - - model.lineContext = { leadingLineContent: 'Editor.r', characterCountDelta: 0 }; - assert.equal(model.topScoreIdx, 0); - }); test('complete/incomplete', function () { @@ -152,4 +107,37 @@ suite('CompletionModel', function () { assert.equal(model.incomplete.length, 0); assert.equal(model.items.length, 3); }); + + function assertTopScore(lineContent: string, expected: number, ...suggestionLabels: string[]): void { + + const model = new CompletionModel( + suggestionLabels.map(label => createSuggestItem(label, lineContent.length)), + lineContent.length, + { + characterCountDelta: 0, + leadingLineContent: lineContent + } + ); + + assert.equal(model.topScoreIdx, expected, `${lineContent}, ACTUAL: ${model.items[model.topScoreIdx].suggestion.label} <> EXPECTED: ${model.items[expected].suggestion.label}`); + + } + + test('top score', function () { + + assertTopScore('Foo', 1, 'foo', 'Foo', 'foo'); + + // issue #14583 + assertTopScore('log', 3, 'HTMLOptGroupElement', 'ScrollLogicalPosition', 'SVGFEMorphologyElement', 'log'); + assertTopScore('e', 2, 'AbstractWorker', 'ActiveXObject', 'else'); + + // issue #14446 + // assertTopScore('workbench.sideb', 1, 'workbench.editor.defaultSideBySideLayout', 'workbench.sideBar.location'); + + // issue #11423 + assertTopScore('editor.r', 2, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); + assertTopScore('editor.R', 1, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); + // assertTopScore('Editor.r', 0, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); + + }); }); From 2f8c5c118991ddf1b33a797da02922553e7b9f28 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Thu, 27 Oct 2016 15:47:55 +0200 Subject: [PATCH 147/242] fixes #13561 --- src/vs/code/electron-main/main.ts | 44 ++++++++----------- .../environment/node/environmentService.ts | 11 ++--- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts index b08da75351f..6ae217638a1 100644 --- a/src/vs/code/electron-main/main.ts +++ b/src/vs/code/electron-main/main.ts @@ -424,26 +424,6 @@ function getShellEnvironment(): TPromise { return getUnixShellEnvironment(); } -/** - * Returns the user environment necessary for all Code processes. - * Such environment needs to be propagated to the renderer/shared - * processes. - */ -function getEnvironment(accessor: ServicesAccessor): TPromise { - const environmentService = accessor.get(IEnvironmentService); - - return getShellEnvironment().then(shellEnv => { - const instanceEnv = { - VSCODE_PID: String(process.pid), - VSCODE_IPC_HOOK: environmentService.mainIPCHandle, - VSCODE_SHARED_IPC_HOOK: environmentService.sharedIPCHandle, - VSCODE_NLS_CONFIG: process.env['VSCODE_NLS_CONFIG'] - }; - - return assign({}, shellEnv, instanceEnv); - }); -} - function createPaths(environmentService: IEnvironmentService): TPromise { const paths = [environmentService.appSettingsHome, environmentService.userHome, environmentService.extensionsPath]; @@ -480,16 +460,30 @@ function start(): void { // On some platforms we need to manually read from the global environment variables // and assign them to the process environment (e.g. when doubleclick app on Mac) - return instantiationService.invokeFunction(accessor => { - return getEnvironment(accessor).then(env => { - assign(process.env, env); + return getShellEnvironment().then(shellEnv => { + // Patch `process.env` with the user's shell environment + assign(process.env, shellEnv); + + return instantiationService.invokeFunction(accessor => { + const environmentService = accessor.get(IEnvironmentService); + const instanceEnv = { + VSCODE_PID: String(process.pid), + VSCODE_IPC_HOOK: environmentService.mainIPCHandle, + VSCODE_SHARED_IPC_HOOK: environmentService.sharedIPCHandle, + VSCODE_NLS_CONFIG: process.env['VSCODE_NLS_CONFIG'] + }; + + // Patch `process.env` with the instance's environment + assign(process.env, instanceEnv); + + // Collect all environment patches to send to other processes + const env = assign({}, shellEnv, instanceEnv); return instantiationService.invokeFunction(a => createPaths(a.get(IEnvironmentService))) .then(() => instantiationService.invokeFunction(setupIPC)) .then(mainIpcServer => instantiationService.invokeFunction(main, mainIpcServer, env)); }); - }) - .done(null, err => instantiationService.invokeFunction(quit, err)); + }).done(null, err => instantiationService.invokeFunction(quit, err)); } start(); diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts index f5b019050ba..96fb1f4368b 100644 --- a/src/vs/platform/environment/node/environmentService.ts +++ b/src/vs/platform/environment/node/environmentService.ts @@ -30,7 +30,7 @@ function getUniqueUserId(): string { return crypto.createHash('sha256').update(username).digest('hex').substr(0, 6); } -function getIPCHandleBaseName(): string { +function getIPCHandlePrefix(): string { let name = pkg.name; // Support to run VS Code multiple times as different user @@ -47,8 +47,9 @@ function getIPCHandleBaseName(): string { return path.join(os.tmpdir(), name); } -const IPCHandlePrefix = getIPCHandleBaseName(); -const IPCHandleSuffix = process.platform === 'win32' ? '-sock' : '.sock'; +function getIPCHandleSuffix(): string { + return process.platform === 'win32' ? '-sock' : '.sock'; +} export class EnvironmentService implements IEnvironmentService { @@ -97,10 +98,10 @@ export class EnvironmentService implements IEnvironmentService { get logExtensionHostCommunication(): boolean { return this._args.logExtensionHostCommunication; } @memoize - get mainIPCHandle(): string { return `${IPCHandlePrefix}-${pkg.version}${IPCHandleSuffix}`; } + get mainIPCHandle(): string { return `${getIPCHandlePrefix()}-${pkg.version}${getIPCHandleSuffix()}`; } @memoize - get sharedIPCHandle(): string { return `${IPCHandlePrefix}-${pkg.version}-shared${IPCHandleSuffix}`; } + get sharedIPCHandle(): string { return `${getIPCHandlePrefix()}-${pkg.version}-shared${getIPCHandleSuffix()}`; } constructor(private _args: ParsedArgs, private _execPath: string) { } } From 47a79e95c436778c961189da80dab2c3d23630fd Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 27 Oct 2016 16:39:21 +0200 Subject: [PATCH 148/242] [ts] update grammar --- .../html/test/colorize-results/test_html.json | 60 +-- .../jade/test/colorize-results/test_jade.json | 20 +- .../syntaxes/JavaScript.tmLanguage.json | 100 ++++- .../test/colorize-results/test_js.json | 76 ++-- .../test/colorize-results/test_jsx.json | 358 +++++++++--------- .../syntaxes/TypeScript.tmLanguage.json | 100 ++++- .../syntaxes/TypeScriptReact.tmLanguage.json | 100 ++++- .../test-function-inv_ts.json | 29 +- .../colorize-results/test-issue5566_ts.json | 24 +- .../colorize-results/test-keywords_ts.json | 8 +- .../test-object-literals_ts.json | 40 +- .../test/colorize-results/test_ts.json | 61 +-- 12 files changed, 598 insertions(+), 378 deletions(-) diff --git a/extensions/html/test/colorize-results/test_html.json b/extensions/html/test/colorize-results/test_html.json index c8c3d5b2063..67f8386825b 100644 --- a/extensions/html/test/colorize-results/test_html.json +++ b/extensions/html/test/colorize-results/test_html.json @@ -1552,7 +1552,7 @@ }, { "c": "{", - "t": "block.definition.embedded.html.js.meta.object-literal.punctuation.source", + "t": "block.definition.embedded.html.js.meta.objectliteral.punctuation.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1563,7 +1563,7 @@ }, { "c": "\t\t\t", - "t": "embedded.html.js.meta.object-literal.source", + "t": "embedded.html.js.meta.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1574,7 +1574,7 @@ }, { "c": "baseUrl", - "t": "embedded.html.js.key.member.meta.object.object-literal.source", + "t": "embedded.html.js.key.member.meta.object.object-literal.objectliteral.source", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.object-literal.member.key rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.object-literal.member.key rgb(0, 16, 128)", @@ -1585,7 +1585,7 @@ }, { "c": ":", - "t": "embedded.html.js.key.key-value.member.meta.object.object-literal.punctuation.separator.source", + "t": "embedded.html.js.key.key-value.member.meta.object.object-literal.objectliteral.punctuation.separator.source", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.object-literal.member.key rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.object-literal.member.key rgb(0, 16, 128)", @@ -1596,7 +1596,7 @@ }, { "c": " ", - "t": "embedded.html.js.member.meta.object.object-literal.source", + "t": "embedded.html.js.member.meta.object.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1607,7 +1607,7 @@ }, { "c": "'", - "t": "begin.definition.embedded.html.js.member.meta.object.object-literal.punctuation.quoted.single.source.string", + "t": "begin.definition.embedded.html.js.member.meta.object.objectliteral.punctuation.quoted.single.source.string", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", @@ -1618,7 +1618,7 @@ }, { "c": "/out", - "t": "embedded.html.js.member.meta.object.object-literal.quoted.single.source.string", + "t": "embedded.html.js.member.meta.object.objectliteral.quoted.single.source.string", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", @@ -1629,7 +1629,7 @@ }, { "c": "'", - "t": "definition.embedded.end.html.js.member.meta.object.object-literal.punctuation.quoted.single.source.string", + "t": "definition.embedded.end.html.js.member.meta.object.objectliteral.punctuation.quoted.single.source.string", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", @@ -1640,7 +1640,7 @@ }, { "c": ",", - "t": "comma.embedded.html.js.meta.object-literal.punctuation.separator.source", + "t": "comma.embedded.html.js.meta.objectliteral.punctuation.separator.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1651,7 +1651,7 @@ }, { "c": "\t\t\t", - "t": "embedded.html.js.meta.object-literal.source", + "t": "embedded.html.js.meta.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1662,7 +1662,7 @@ }, { "c": "paths", - "t": "embedded.html.js.key.member.meta.object.object-literal.source", + "t": "embedded.html.js.key.member.meta.object.object-literal.objectliteral.source", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.object-literal.member.key rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.object-literal.member.key rgb(0, 16, 128)", @@ -1673,7 +1673,7 @@ }, { "c": ":", - "t": "embedded.html.js.key.key-value.member.meta.object.object-literal.punctuation.separator.source", + "t": "embedded.html.js.key.key-value.member.meta.object.object-literal.objectliteral.punctuation.separator.source", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.object-literal.member.key rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.object-literal.member.key rgb(0, 16, 128)", @@ -1684,7 +1684,7 @@ }, { "c": " ", - "t": "embedded.html.js.member.meta.object.object-literal.source", + "t": "embedded.html.js.member.meta.object.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1695,7 +1695,7 @@ }, { "c": "{", - "t": "block.definition.embedded.html.js.member.meta.object.object-literal.punctuation.source", + "t": "block.definition.embedded.html.js.member.meta.object.objectliteral.punctuation.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1706,7 +1706,7 @@ }, { "c": "\t\t\t\t", - "t": "embedded.html.js.member.meta.object.object-literal.source", + "t": "embedded.html.js.member.meta.object.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1717,7 +1717,7 @@ }, { "c": "assert", - "t": "embedded.html.js.key.member.meta.object.object-literal.source", + "t": "embedded.html.js.key.member.meta.object.object-literal.objectliteral.source", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.object-literal.member.key rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.object-literal.member.key rgb(0, 16, 128)", @@ -1728,7 +1728,7 @@ }, { "c": ":", - "t": "embedded.html.js.key.key-value.member.meta.object.object-literal.punctuation.separator.source", + "t": "embedded.html.js.key.key-value.member.meta.object.object-literal.objectliteral.punctuation.separator.source", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.object-literal.member.key rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.object-literal.member.key rgb(0, 16, 128)", @@ -1739,7 +1739,7 @@ }, { "c": " ", - "t": "embedded.html.js.member.meta.object.object-literal.source", + "t": "embedded.html.js.member.meta.object.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1750,7 +1750,7 @@ }, { "c": "'", - "t": "begin.definition.embedded.html.js.member.meta.object.object-literal.punctuation.quoted.single.source.string", + "t": "begin.definition.embedded.html.js.member.meta.object.objectliteral.punctuation.quoted.single.source.string", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", @@ -1761,7 +1761,7 @@ }, { "c": "/test/assert.js", - "t": "embedded.html.js.member.meta.object.object-literal.quoted.single.source.string", + "t": "embedded.html.js.member.meta.object.objectliteral.quoted.single.source.string", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", @@ -1772,7 +1772,7 @@ }, { "c": "'", - "t": "definition.embedded.end.html.js.member.meta.object.object-literal.punctuation.quoted.single.source.string", + "t": "definition.embedded.end.html.js.member.meta.object.objectliteral.punctuation.quoted.single.source.string", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string.html rgb(0, 0, 255)", @@ -1783,7 +1783,7 @@ }, { "c": "\t\t\t", - "t": "embedded.html.js.member.meta.object.object-literal.source", + "t": "embedded.html.js.member.meta.object.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1794,7 +1794,7 @@ }, { "c": "}", - "t": "block.definition.embedded.html.js.member.meta.object.object-literal.punctuation.source", + "t": "block.definition.embedded.html.js.member.meta.object.objectliteral.punctuation.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1805,7 +1805,7 @@ }, { "c": "\t\t", - "t": "embedded.html.js.member.meta.object.object-literal.source", + "t": "embedded.html.js.member.meta.object.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1816,7 +1816,7 @@ }, { "c": "}", - "t": "block.definition.embedded.html.js.meta.object-literal.punctuation.source", + "t": "block.definition.embedded.html.js.meta.objectliteral.punctuation.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1882,7 +1882,7 @@ }, { "c": "{", - "t": "block.definition.embedded.html.js.meta.object-literal.punctuation.source", + "t": "block.definition.embedded.html.js.meta.objectliteral.punctuation.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1893,7 +1893,7 @@ }, { "c": "{ ", - "t": "embedded.html.js.meta.object-literal.source", + "t": "embedded.html.js.meta.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1904,7 +1904,7 @@ }, { "c": "modules", - "t": "embedded.html.js.member.meta.object.object-literal.other.readwrite.source.variable", + "t": "embedded.html.js.member.meta.object.objectliteral.other.readwrite.source.variable", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)", @@ -1915,7 +1915,7 @@ }, { "c": " ", - "t": "embedded.html.js.member.meta.object.object-literal.source", + "t": "embedded.html.js.member.meta.object.objectliteral.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1926,7 +1926,7 @@ }, { "c": "}", - "t": "block.definition.embedded.html.js.meta.object-literal.punctuation.source", + "t": "block.definition.embedded.html.js.meta.objectliteral.punctuation.source", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", diff --git a/extensions/jade/test/colorize-results/test_jade.json b/extensions/jade/test/colorize-results/test_jade.json index 61f9b6013ff..01aa7f049ba 100644 --- a/extensions/jade/test/colorize-results/test_jade.json +++ b/extensions/jade/test/colorize-results/test_jade.json @@ -716,7 +716,7 @@ }, { "c": "{", - "t": "block.definition.expr.js.meta.object-literal.punctuation.source.var", + "t": "block.definition.expr.js.meta.objectliteral.punctuation.source.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -727,7 +727,7 @@ }, { "c": " ", - "t": "expr.js.meta.object-literal.source.var", + "t": "expr.js.meta.objectliteral.source.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -738,7 +738,7 @@ }, { "c": "name", - "t": "expr.js.key.member.meta.object.object-literal.source.var", + "t": "expr.js.key.member.meta.object.object-literal.objectliteral.source.var", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.object-literal.member.key rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.object-literal.member.key rgb(0, 16, 128)", @@ -749,7 +749,7 @@ }, { "c": ":", - "t": "expr.js.key.key-value.member.meta.object.object-literal.punctuation.separator.source.var", + "t": "expr.js.key.key-value.member.meta.object.object-literal.objectliteral.punctuation.separator.source.var", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.object-literal.member.key rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.object-literal.member.key rgb(0, 16, 128)", @@ -760,7 +760,7 @@ }, { "c": " ", - "t": "expr.js.member.meta.object.object-literal.source.var", + "t": "expr.js.member.meta.object.objectliteral.source.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -771,7 +771,7 @@ }, { "c": "'", - "t": "begin.definition.expr.js.member.meta.object.object-literal.punctuation.quoted.single.source.string.var", + "t": "begin.definition.expr.js.member.meta.object.objectliteral.punctuation.quoted.single.source.string.var", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)", @@ -782,7 +782,7 @@ }, { "c": "John", - "t": "expr.js.member.meta.object.object-literal.quoted.single.source.string.var", + "t": "expr.js.member.meta.object.objectliteral.quoted.single.source.string.var", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)", @@ -793,7 +793,7 @@ }, { "c": "'", - "t": "definition.end.expr.js.member.meta.object.object-literal.punctuation.quoted.single.source.string.var", + "t": "definition.end.expr.js.member.meta.object.objectliteral.punctuation.quoted.single.source.string.var", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.string rgb(206, 145, 120)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.string rgb(163, 21, 21)", @@ -804,7 +804,7 @@ }, { "c": " ", - "t": "expr.js.member.meta.object.object-literal.source.var", + "t": "expr.js.member.meta.object.objectliteral.source.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -815,7 +815,7 @@ }, { "c": "}", - "t": "block.definition.expr.js.meta.object-literal.punctuation.source.var", + "t": "block.definition.expr.js.meta.objectliteral.punctuation.source.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", diff --git a/extensions/javascript/syntaxes/JavaScript.tmLanguage.json b/extensions/javascript/syntaxes/JavaScript.tmLanguage.json index f40f2396903..5d52b791c45 100644 --- a/extensions/javascript/syntaxes/JavaScript.tmLanguage.json +++ b/extensions/javascript/syntaxes/JavaScript.tmLanguage.json @@ -495,8 +495,8 @@ }, "enum-declaration": { "name": "meta.enum.declaration.js", - "match": "(?)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))", + "match": "(?x)(?:(\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))", "captures": { "1": { "name": "punctuation.accessor.js" @@ -2235,8 +2298,11 @@ "name": "keyword.operator.new.js" } }, - "end": "(?=[(;),]|$|((?)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))", + "begin": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))", "beginCaptures": { "0": { "name": "meta.object-literal.key.js" @@ -2353,19 +2419,19 @@ "match": "(?", - "t": "block.definition.end.expr.function.js.member.meta.object.object-literal.punctuation.tag.var.without-attributes", + "t": "block.definition.end.expr.function.js.member.meta.object.objectliteral.punctuation.tag.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1607,7 +1607,7 @@ }, { "c": " ", - "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1618,7 +1618,7 @@ }, { "c": "<", - "t": "begin.block.children.definition.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", + "t": "begin.block.children.definition.expr.function.js.jsx.member.meta.object.objectliteral.punctuation.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1629,7 +1629,7 @@ }, { "c": "h1", - "t": "block.children.entity.expr.function.js.jsx.member.meta.name.object.object-literal.tag.tsx.var.without-attributes", + "t": "block.children.entity.expr.function.js.jsx.member.meta.name.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function.tag rgb(128, 0, 0)", @@ -1640,7 +1640,7 @@ }, { "c": ">", - "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", + "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.objectliteral.punctuation.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1651,7 +1651,7 @@ }, { "c": "Hello ", - "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1662,7 +1662,7 @@ }, { "c": "{", - "t": "begin.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.section.tag.tsx.var.without-attributes", + "t": "begin.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.objectliteral.punctuation.section.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1673,7 +1673,7 @@ }, { "c": "message", - "t": "block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.other.readwrite.tag.tsx.var.variable.without-attributes", + "t": "block.children.embedded.expr.expression.function.js.jsx.member.meta.object.objectliteral.other.readwrite.tag.tsx.var.variable.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)", @@ -1684,7 +1684,7 @@ }, { "c": "}", - "t": "block.children.embedded.end.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.section.tag.tsx.var.without-attributes", + "t": "block.children.embedded.end.expr.expression.function.js.jsx.member.meta.object.objectliteral.punctuation.section.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1695,7 +1695,7 @@ }, { "c": "!", - "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1706,7 +1706,7 @@ }, { "c": "", - "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", + "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.objectliteral.punctuation.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1739,7 +1739,7 @@ }, { "c": " ", - "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1750,7 +1750,7 @@ }, { "c": "<", - "t": "begin.block.children.definition.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", + "t": "begin.block.children.definition.expr.function.js.jsx.member.meta.object.objectliteral.punctuation.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1761,7 +1761,7 @@ }, { "c": "a", - "t": "block.children.entity.expr.function.js.jsx.member.meta.name.object.object-literal.tag.tsx.var.without-attributes", + "t": "block.children.entity.expr.function.js.jsx.member.meta.name.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function.tag rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function.tag rgb(128, 0, 0)", @@ -1772,7 +1772,7 @@ }, { "c": " ", - "t": "attribute-name.block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", + "t": "attribute-name.block.children.expr.function.js.jsx.member.meta.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1783,7 +1783,7 @@ }, { "c": "href", - "t": "attribute-name.block.children.entity.expr.function.js.jsx.member.meta.object.object-literal.other.tag.tsx.var.without-attributes", + "t": "attribute-name.block.children.entity.expr.function.js.jsx.member.meta.object.objectliteral.other.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.other.attribute-name rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.other.attribute-name rgb(255, 0, 0)", @@ -1794,7 +1794,7 @@ }, { "c": "=", - "t": "assignment.block.children.expr.function.js.jsx.keyword.member.meta.object.object-literal.operator.tag.tsx.var.without-attributes", + "t": "assignment.block.children.expr.function.js.jsx.keyword.member.meta.object.objectliteral.operator.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)", @@ -1805,7 +1805,7 @@ }, { "c": "\"", - "t": "begin.block.children.definition.double.expr.function.js.jsx.jsxAttributeValue.member.meta.object.object-literal.punctuation.quoted.string.tag.tsx.var.without-attributes", + "t": "begin.block.children.definition.double.expr.function.js.jsx.jsxAttributeValue.member.meta.object.objectliteral.punctuation.quoted.string.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1816,7 +1816,7 @@ }, { "c": "\"", - "t": "block.children.definition.double.end.expr.function.js.jsx.jsxAttributeValue.member.meta.object.object-literal.punctuation.quoted.string.tag.tsx.var.without-attributes", + "t": "block.children.definition.double.end.expr.function.js.jsx.jsxAttributeValue.member.meta.object.objectliteral.punctuation.quoted.string.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1827,7 +1827,7 @@ }, { "c": " ", - "t": "attribute-name.block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", + "t": "attribute-name.block.children.expr.function.js.jsx.member.meta.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1838,7 +1838,7 @@ }, { "c": "onClick", - "t": "attribute-name.block.children.entity.expr.function.js.jsx.member.meta.object.object-literal.other.tag.tsx.var.without-attributes", + "t": "attribute-name.block.children.entity.expr.function.js.jsx.member.meta.object.objectliteral.other.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.other.attribute-name rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.other.attribute-name rgb(255, 0, 0)", @@ -1849,7 +1849,7 @@ }, { "c": "=", - "t": "assignment.block.children.expr.function.js.jsx.keyword.member.meta.object.object-literal.operator.tag.tsx.var.without-attributes", + "t": "assignment.block.children.expr.function.js.jsx.keyword.member.meta.object.objectliteral.operator.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)", @@ -1860,7 +1860,7 @@ }, { "c": "{", - "t": "begin.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.section.tag.tsx.var.without-attributes", + "t": "begin.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.objectliteral.punctuation.section.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1871,7 +1871,7 @@ }, { "c": "this", - "t": "block.children.embedded.expr.expression.function.js.jsx.language.member.meta.object.object-literal.tag.this.tsx.var.variable.without-attributes", + "t": "block.children.embedded.expr.expression.function.js.jsx.language.member.meta.object.objectliteral.tag.this.tsx.var.variable.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable.language rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable.language rgb(0, 0, 255)", @@ -1882,7 +1882,7 @@ }, { "c": ".", - "t": "accessor.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", + "t": "accessor.block.children.embedded.expr.expression.function.js.jsx.member.meta.object.objectliteral.punctuation.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1893,7 +1893,7 @@ }, { "c": "toggle", - "t": "block.children.embedded.expr.expression.function.js.jsx.member.meta.object.object-literal.other.property.tag.tsx.var.variable.without-attributes", + "t": "block.children.embedded.expr.expression.function.js.jsx.member.meta.object.objectliteral.other.property.tag.tsx.var.variable.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.variable rgb(156, 220, 254)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.variable rgb(0, 16, 128)", @@ -1904,7 +1904,7 @@ }, { "c": "}", - "t": "block.children.embedded.end.expr.expression.function.js.jsx.member.meta.object.object-literal.punctuation.section.tag.tsx.var.without-attributes", + "t": "block.children.embedded.end.expr.expression.function.js.jsx.member.meta.object.objectliteral.punctuation.section.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1915,7 +1915,7 @@ }, { "c": ">", - "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", + "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.objectliteral.punctuation.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1926,7 +1926,7 @@ }, { "c": "Toggle", - "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1937,7 +1937,7 @@ }, { "c": "", - "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.object-literal.punctuation.tag.tsx.var.without-attributes", + "t": "block.children.definition.end.expr.function.js.jsx.member.meta.object.objectliteral.punctuation.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -1970,7 +1970,7 @@ }, { "c": " ", - "t": "block.children.expr.function.js.jsx.member.meta.object.object-literal.tag.tsx.var.without-attributes", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.tag.tsx.var.without-attributes", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -1981,7 +1981,7 @@ }, { "c": "", - "t": "block.definition.end.expr.function.js.member.meta.object.object-literal.punctuation.tag.var.without-attributes", + "t": "block.definition.end.expr.function.js.member.meta.object.objectliteral.punctuation.tag.var.without-attributes", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", @@ -2014,7 +2014,7 @@ }, { "c": " ", - "t": "block.expr.function.js.member.meta.object.object-literal.var", + "t": "block.expr.function.js.member.meta.object.objectliteral.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -2025,7 +2025,7 @@ }, { "c": ")", - "t": "block.brace.expr.function.js.member.meta.object.object-literal.round.var", + "t": "block.brace.expr.function.js.member.meta.object.objectliteral.round.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -2036,7 +2036,7 @@ }, { "c": ";", - "t": "block.expr.function.js.member.meta.object.object-literal.punctuation.statement.terminator.var", + "t": "block.expr.function.js.member.meta.object.objectliteral.punctuation.statement.terminator.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -2047,7 +2047,7 @@ }, { "c": " ", - "t": "block.expr.function.js.member.meta.object.object-literal.var", + "t": "block.expr.function.js.member.meta.object.objectliteral.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -2058,7 +2058,7 @@ }, { "c": "}", - "t": "block.definition.expr.function.js.member.meta.object.object-literal.punctuation.var", + "t": "block.definition.expr.function.js.member.meta.object.objectliteral.punctuation.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -2069,7 +2069,7 @@ }, { "c": "}", - "t": "block.definition.expr.js.meta.object-literal.punctuation.var", + "t": "block.definition.expr.js.meta.objectliteral.punctuation.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", diff --git a/extensions/typescript/syntaxes/TypeScript.tmLanguage.json b/extensions/typescript/syntaxes/TypeScript.tmLanguage.json index cb9231b920d..a132a799da4 100644 --- a/extensions/typescript/syntaxes/TypeScript.tmLanguage.json +++ b/extensions/typescript/syntaxes/TypeScript.tmLanguage.json @@ -491,8 +491,8 @@ }, "enum-declaration": { "name": "meta.enum.declaration.ts", - "match": "(?)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))", + "match": "(?x)(?:(\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))", "captures": { "1": { "name": "punctuation.accessor.ts" @@ -2244,8 +2307,11 @@ "name": "keyword.operator.new.ts" } }, - "end": "(?=[(;),]|$|((?)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))", + "begin": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))", "beginCaptures": { "0": { "name": "meta.object-literal.key.ts" @@ -2362,19 +2428,19 @@ "match": "(?)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))", + "match": "(?x)(?:(\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))", "captures": { "1": { "name": "punctuation.accessor.tsx" @@ -2234,8 +2297,11 @@ "name": "keyword.operator.new.tsx" } }, - "end": "(?=[(;),]|$|((?)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))", + "begin": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))", "beginCaptures": { "0": { "name": "meta.object-literal.key.tsx" @@ -2352,19 +2418,19 @@ "match": "(? Date: Thu, 27 Oct 2016 16:47:27 +0200 Subject: [PATCH 149/242] onInitialize() should check if params.initializationOptions is null fiixes #12259 --- extensions/json/server/src/jsonServerMain.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/json/server/src/jsonServerMain.ts b/extensions/json/server/src/jsonServerMain.ts index b0afbb79f5d..d72825e0db0 100644 --- a/extensions/json/server/src/jsonServerMain.ts +++ b/extensions/json/server/src/jsonServerMain.ts @@ -56,7 +56,9 @@ const filesAssociationContribution = new FileAssociationContribution(); let workspaceRoot: URI; connection.onInitialize((params: InitializeParams): InitializeResult => { workspaceRoot = URI.parse(params.rootPath); - filesAssociationContribution.setLanguageIds(params.initializationOptions.languageIds); + if (params.initializationOptions) { + filesAssociationContribution.setLanguageIds(params.initializationOptions.languageIds); + } return { capabilities: { // Tell the client that the server works in FULL text document sync mode @@ -64,7 +66,7 @@ connection.onInitialize((params: InitializeParams): InitializeResult => { completionProvider: { resolveProvider: true, triggerCharacters: ['"', ':'] }, hoverProvider: true, documentSymbolProvider: true, - documentRangeFormattingProvider: params.initializationOptions['format.enable'] + documentRangeFormattingProvider: !params.initializationOptions || params.initializationOptions['format.enable'] } }; }); From 82d17905f1ff0e6b1f3a26b85551b6400833b675 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Thu, 27 Oct 2016 17:00:54 +0200 Subject: [PATCH 150/242] [ini] remove ini.tmlanguage --- extensions/ini/package.json | 21 ++-- extensions/ini/syntaxes/Ini.tmLanguage | 127 ------------------------- 2 files changed, 10 insertions(+), 138 deletions(-) delete mode 100644 extensions/ini/syntaxes/Ini.tmLanguage diff --git a/extensions/ini/package.json b/extensions/ini/package.json index 7c20952302a..e8405497651 100644 --- a/extensions/ini/package.json +++ b/extensions/ini/package.json @@ -9,19 +9,18 @@ "extensions": [ ".ini"], "aliases": [ "Ini", "ini" ], "configuration": "./ini.language-configuration.json" - }, - { - "id": "properties", - "extensions": [ ".properties", ".gitconfig" ], - "filenames": ["config", ".gitattributes", ".gitconfig", "gitconfig", ".editorconfig"], - "aliases": [ "properties", "properties" ], - "configuration": "./properties.language-configuration.json" - } - ], + }, + { + "id": "properties", + "extensions": [ ".properties", ".gitconfig" ], + "filenames": [ "config", ".gitattributes", ".gitconfig", "gitconfig", ".editorconfig" ], + "aliases": [ "properties", "properties" ], + "configuration": "./properties.language-configuration.json" + }], "grammars": [{ "language": "ini", - "scopeName": "source.ini", - "path": "./syntaxes/Ini.tmLanuage" + "scopeName": "source.properties", + "path": "./syntaxes/properties.plist" },{ "language": "properties", "scopeName": "source.properties", diff --git a/extensions/ini/syntaxes/Ini.tmLanguage b/extensions/ini/syntaxes/Ini.tmLanguage deleted file mode 100644 index b43ff239149..00000000000 --- a/extensions/ini/syntaxes/Ini.tmLanguage +++ /dev/null @@ -1,127 +0,0 @@ - - - - - fileTypes - - ini - INI - inf - INF - reg - REG - lng - cfg - CFG - url - URL - .editorconfig - - name - INI - patterns - - - captures - - 1 - - name - punctuation.definition.comment.ini - - - match - ^\s*(;|#).*$\n? - name - comment.line.semicolon.ini - - - captures - - 1 - - name - punctuation.definition.section.ini - - 2 - - name - entity.section.ini - - 3 - - name - punctuation.definition.section.ini - - - match - ^\s*(\[)(.*?)(\]) - name - meta.tag.section.ini - - - captures - - 1 - - name - meta.property.ini - - 2 - - name - punctuation.definition.quote.ini - - 3 - - name - keyword.name.ini - - 4 - - name - punctuation.definition.quote.ini - - 5 - - name - punctuation.definition.equals.ini - - 6 - - name - meta.value.ini - - 7 - - name - punctuation.definition.quote.ini - - 8 - - name - string.name.value.ini - - 9 - - name - punctuation.definition.quote.ini - - 10 - - name - comment.declarationline.semicolon.ini - - - match - ^(\s*(["']?)(.+?)(\2)\s*(=))?\s*((["']?)(.*?)(\7))\s*(;.*)?$\n? - name - meta.declaration.ini - - - scopeName - source.ini - uuid - 957acd74-6d7c-4732-a25b-5f66a1e637cd - - From cb08c1806088c0413667202bcd350f3768d18c3c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Thu, 27 Oct 2016 17:23:36 +0200 Subject: [PATCH 151/242] yet a better score algorithm, #14583 and #14446 --- src/vs/base/common/strings.ts | 14 +++- .../contrib/suggest/common/completionModel.ts | 72 +++++++++++++++---- .../test/common/completionModel.test.ts | 11 ++- 3 files changed, 80 insertions(+), 17 deletions(-) diff --git a/src/vs/base/common/strings.ts b/src/vs/base/common/strings.ts index 61874e4e546..f8b5625a737 100644 --- a/src/vs/base/common/strings.ts +++ b/src/vs/base/common/strings.ts @@ -182,6 +182,18 @@ export function endsWith(haystack: string, needle: string): boolean { } } +export function indexOfIgnoreCase(haystack: string, needle: string, position: number = 0): number { + let index = haystack.indexOf(needle, position); + if (index < 0) { + if (position > 0) { + haystack = haystack.substr(position); + } + needle = escapeRegExpCharacters(needle); + index = haystack.search(new RegExp(needle, 'i')); + } + return index; +} + export interface RegExpOptions { matchCase?: boolean; wholeWord?: boolean; @@ -600,4 +612,4 @@ export function repeat(s: string, count: number): string { result += s; } return result; -} \ No newline at end of file +} diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index 2c044773446..a08f54a8d20 100644 --- a/src/vs/editor/contrib/suggest/common/completionModel.ts +++ b/src/vs/editor/contrib/suggest/common/completionModel.ts @@ -6,6 +6,7 @@ 'use strict'; import { isFalsyOrEmpty } from 'vs/base/common/arrays'; +import { indexOfIgnoreCase } from 'vs/base/common/strings'; import { IMatch, fuzzyContiguousFilter } from 'vs/base/common/filters'; import { ISuggestSupport } from 'vs/editor/common/modes'; import { ISuggestionItem } from './suggest'; @@ -175,22 +176,67 @@ export class CompletionModel { } } - private static _scoreByHighlight(item: ICompletionItem, currentWord: string, currentWordLowerCase: string): number { - const {highlights, suggestion} = item; - let score = 0; - if (!isFalsyOrEmpty(highlights)) { - for (const {start, end} of highlights) { - // find the highlight in the current word and - // score it based on case-match and start index - const part = suggestion.label.substring(start, end); - if (currentWord.indexOf(part) >= 0) { - score += (2 * part.length) / (start + 1); + private static _base = 100; - } else if (currentWordLowerCase.indexOf(part) >= 0) { - score += part.length / (start + 1); + private static _scoreByHighlight(item: ICompletionItem, currentWord: string, BLA): number { + const {highlights, suggestion} = item; + + if (isFalsyOrEmpty(highlights)) { + return 0; + } + + let caseSensitiveMatches = 0; + let caseInsensitiveMatches = 0; + let firstMatchStart = 0; + let notMatching = 0; + + const len = Math.min(CompletionModel._base, suggestion.label.length); + let currentWordOffset = 0; + + for (let pos = 0, idx = 0; pos < len; pos++) { + + const highlight = highlights[idx]; + + if (pos < highlight.start) { + // not covered by a highlight + notMatching += 1; + + } else if (pos === highlight.start) { + // reached a highlight: find highlighted part + // and count case-sensitive /case-insensitive matches + const part = suggestion.label.substring(highlight.start, highlight.end); + currentWordOffset = indexOfIgnoreCase(currentWord, part, currentWordOffset); + if (currentWordOffset >= 0) { + do { + if (suggestion.label[pos] === currentWord[currentWordOffset]) { + caseSensitiveMatches += 1; + } else { + caseInsensitiveMatches += 1; + } + pos += 1; + currentWordOffset += 1; + } while (pos < highlight.end); + } + + // proceed with next highlight, store first start, + // exit loop when no highlight is available + if (idx === 0) { + firstMatchStart = highlight.start; + } + idx += 1; + if (idx >= highlights.length) { + notMatching += len - pos; + break; } } } - return score; + + // combine the four scoring values into one + // value using base_100. Values further left + // are more important + return (CompletionModel._base ** 4) * caseSensitiveMatches + + (CompletionModel._base ** 3) * caseInsensitiveMatches + + (CompletionModel._base ** 2) * (CompletionModel._base - firstMatchStart) + + (CompletionModel._base ** 1) * (CompletionModel._base - notMatching); } } diff --git a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts index 67a7948e4fd..eb98e106325 100644 --- a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts @@ -127,17 +127,22 @@ suite('CompletionModel', function () { assertTopScore('Foo', 1, 'foo', 'Foo', 'foo'); + assertTopScore('CC', 1, 'camelCase', 'CamelCase'); + assertTopScore('cC', 0, 'camelCase', 'CamelCase'); + assertTopScore('cC', 1, 'ccfoo', 'camelCase'); + assertTopScore('cC', 1, 'ccfoo', 'camelCase', 'foo-cC-bar'); + // issue #14583 assertTopScore('log', 3, 'HTMLOptGroupElement', 'ScrollLogicalPosition', 'SVGFEMorphologyElement', 'log'); assertTopScore('e', 2, 'AbstractWorker', 'ActiveXObject', 'else'); // issue #14446 - // assertTopScore('workbench.sideb', 1, 'workbench.editor.defaultSideBySideLayout', 'workbench.sideBar.location'); + assertTopScore('workbench.sideb', 1, 'workbench.editor.defaultSideBySideLayout', 'workbench.sideBar.location'); // issue #11423 - assertTopScore('editor.r', 2, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); + assertTopScore('editor.r', 3, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); assertTopScore('editor.R', 1, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); - // assertTopScore('Editor.r', 0, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); + assertTopScore('Editor.r', 0, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); }); }); From 163e90b5b22728c76639e9c727046611744986fd Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 17:56:55 +0200 Subject: [PATCH 152/242] part of #14598 --- src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts b/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts index d8d424b96ee..d0030df0562 100644 --- a/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts +++ b/src/vs/workbench/parts/quickopen/browser/gotoLineHandler.ts @@ -62,7 +62,7 @@ class GotoLineEntry extends EditorQuickOpenEntry { } // Input valid, indicate action - return this.column ? nls.localize('gotoLineColumnLabel', "Go to line {0} and column {1}", this.line, this.column) : nls.localize('gotoLineLabel', "Go to line {0}", this.line); + return this.column ? nls.localize('gotoLineColumnLabel', "Go to line {0} and character {1}", this.line, this.column) : nls.localize('gotoLineLabel', "Go to line {0}", this.line); } private invalidRange(maxLineNumber: number = this.getMaxLineNumber()): boolean { From 80c0de5615b795bc2cd6a74e1c178d3a505b89fd Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Oct 2016 18:26:19 +0200 Subject: [PATCH 153/242] Fixes #12950: Don't break up surrogate pairs when iterating over text to type --- src/vs/editor/common/controller/cursor.ts | 13 ++++++++--- .../test/common/controller/cursor.test.ts | 22 +++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/vs/editor/common/controller/cursor.ts b/src/vs/editor/common/controller/cursor.ts index 654d35b8dc0..c480ae8bf5e 100644 --- a/src/vs/editor/common/controller/cursor.ts +++ b/src/vs/editor/common/controller/cursor.ts @@ -5,6 +5,7 @@ 'use strict'; import * as nls from 'vs/nls'; +import * as strings from 'vs/base/common/strings'; import { onUnexpectedError } from 'vs/base/common/errors'; import { EventEmitter } from 'vs/base/common/eventEmitter'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; @@ -1397,9 +1398,15 @@ export class Cursor extends EventEmitter { if (ctx.eventSource === 'keyboard') { // If this event is coming straight from the keyboard, look for electric characters and enter - var i: number, len: number, chr: string; - for (i = 0, len = text.length; i < len; i++) { - chr = text.charAt(i); + for (let i = 0, len = text.length; i < len; i++) { + let charCode = text.charCodeAt(i); + let chr: string; + if (strings.isHighSurrogate(charCode) && i + 1 < len) { + chr = text.charAt(i) + text.charAt(i + 1); + i++; + } else { + chr = text.charAt(i); + } this.charactersTyped += chr; diff --git a/src/vs/editor/test/common/controller/cursor.test.ts b/src/vs/editor/test/common/controller/cursor.test.ts index 5dad5cf0d49..2a09eca9f0f 100644 --- a/src/vs/editor/test/common/controller/cursor.test.ts +++ b/src/vs/editor/test/common/controller/cursor.test.ts @@ -1556,6 +1556,28 @@ suite('Editor Controller - Regression tests', () => { }); }); + test('issue #12950: Cannot Double Click To Insert Emoji Using OSX Emoji Panel', () => { + usingCursor({ + text: [ + 'some lines', + 'and more lines', + 'just some text', + ], + modeId: null, + modelOpts: { insertSpaces: true, tabSize: 4, detectIndentation: false, defaultEOL: DefaultEndOfLine.LF, trimAutoWhitespace: true } + }, (model, cursor) => { + moveTo(cursor, 3, 1, false); + + cursorCommand(cursor, H.Type, { text: '😍' }, 'keyboard'); + + assert.equal(model.getValue(), [ + 'some lines', + 'and more lines', + '😍just some text', + ].join('\n')); + }); + }); + test('issue #3463: pressing tab adds spaces, but not as many as for a tab', () => { usingCursor({ text: [ From e7d40758cb1cfee21807c9638cd6de11e3d1ebc2 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 18:27:12 +0200 Subject: [PATCH 154/242] more output for #14596 --- .../files/test/node/fileService.test.ts | 69 ++++++++++--------- 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/src/vs/workbench/services/files/test/node/fileService.test.ts b/src/vs/workbench/services/files/test/node/fileService.test.ts index 69bc17f5f90..353a9921746 100644 --- a/src/vs/workbench/services/files/test/node/fileService.test.ts +++ b/src/vs/workbench/services/files/test/node/fileService.test.ts @@ -20,12 +20,19 @@ import extfs = require('vs/base/node/extfs'); import encodingLib = require('vs/base/node/encoding'); import utils = require('vs/workbench/services/files/test/node/utils'); +function onError(error:Error, done: () => void): void { + assert.fail(error); + + done(); +} + suite('FileService', () => { let events: utils.TestEventService; let service: FileService; let parentDir = path.join(os.tmpdir(), 'vsctests', 'service'); let testDir: string; + setup(function (done) { let id = uuid.generateUuid(); testDir = path.join(parentDir, id); @@ -66,7 +73,7 @@ suite('FileService', () => { assert.equal(fs.readFileSync(s.resource.fsPath), contents); done(); - }); + }, error => onError(error, done)); }); test('createFolder', function (done: () => void) { @@ -77,7 +84,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('touchFile', function (done: () => void) { @@ -97,7 +104,7 @@ suite('FileService', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('renameFile', function (done: () => void) { @@ -108,7 +115,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('renameFolder', function (done: () => void) { @@ -130,7 +137,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('moveFile', function (done: () => void) { @@ -141,7 +148,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('move - FILE_MOVE_CONFLICT', function (done: () => void) { @@ -151,7 +158,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('moveFile - MIX CASE', function (done: () => void) { @@ -162,7 +169,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('moveFile - overwrite folder with file', function (done: () => void) { @@ -175,7 +182,7 @@ suite('FileService', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('copyFile', function (done: () => void) { @@ -186,7 +193,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('copyFile - overwrite folder with file', function (done: () => void) { @@ -199,7 +206,7 @@ suite('FileService', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('importFile', function (done: () => void) { @@ -210,7 +217,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('importFile - MIX CASE', function (done: () => void) { @@ -228,7 +235,7 @@ suite('FileService', () => { }); }); }); - }); + }, error => onError(error, done)); }); test('importFile - overwrite folder with file', function (done: () => void) { @@ -242,7 +249,7 @@ suite('FileService', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('importFile - same file', function (done: () => void) { @@ -252,7 +259,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('deleteFile', function (done: () => void) { @@ -262,7 +269,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('deleteFolder', function (done: () => void) { @@ -272,7 +279,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('resolveFile', function (done: () => void) { @@ -283,7 +290,7 @@ suite('FileService', () => { assert.equal(deep.children.length, 4); done(); - }); + }, error => onError(error, done)); }); test('existsFile', function (done: () => void) { @@ -295,7 +302,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('updateContent', function (done: () => void) { @@ -311,7 +318,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('updateContent - use encoding (UTF 16 BE)', function (done: () => void) { @@ -332,7 +339,7 @@ suite('FileService', () => { }); }); }); - }); + }, error => onError(error, done)); }); test('updateContent - encoding preserved (UTF 16 LE)', function (done: () => void) { @@ -355,7 +362,7 @@ suite('FileService', () => { }); }); }); - }); + }, error => onError(error, done)); }); test('resolveContent - FILE_IS_BINARY', function (done: () => void) { @@ -369,7 +376,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('resolveContent - FILE_IS_DIRECTORY', function (done: () => void) { @@ -379,7 +386,7 @@ suite('FileService', () => { assert.equal(e.fileOperationResult, FileOperationResult.FILE_IS_DIRECTORY); done(); - }); + }, error => onError(error, done)); }); test('resolveContent - FILE_NOT_FOUND', function (done: () => void) { @@ -389,7 +396,7 @@ suite('FileService', () => { assert.equal(e.fileOperationResult, FileOperationResult.FILE_NOT_FOUND); done(); - }); + }, error => onError(error, done)); }); test('resolveContent - FILE_NOT_MODIFIED_SINCE', function (done: () => void) { @@ -401,7 +408,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('resolveContent - FILE_MODIFIED_SINCE', function (done: () => void) { @@ -415,7 +422,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('resolveContent - encoding picked up', function (done: () => void) { @@ -426,7 +433,7 @@ suite('FileService', () => { assert.equal(c.encoding, encoding); done(); - }); + }, error => onError(error, done)); }); test('resolveContent - user overrides BOM', function (done: () => void) { @@ -436,7 +443,7 @@ suite('FileService', () => { assert.equal(c.encoding, 'windows1252'); done(); - }); + }, error => onError(error, done)); }); test('resolveContent - BOM removed', function (done: () => void) { @@ -446,7 +453,7 @@ suite('FileService', () => { assert.equal(encodingLib.detectEncodingByBOMFromBuffer(new Buffer(c.value), 512), null); done(); - }); + }, error => onError(error, done)); }); test('resolveContent - invalid encoding', function (done: () => void) { @@ -456,7 +463,7 @@ suite('FileService', () => { assert.equal(c.encoding, 'utf8'); done(); - }); + }, error => onError(error, done)); }); test('watchFileChanges', function (done: () => void) { From 15d1cfd71b6cc1ef76c2609b7d2a0dd77eb59529 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 27 Oct 2016 19:11:54 +0200 Subject: [PATCH 155/242] fix #14611 --- src/vs/platform/environment/node/argv.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts index 9478a8ec766..d7f86b73818 100644 --- a/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts @@ -61,7 +61,8 @@ const options: minimist.Opts = { 'logExtensionHostCommunication', 'disable-extensions', 'list-extensions', - 'show-versions' + 'show-versions', + 'nolazy' ], alias: { help: 'h', From c5251468766314f6ed634303adc3a765cf621966 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Oct 2016 21:40:46 +0200 Subject: [PATCH 156/242] Fixes #13295: Remove brackets with problems --- extensions/less/language-configuration.json | 6 ++---- extensions/scss/language-configuration.json | 6 ++---- extensions/typescript/language-configuration.json | 4 +--- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/extensions/less/language-configuration.json b/extensions/less/language-configuration.json index 570a46c4c9e..36a9cccd688 100644 --- a/extensions/less/language-configuration.json +++ b/extensions/less/language-configuration.json @@ -6,8 +6,7 @@ "brackets": [ ["{", "}"], ["[", "]"], - ["(", ")"], - ["<", ">"] + ["(", ")"] ], "autoClosingPairs": [ { "open": "{", "close": "}", "notIn": ["string", "comment"] }, @@ -21,7 +20,6 @@ ["[", "]"], ["(", ")"], ["\"", "\""], - ["'", "'"], - ["<", ">"] + ["'", "'"] ] } \ No newline at end of file diff --git a/extensions/scss/language-configuration.json b/extensions/scss/language-configuration.json index 570a46c4c9e..36a9cccd688 100644 --- a/extensions/scss/language-configuration.json +++ b/extensions/scss/language-configuration.json @@ -6,8 +6,7 @@ "brackets": [ ["{", "}"], ["[", "]"], - ["(", ")"], - ["<", ">"] + ["(", ")"] ], "autoClosingPairs": [ { "open": "{", "close": "}", "notIn": ["string", "comment"] }, @@ -21,7 +20,6 @@ ["[", "]"], ["(", ")"], ["\"", "\""], - ["'", "'"], - ["<", ">"] + ["'", "'"] ] } \ No newline at end of file diff --git a/extensions/typescript/language-configuration.json b/extensions/typescript/language-configuration.json index 8427adb1b21..f25940db455 100644 --- a/extensions/typescript/language-configuration.json +++ b/extensions/typescript/language-configuration.json @@ -6,8 +6,7 @@ "brackets": [ ["{", "}"], ["[", "]"], - ["(", ")"], - ["<", ">"] + ["(", ")"] ], "autoClosingPairs": [ { "open": "{", "close": "}" }, @@ -22,7 +21,6 @@ ["{", "}"], ["[", "]"], ["(", ")"], - ["<", ">"], ["'", "'"], ["\"", "\""], ["`", "`"] From fa263f9eab8c7d72ee05241c0b65ff85af9b7c3f Mon Sep 17 00:00:00 2001 From: Andre Weinand Date: Thu, 27 Oct 2016 21:44:36 +0200 Subject: [PATCH 157/242] update node-debug --- build/gulpfile.vscode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index 85f61c2a8d4..f38f6439c55 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -39,7 +39,7 @@ const nodeModules = ['electron', 'original-fs'] // Build const builtInExtensions = [ - { name: 'ms-vscode.node-debug', version: '1.7.7' }, + { name: 'ms-vscode.node-debug', version: '1.7.8' }, { name: 'ms-vscode.node-debug2', version: '1.7.1' } ]; From 7d12bd932c72cf39c7ddc5ab8d41eb7564f665bc Mon Sep 17 00:00:00 2001 From: roblou Date: Thu, 27 Oct 2016 14:33:48 -0700 Subject: [PATCH 158/242] Update node-debug2 --- build/gulpfile.vscode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index f38f6439c55..33cae599a0a 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -40,7 +40,7 @@ const nodeModules = ['electron', 'original-fs'] const builtInExtensions = [ { name: 'ms-vscode.node-debug', version: '1.7.8' }, - { name: 'ms-vscode.node-debug2', version: '1.7.1' } + { name: 'ms-vscode.node-debug2', version: '1.7.2' } ]; const vscodeEntryPoints = _.flatten([ From 04ee683bd573dc25990a1b89c15aac1a837389b6 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Oct 2016 23:42:27 +0200 Subject: [PATCH 159/242] Fixes #13852: Cannot read property 'toString' of undefined --- src/vs/editor/browser/view/viewImpl.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/vs/editor/browser/view/viewImpl.ts b/src/vs/editor/browser/view/viewImpl.ts index 906f01534dd..c825ec03cca 100644 --- a/src/vs/editor/browser/view/viewImpl.ts +++ b/src/vs/editor/browser/view/viewImpl.ts @@ -686,9 +686,15 @@ export class View extends ViewEventHandler implements editorBrowser.IView, IDisp return this.viewZones.addZone(zone); }, removeZone: (id: number): void => { + if (!id) { + return; + } zonesHaveChanged = this.viewZones.removeZone(id) || zonesHaveChanged; }, layoutZone: (id: number): void => { + if (!id) { + return; + } zonesHaveChanged = this.viewZones.layoutZone(id) || zonesHaveChanged; } }; From 77713347d8417b42fca89d3138a59459c91a9137 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 27 Oct 2016 23:48:53 +0200 Subject: [PATCH 160/242] Fixes #13866: Cannot read property 'length' of null --- src/vs/editor/common/model/textModelWithTokens.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/editor/common/model/textModelWithTokens.ts b/src/vs/editor/common/model/textModelWithTokens.ts index bc82eaae090..873cec88f39 100644 --- a/src/vs/editor/common/model/textModelWithTokens.ts +++ b/src/vs/editor/common/model/textModelWithTokens.ts @@ -494,6 +494,7 @@ export class TextModelWithTokens extends TextModel implements editorCommon.IToke } public getWordAtPosition(_position: editorCommon.IPosition): editorCommon.IWordAtPosition { + this._assertNotDisposed(); let position = this.validatePosition(_position); let lineContent = this.getLineContent(position.lineNumber); From cb0a9f0aacdc23e1e543d3057569218d8f944186 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 28 Oct 2016 07:44:04 +0200 Subject: [PATCH 161/242] update distro --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8964cd132ab..3186df4e2f8 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "code-oss-dev", "version": "1.7.0", "electronVersion": "1.3.8", - "distro": "a7fe005047e2c139d0e695a1b19f572f5752fb14", + "distro": "53e30f0e2907d30c579b0ef07de97c586e6750a4", "author": { "name": "Microsoft Corporation" }, From 626c8635015f99497a600e31df6dfeba06f08b12 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 28 Oct 2016 08:56:01 +0200 Subject: [PATCH 162/242] fix #13668 --- src/vs/workbench/browser/parts/editor/media/tabstitle.css | 1 - 1 file changed, 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/editor/media/tabstitle.css b/src/vs/workbench/browser/parts/editor/media/tabstitle.css index bf467184714..7ba8f69e7e1 100644 --- a/src/vs/workbench/browser/parts/editor/media/tabstitle.css +++ b/src/vs/workbench/browser/parts/editor/media/tabstitle.css @@ -64,7 +64,6 @@ display: flex; width: 120px; min-width: fit-content; - overflow: hidden; white-space: nowrap; cursor: pointer; height: 35px; From 31d39b0a371fef6134d5799367e7ddf7d128438c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 09:25:29 +0200 Subject: [PATCH 163/242] send telemetry info as initData, fixes #14632 --- src/vs/workbench/api/node/extHost.api.impl.ts | 13 ++++--------- src/vs/workbench/api/node/extHost.protocol.ts | 1 + src/vs/workbench/node/extensionHostMain.ts | 2 +- .../extensions/electron-browser/extensionHost.ts | 13 ++++++++++--- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 79be650c93a..438e93d2801 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -42,7 +42,7 @@ import { CancellationTokenSource } from 'vs/base/common/cancellation'; import * as vscode from 'vscode'; import * as paths from 'vs/base/common/paths'; import { realpathSync } from 'fs'; -import { ITelemetryService, ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; +import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; import { MainContext, ExtHostContext, InstanceCollection, IInitConfiguration } from './extHost.protocol'; @@ -53,7 +53,7 @@ export interface IExtensionApiFactory { /** * This method instantiates and returns the extension API surface */ -export function createApiFactory(initDataConfiguration: IInitConfiguration, threadService: IThreadService, extensionService: ExtHostExtensionService, contextService: IWorkspaceContextService, telemetryService: ITelemetryService): IExtensionApiFactory { +export function createApiFactory(initDataConfiguration: IInitConfiguration, initTelemetryInfo: ITelemetryInfo, threadService: IThreadService, extensionService: ExtHostExtensionService, contextService: IWorkspaceContextService): IExtensionApiFactory { @@ -90,11 +90,6 @@ export function createApiFactory(initDataConfiguration: IInitConfiguration, thre // Register API-ish commands ExtHostApiCommands.register(extHostCommands); - // TODO@joh,alex - this is lifecycle critical - // fetch and store telemetry info - let telemetryInfo: ITelemetryInfo; - telemetryService.getTelemetryInfo().then(info => telemetryInfo = info, errors.onUnexpectedError); - return function (extension: IExtensionDescription): typeof vscode { // namespace: commands @@ -133,8 +128,8 @@ export function createApiFactory(initDataConfiguration: IInitConfiguration, thre // namespace: env const env: typeof vscode.env = Object.freeze({ - get machineId() { return telemetryInfo.machineId; }, - get sessionId() { return telemetryInfo.sessionId; }, + get machineId() { return initTelemetryInfo.machineId; }, + get sessionId() { return initTelemetryInfo.sessionId; }, get language() { return Platform.language; }, get appName() { return product.nameLong; } }); diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index a7d6157e15b..403f1f96615 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -55,6 +55,7 @@ export interface IInitData { }; extensions: IExtensionDescription[]; configuration: IInitConfiguration; + telemetryInfo: ITelemetryInfo; } export interface InstanceSetter { diff --git a/src/vs/workbench/node/extensionHostMain.ts b/src/vs/workbench/node/extensionHostMain.ts index 1cf968a7acc..f7cfcd91e89 100644 --- a/src/vs/workbench/node/extensionHostMain.ts +++ b/src/vs/workbench/node/extensionHostMain.ts @@ -55,7 +55,7 @@ export class ExtensionHostMain { this._extensionService = new ExtHostExtensionService(initData.extensions, threadService, telemetryService, { _serviceBrand: 'optionalArgs', workspaceStoragePath }); // Create the ext host API - const factory = createApiFactory(initData.configuration, threadService, this._extensionService, this._contextService, telemetryService); + const factory = createApiFactory(initData.configuration, initData.telemetryInfo, threadService, this._extensionService, this._contextService); defineAPI(factory, this._extensionService); } diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts index f2f1b0671d9..650ccd8cb60 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts @@ -16,6 +16,7 @@ import { findFreePort } from 'vs/base/node/ports'; import { IMessageService, Severity } from 'vs/platform/message/common/message'; import { ILifecycleService, ShutdownEvent } from 'vs/platform/lifecycle/common/lifecycle'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; +import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IWindowService } from 'vs/workbench/services/window/electron-browser/windowService'; import { ChildProcess, fork } from 'child_process'; import { ipcRenderer as ipc } from 'electron'; @@ -68,7 +69,8 @@ export class ExtensionHostProcessWorker { @ILifecycleService lifecycleService: ILifecycleService, @IInstantiationService private instantiationService: IInstantiationService, @IEnvironmentService private environmentService: IEnvironmentService, - @IWorkspaceConfigurationService private configurationService: IWorkspaceConfigurationService + @IWorkspaceConfigurationService private configurationService: IWorkspaceConfigurationService, + @ITelemetryService private telemetryService: ITelemetryService ) { // handle extension host lifecycle a bit special when we know we are developing an extension that runs inside this.isExtensionDevelopmentHost = !!environmentService.extensionDevelopmentPath; @@ -204,7 +206,11 @@ export class ExtensionHostProcessWorker { if (this.initializeTimer) { window.clearTimeout(this.initializeTimer); } - this.extensionService.readExtensions().then((extensionDescriptions) => { + + TPromise.join([ + this.telemetryService.getTelemetryInfo(), + this.extensionService.readExtensions() + ]).then(([telemetryInfo, extensionDescriptions]) => { let initData: IInitData = { parentPid: process.pid, environment: { @@ -218,7 +224,8 @@ export class ExtensionHostProcessWorker { workspace: this.contextService.getWorkspace() }, extensions: extensionDescriptions, - configuration: this.configurationService.getConfiguration() + configuration: this.configurationService.getConfiguration(), + telemetryInfo }; this.extensionHostProcessQueuedSender.send(stringify(initData)); }); From 603bf23f4a1e1a4e4123266c39397fa3fd42db5a Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Fri, 28 Oct 2016 10:38:15 +0200 Subject: [PATCH 164/242] [html] remove console.log --- extensions/html/server/src/htmlServerMain.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/extensions/html/server/src/htmlServerMain.ts b/extensions/html/server/src/htmlServerMain.ts index 95a35bda32f..e36e3da1a6e 100644 --- a/extensions/html/server/src/htmlServerMain.ts +++ b/extensions/html/server/src/htmlServerMain.ts @@ -170,7 +170,6 @@ function validateTextDocument(textDocument: TextDocument): void { if (embeddedLanguages) { let embeddedLanguageIds = hasEmbeddedContent(languageService, textDocument, htmlDocument, embeddedLanguages); let p = { uri: textDocument.uri, version: textDocument.version, embeddedLanguageIds }; - console.log(JSON.stringify(p)); connection.sendNotification(EmbeddedContentChangedNotification.type, p); } } From cc1d40a7bad3249e4dd665500af008c68cd263bd Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Fri, 28 Oct 2016 10:45:00 +0200 Subject: [PATCH 165/242] add compile script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 3186df4e2f8..23adea51c47 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "test": "mocha", "preinstall": "node build/npm/preinstall.js", "postinstall": "node build/npm/postinstall.js", + "compile": "gulp compile", "watch": "gulp watch", "monaco-editor-setup": "node scripts/monaco-editor-setup.js", "monaco-editor-test": "mocha --only-monaco-editor" From 7cb2b6d58bdb8e364c6ce74ec3e8e1027a79ec2a Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Fri, 28 Oct 2016 11:48:12 +0200 Subject: [PATCH 166/242] Merge in translations. --- .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 3 +++ .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../node/debugConfigurationManager.i18n.json | 3 +-- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 3 +++ .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 5 ++++- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 12 ++++++------ .../debug.contribution.i18n.json | 7 +++++-- .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../parts/debug/node/debugAdapter.i18n.json | 2 +- .../node/debugConfigurationManager.i18n.json | 3 +-- .../electron-browser/terminalService.i18n.json | 2 +- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 4 ++-- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 5 ++++- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../emmet/node/emmet.contribution.i18n.json | 4 ++-- .../electron-browser/terminalService.i18n.json | 2 +- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../electron-browser/terminalService.i18n.json | 2 +- .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ i18n/fra/extensions/php/package.i18n.json | 2 +- .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 3 +++ .../contrib/find/browser/findWidget.i18n.json | 2 +- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../parts/editor/titleControl.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 3 ++- .../main.contribution.i18n.json | 4 +++- .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../node/debugConfigurationManager.i18n.json | 3 +-- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 6 ++++-- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../browser/views/openEditorsViewer.i18n.json | 2 +- .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../nps.contribution.i18n.json | 2 +- .../browser/search.contribution.i18n.json | 6 ++++-- .../search/browser/searchActions.i18n.json | 9 ++++----- .../search/browser/searchViewlet.i18n.json | 2 +- .../search/browser/searchWidget.i18n.json | 4 ++-- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 5 ++--- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 5 ++++- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 5 ++++- .../debug/electron-browser/repl.i18n.json | 4 ++-- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 5 ++--- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 6 ++++-- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersWorkbenchContributions.i18n.json | 2 +- .../markersElectronContributions.i18n.json | 8 ++++++++ .../nps.contribution.i18n.json | 2 +- .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 5 ++--- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 3 +++ .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 4 ++-- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../emmet/node/emmet.contribution.i18n.json | 4 ++-- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../nps.contribution.i18n.json | 2 +- .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 5 ++--- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 7 +++++-- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../electron-browser/terminalService.i18n.json | 2 +- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../files/browser/files.contribution.i18n.json | 2 +- .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../css/client/out/cssMain.i18n.json | 2 +- .../html/client/out/htmlMain.i18n.json | 2 +- .../json/client/out/jsonMain.i18n.json | 2 +- i18n/rus/extensions/php/package.i18n.json | 2 +- .../out/typescriptServiceClient.i18n.json | 4 ++-- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 5 ++++- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../electron-browser/terminalService.i18n.json | 2 +- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ 380 files changed, 1412 insertions(+), 323 deletions(-) create mode 100644 i18n/chs/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/chs/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/chs/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/chs/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/chs/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/cht/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/cht/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/cht/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/cht/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/cht/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/deu/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/deu/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/deu/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/deu/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/deu/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/esn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/esn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/esn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/esn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/esn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/fra/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/fra/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/fra/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/fra/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/fra/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/ita/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/ita/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/ita/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/ita/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/ita/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/kor/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/kor/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/kor/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/kor/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/kor/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/rus/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/rus/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/rus/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/rus/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/rus/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json diff --git a/i18n/chs/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/chs/extensions/typescript/out/typescriptServiceClient.i18n.json index f8795792adf..ed0542dbc0d 100644 --- a/i18n/chs/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/chs/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "已将工作区设置 \"typescript.tsdk\" 更新为 {0}", "use": "使用工作区({0})", "useBundled": "捆绑使用({0})", - "versionMismatch": "检测到全局安装的 tsc 编译器({0})与 VS 代码语言服务({1})版本不匹配。这可能导致不一致的编译错误。", + "versionMismatch": "版本不匹配! 全局 tsc ({0}) != VS Code 的语言服务({1})。可能出现不一致的编译错误", "versionNumber.custom": "自定义" } \ No newline at end of file diff --git a/i18n/chs/extensions/typescript/package.i18n.json b/i18n/chs/extensions/typescript/package.i18n.json index d27d9710483..12014ffee91 100644 --- a/i18n/chs/extensions/typescript/package.i18n.json +++ b/i18n/chs/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "定义逗号分隔符后面的空格处理", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "定义匿名函数的函数关键字之后的空格处理", "format.insertSpaceAfterKeywordsInControlFlowStatements": "定义控制流语句中的关键字之后的空格处理", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "定义 JSX 表达式的左括号之后和右括号之前的空格处理。要求 TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "定义非空方括号的左括号之后和右括号之前的空格处理。", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "定义非空圆括号的左括号之后和右括号之前的空格处理。", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "定义模板字符串的左括号之后和右括号之前的空格处理。要求 TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": "在 For 语句中,定义分号之后的空格处理", "format.insertSpaceBeforeAndAfterBinaryOperators": "定义二进制运算符后面的空格处理", "format.placeOpenBraceOnNewLineForControlBlocks": "定义左大括号是否针对控制块而放置在新的一行", @@ -18,6 +20,7 @@ "javascript.validate.enable": "启用/禁用 JavaScript 验证", "typescript.check.tscVersion": "检查全局安装的 TypeScript 编译器(例如 tsc )是否不同于使用的 TypeScript 语言服务。", "typescript.check.workspaceVersion": "检查工作区中的 TypeScript 版本是否可用", + "typescript.experimentalAutomaticTypeAcquisition": "启用自动类型获取。要求 TypeScript >= 2.0.6,并需在对其进行更改后重启。", "typescript.reloadProjects.title": "重新加载 TypeScript 项目", "typescript.tsdk.desc": "指定包含要使用的 tsserver 和 lib*.d.ts 文件的文件夹路径。", "typescript.tsdk_version.desc": "指定 tsserver 的版本。仅在未使用 npm 安装 tsserver 时需要。", diff --git a/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json index 028bab0655d..4bbe233a52f 100644 --- a/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "以像素为单位控制字号。", "fontWeight": "控制字体粗细。", "formatOnType": "控制编辑器是否应在键入后自动设置行的格式", + "glyphMargin": "控制编辑器是否应呈现垂直字形边距。字形边距最常用于调试。", "hideCursorInOverviewRuler": "控制光标是否应隐藏在概述标尺中。", "ignoreTrimWhitespace": "控制差异编辑器是否将对前导空格或尾随空格的更改显示为差异", "insertSpaces": "按 \"Tab\" 时插入空格。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。", @@ -41,6 +42,8 @@ "sideBySide": "控制 Diff 编辑器以并排或内联形式显示差异", "snippetSuggestions": "控制是否将代码段与其他建议一起显示以及它们的排序方式。", "stablePeek": "即使在双击编辑器内容或按 Esc 键时,也要保持速览编辑器的打开状态。", + "suggestFontSize": "建议小组件的字号", + "suggestLineHeight": "建议小组件的行高", "suggestOnTriggerCharacters": "控制键入触发器字符时是否应自动显示建议", "tabCompletion": "当其前缀匹配时插入代码段。当 \"quickSuggestions\" 未启用时,效果最佳。", "tabSize": "一个制表符等于的空格数。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。", diff --git a/i18n/chs/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/chs/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 8e0fcfa47c1..21ffa461b97 100644 --- a/i18n/chs/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/chs/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "打开侧边的定义", "actions.previewDecl.label": "查看定义", "meta.title": " – {0} 定义", - "multipleResults": "单击此处显示找到的 {0} 个定义。" + "multipleResults": "单击显示 {0} 个定义。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/chs/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 8aacced2d57..f79fb43dd8d 100644 --- a/i18n/chs/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/chs/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "显示修补程序", + "quickFixWithKb": "显示修补程序({0})", "quickfix.trigger.label": "快速修复" } \ No newline at end of file diff --git a/i18n/chs/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/chs/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 89121e29f04..da0d158cb77 100644 --- a/i18n/chs/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/chs/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "菜单项引用与默认和 alt 命令相同的命令", "menuId.invalid": "“{0}”为无效菜单标识符", "menus.editorContext": "编辑器上下文菜单", + "menus.editorTabContext": "编辑器选项卡上下文菜单", "menus.editorTitle": "编辑器标题菜单", "menus.explorerContext": "文件资源管理器上下文菜单", "missing.altCommand": "菜单项引用未在“命令”部分进行定义的 alt 命令“{0}”。", diff --git a/i18n/chs/src/vs/platform/environment/node/argv.i18n.json b/i18n/chs/src/vs/platform/environment/node/argv.i18n.json index 8c175996d48..bab9183bee1 100644 --- a/i18n/chs/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/chs/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "打开差异编辑器。需要传递两个文件路径作为参数。", "disableExtensions": "禁用所有已安装的扩展。", + "disableGPU": "禁用 GPU 硬件加速。", "extensionHomePath": "设置扩展的根路径。", "goto": "在行和列处的路径打开文件(向路径添加 :line[:column])。", "gotoValidation": "\"--goto\" 模式中的参数格式应为 \"FILE(:LINE(:COLUMN))\"。", @@ -19,6 +20,7 @@ "paths": "路径", "performance": "通过启用 \"Developer: Startup Performance\" 命令开始。", "reuseWindow": "在上一活动窗口中强制打开文件或文件夹。", + "showVersions": "使用 --list-extension 时,显示已安装扩展的版本。", "uninstallExtension": "卸载扩展。", "usage": "使用情况", "userDataDir": "指定存放用户数据的目录,此目录在作为根运行时十分有用。", diff --git a/i18n/chs/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/chs/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 4311e5e960e..71a27b6c743 100644 --- a/i18n/chs/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/chs/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "属性“{0}”是必需的,其类型必须是“字符串”", "extensionDescription.version": "属性“{0}”是必需的,其类型必须是“字符串”", "vscode.extension.activationEvents": "VS Code 扩展的激活事件。", + "vscode.extension.badges": "在 Marketplace 的扩展页边栏中显示的徽章数组。", + "vscode.extension.badges.description": "徽章说明。", + "vscode.extension.badges.href": "徽章链接。", + "vscode.extension.badges.url": "徽章图像 URL。", "vscode.extension.categories": "VS Code 库用于对扩展进行分类的类别。", "vscode.extension.contributes": "由此包表示的 VS Code 扩展的所有贡献。", "vscode.extension.displayName": "VS Code 库中使用的扩展的显示名称。", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "VS Code 商城使用的横幅。", "vscode.extension.galleryBanner.color": "VS Code 商城页标题上的横幅颜色。", "vscode.extension.galleryBanner.theme": "横幅中使用的字体颜色主题。", + "vscode.extension.icon": "128 x 128 像素图标的路径。", + "vscode.extension.preview": "在 Marketplace 中设置扩展,将其标记为“预览”。", "vscode.extension.publisher": "VS Code 扩展的发布服务器。", "vscode.extension.scripts.prepublish": "包作为 VS Code 扩展发布前执行的脚本。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/chs/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 94d78da79ba..1893d29afa7 100644 --- a/i18n/chs/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/chs/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "切换侧边栏位置", + "toggleLocation": "切换边栏位置", "view": "查看" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/chs/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 838c84e0f05..07f1a99631c 100644 --- a/i18n/chs/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/chs/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "关闭", "focusPanel": "焦点集中到面板", + "toggleMaximizedPanel": "切换最大化面板", "togglePanel": "切换面板", "view": "查看" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/chs/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 99df4ee07c4..34b8a5b034c 100644 --- a/i18n/chs/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/chs/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "按 \"Enter\" 以确认或按 \"Esc\" 以取消", "inputModeEntryDescription": "{0} (按 \"Enter\" 以确认或按 \"Esc\" 以取消)", "noResultsFound1": "未找到结果", - "quickOpenInput": "键入 \"?\" 从此处获取有关可进行的操作的帮助" + "pickHistory": "选择要从历史记录中删除的编辑器项", + "quickOpenInput": "键入 \"?\" 从此处获取有关可进行的操作的帮助", + "removeFromEditorHistory": "从编辑器历史记录中删除" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json index 801a4f46e46..947c70e70b6 100644 --- a/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "关闭文件夹", "closeMessages": "关闭通知消息", "closeWindow": "关闭窗口", + "current": "当前窗口", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "文件", "folders": "文件夹", diff --git a/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json index cdfb5af1022..39a35853412 100644 --- a/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "如果窗口已退出全屏模式,控制其是否应还原为全屏模式。", "showEditorTabs": "控制打开的编辑器是否显示在选项卡中。", "showIcons": "控制打开的编辑器是否随图标一起显示。这还需启用图标主题。", + "sideBarLocation": "控制边栏的位置。它可显示在工作台的左侧或右侧。", + "statusBarVisibility": "控制工作台底部状态栏的可见性。", "updateChannel": "配置是否从更新通道接收自动更新。更改后需要重启。", "updateConfigurationTitle": "更新", "view": "查看", diff --git a/i18n/chs/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index e6ea7dbc283..529f855237a 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "为行 {0} 键入断点条件。只有当此条件为 true 时,程序才会在此处停止。按 Enter 以接受或按 Esc 以取消。", - "breakpointWidgetPlaceholder": "只有当此条件为 true 时行 {0} 上的断点才将停止。按 Enter 以接受或按 Esc 以取消。" + "breakpointWidgetAriaLabel": "如果此条件为 true,程序仅会在此处停止。按 Enter 接受或按 Esc 取消。", + "breakpointWidgetExpressionPlaceholder": "在表达式计算结果为 true 时中断", + "breakpointWidgetHitCountAriaLabel": "如果达到命中次数,程序仅会在此处停止。按 Enter 接受或按 Esc 取消。", + "breakpointWidgetHitCountPlaceholder": "在满足命中次数条件时中断", + "expression": "表达式", + "hitCount": "命中次数" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 9ee51063de6..cbdb10a1bed 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "激活断点", - "addConditionalBreakpoint": "添加条件断点", + "addConditionalBreakpoint": "添加条件断点...", "addFunctionBreakpoint": "添加函数断点", "addToWatchExpressions": "添加到监视", "addWatchExpression": "添加表达式", "clearRepl": "清除控制台", - "conditionalBreakpointEditorAction": "调试: 条件断点", + "conditionalBreakpointEditorAction": "调试: 添加条件断点...", "continueDebug": "继续", "deactivateBreakpoints": "停用断点", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "焦点调试控制台", "disableAllBreakpoints": "禁用所有断点", "disconnectDebug": "断开连接", - "editConditionalBreakpoint": "编辑断点", + "editConditionalBreakpoint": "编辑断点...", "enableAllBreakpoints": "启用所有断点", "launchJsonNeedsConfigurtion": "配置或修复 \"launch.json\"", "openLaunchJson": "打开 {0}", diff --git a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index e2ade66cdb2..b43b7f94756 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "允许为所有文件设置断点(不考虑扩展)。", "debug": "调试", "debugCategory": "调试", + "debugConfigurationTitle": "调试", "debugErrorEditor": "调试错误", "debugPanel": "调试控制台", "launchConfigDoesNotExist": "启动配置“{0}”不存在。", + "openExplorerOnEnd": "在调试会话结束时自动打开资源管理器 viewlet。", "toggleDebugPanel": "调试控制台", "toggleDebugViewlet": "显示调试", "view": "查看" diff --git a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 784d5dd4d09..4d463d54624 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "actions.repl.acceptInput": "REPL 接受输入", + "actions.repl.acceptInput": "接受 REPL 的输入", "actions.repl.historyNext": "下一个历史记录", "actions.repl.historyPrevious": "上一个历史记录", "replAriaLabel": "读取 Eval 打印循环面板" diff --git a/i18n/chs/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index ff8a48068cd..df054a1d9b2 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "无法在 \".vscode\" 文件夹({0})内创建 \"launch.json\" 文件。", - "app.launch.json.configurations": "配置列表。添加新配置或编辑现有配置。", + "app.launch.json.configurations": "配置列表。使用 IntelliSense 添加新配置或编辑现有配置。", "app.launch.json.title": "启动", "app.launch.json.version": "此文件格式的版本。", "debugNoType": "不可省略调试适配器“类型”,其类型必须是“字符串”。", "duplicateDebuggerType": "调试类型“{0}”已注册,且具有属性“{1}”,正在忽略属性“{1}”。", - "interactiveVariableNotFound": "适配器 {0} 不提供启动配置中指定的变量 {1}。", "selectDebug": "选择环境", "vscode.extension.contributes.breakpoints": "贡献断电。", "vscode.extension.contributes.breakpoints.language": "对此语言允许断点。", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..af827453cc3 --- /dev/null +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "打开", + "extensions.openSide": "打开到侧边" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index c5a065c9d7a..361137152b2 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "名称", "debuggers": "调试程序({0})", "default": "默认", + "dependencies": "依赖项", "description": "描述", "details": "详细信息", + "extension id": "扩展标识符", "file extensions": "文件扩展名", "grammar": "语法", + "install count": "安装计数", "keyboard shortcuts": "键盘快捷方式(&&K)", "language id": "ID", "language name": "名称", "languages": "语言({0})", "license": "许可证", "menuContexts": "菜单上下文", + "name": "扩展名", "noChangelog": "无可用的更改日志。", "noReadme": "无可用自述文件。", + "publisher": "发布服务器名称", + "rating": "评级", "setting name": "名称", "settings": "设置({0})", "snippets": "代码片段", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index c8ab852f61b..0174c84a7e7 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "配置已禁用的扩展", + "disableWorkspaceExtensions": "配置已禁用的扩展(工作区)", "extension": "扩展", "extensions": "扩展", "extensionsAutoUpdate": "自动更新扩展", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 07f81591464..51a9fd41e13 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "建议仅在工作区文件夹上可用。", "OpenExtensionsFile.failed": "无法在 \".vscode\" 文件夹({0})内创建 \"extensions.json\" 文件。", + "OpenGlobalExtensionsStorageFile.failed": "无法在“{0}”文件夹内创建 \"extensions.json\" 文件({1})。", "builtin": "内置", "clearExtensionsInput": "清除扩展输入", - "configureWorkspaceRecommendedExtensions": "配置工作区建议的扩展名", + "configureWorkspaceRecommendedExtensions": "配置建议的扩展(工作区)", "deleteSure": "是否确定要卸载“{0}”?", "enableAction": "启用", "installAction": "安装", @@ -19,6 +20,7 @@ "postUninstallMessage": "已成功卸载 {0}。请重启以停用它。 ", "restart": "若要启用此扩展,需要重启此 VS Code 窗口。\n\n是否继续?", "restartNow": "立即重启", + "showDisabledExtensions": "显示已禁用的扩展", "showInstalledExtensions": "显示已安装扩展", "showOutdatedExtensions": "显示过时扩展", "showPopularExtensions": "显示常用的扩展", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index b58becb16da..f9ed5da1bea 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "预期的格式 \"${publisher}.${name}\"。例如: \"vscode.csharp\"。", "app.extensions.json.recommendations": "扩展推荐项的列表。扩展的标识符始终为 \"${publisher}.${name}\"。例如 \"vscode.csharp\"。", - "app.extensions.json.title": "扩展" + "app.extensions.json.title": "扩展", + "app.extensionsstorage.json.disabled": "已禁用的扩展列表。扩展标识符始终是“${publisher}.${name}”。例如: \"vscode.csharp\"。", + "app.extensionsstorage.json.title": "扩展存储" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index eedaf81c41f..5c5d5411edb 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "排序顺序: ↑", "descending": "排序顺序: ↓", "extensions": "扩展", + "no extensions found": "找不到扩展。", "outdatedExtensions": "{0} 个过时的扩展", "searchExtensions": "在应用商店中搜索扩展", "sort by installs": "排序依据: 安装计数", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 1000da7559e..91e38c9c0ec 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "扩展", - "extensionsInstalling": "扩展(正在安装 {0}...)", - "multipleIssues": "扩展({0} 个问题)", - "multipleUpdates": "扩展({0} 个可用更新)", - "oneIssue": "扩展(1 个问题)", - "oneUpdate": "扩展(1 个可用更新)" + "active": "可用", + "disabled": "已禁用", + "disabledWorkspace": "已禁用(工作区)" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/chs/src/vs/workbench/parts/files/browser/fileActions.i18n.json index aff221b2b22..207f7500042 100644 --- a/i18n/chs/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "打开到侧边", "pasteFile": "粘贴", "permDelete": "永久删除", + "pickHistory": "选择要进行比较的编辑器历史记录项", "refresh": "刷新", "refreshExplorer": "刷新资源管理器", "rename": "重命名", diff --git a/i18n/chs/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/chs/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 298d8359482..30c9e13a74e 100644 --- a/i18n/chs/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "在 GIT 远程上进行身份验证失败。", + "cancel": "取消", "cleanChangesLabel": "清理更改(&&C)", "commit": "Commit", "commitAll": "全部提交", @@ -22,16 +23,21 @@ "confirmUndoMessage": "是否确定要清理所有更改?", "dirtyTreeCheckout": "无法签出。请首先提交你的工作或进行分段。", "dirtyTreePull": "无法请求。请首先提交你的工作或进行分段。", + "do you want to continue": "是否确定要继续?", "init": "初始化", "irreversible": "此操作不可逆!", + "never again": "好,永不再显示", + "ok": "确定", "openChange": "打开更改", "openFile": "打开文件", "publish": "发布", "publishPickMessage": "选取要将分支“{0}”发布到的远程:", + "pushToRemote": "推送到...", + "pushToRemotePickMessage": "选择将分支“{0}”推送到的远程位置:", "refresh": "刷新", "stageAllChanges": "全部暂存", "stageChanges": "暂存", - "sureSync": "是否确定要同步你的 Git 存储库?", + "sync is unpredictable": "此操作会在“{0}”来回推送和拉取提交。", "undoAllChanges": "全部清理", "undoChanges": "清理", "undoLastCommit": "撤消上次提交", diff --git a/i18n/chs/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/chs/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..0de97ab3151 --- /dev/null +++ b/i18n/chs/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "复制" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 43af62a13b0..061c2a24045 100644 --- a/i18n/chs/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "配置 glob 模式以在搜索中排除文件和文件夹。从 files.exclude 设置中继承所有 glob 模式。", "exclude.boolean": "匹配文件路径所依据的 glob 模式。设置为 true 或 false 可启用或禁用该模式。", "exclude.when": "对匹配文件的同级文件的其他检查。使用 $(basename) 作为匹配文件名的变量。", + "findInFiles": "在文件中查找", "findInFolder": "在文件夹中查找", "name": "搜索", "openAnythingHandlerDescription": "转到文件", "openSymbolDescriptionNormal": "转到工作区中的符号", "search.quickOpen.includeSymbols": "配置为在 Quick Open 文件结果中包括全局符号搜索的结果。", "searchConfigurationTitle": "搜索", + "showSearchViewlet": "显示搜索", "showTriggerActions": "转到工作区中的符号...", "view": "查看" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json index a8d763dcfad..f2bddc47f34 100644 --- a/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "删除", "file.replaceAll.label": "全部替换", "findInFolder": "在文件夹中查找", - "focusNextInputbox": "聚焦下一个输入框", - "focusPreviousInputbox": "聚焦上一个输入框", + "focusNextInputBox": "聚焦下一个输入框", + "focusPreviousInputBox": "聚焦上一个输入框", "match.replace.label": "替换", "nextSearchTerm": "显示下一个搜索词", "previousSearchTerm": "显示上一个搜索词", - "replaceInFiles": "在文件中替换", - "showSearchViewlet": "显示搜索" + "replaceInFiles": "在文件中替换" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 2151ea7d4b6..a7d58050005 100644 --- a/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "启动的进程不再存在。如果任务衍生的后台任务退出 VS Code,则可能会导致出现孤立的进程。", "TestAction.label": "运行测试任务", "manyMarkers": "99+", + "problems": "问题", "taskCommands": "运行任务", "tasks": "任务", "tasksCategory": "任务" diff --git a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 360b6a4fadb..7cb1eee293f 100644 --- a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "终端在 Windows 上使用的 shell 的路径。使用随 Windows 一起提供的 shell 时(cmd、PowerShell 或 Ubuntu 上的 Bash),相对 C:WindowsSystem32,首选 C:Windowssysnative 以使用 64 位版本。", "terminal.integrated.shellArgs.linux": "在 Linux 终端上时要使用的命令行参数。", "terminal.integrated.shellArgs.osx": "在 OS X 终端上时要使用的命令行参数。", + "terminal.integrated.shellArgs.windows": "在 Windows 终端上时使用的命令行参数。", "terminalCategory": "终端", "terminalIntegratedConfigurationTitle": "集成终端", "viewCategory": "查看" diff --git a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 51c37b8b269..42ecf53f401 100644 --- a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "在活动终端运行所选文本", "workbench.action.terminal.scrollDown": "向下滚动(行)", "workbench.action.terminal.scrollDownPage": "向下滚动(页)", + "workbench.action.terminal.scrollToBottom": "滚动到底部", + "workbench.action.terminal.scrollToTop": "滚动到顶部", "workbench.action.terminal.scrollUp": "向上滚动(行)", "workbench.action.terminal.scrollUpPage": "向上滚动(页)", "workbench.action.terminal.switchTerminalInstance": "切换终端实例", diff --git a/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index c6259d0e494..787539d2d7f 100644 --- a/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "关闭", - "insiderBuilds": "会员版本将成为日常版本!", + "insiderBuilds": "日常会员版本和发布!", "license": "读取许可证", "licenseChanged": "我们的许可条款已更改,请检查它们。", "neverShowAgain": "不再显示", diff --git a/i18n/chs/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/chs/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..87fdd1af35f --- /dev/null +++ b/i18n/chs/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "添加上方/下方游标", + "watermark.moveLines": "上移/下移行", + "watermark.quickOpen": "转到文件", + "watermark.showCommands": "命令面板", + "watermark.toggleTerminal": "切换终端", + "watermark.unboundCommand": "未绑定" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..585bb2496cd --- /dev/null +++ b/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "扩展主机意外终止。请重新加载窗口以恢复。", + "extensionHostProcess.error": "扩展主机中的错误: {0}", + "extensionHostProcess.startupFail": "扩展主机未在 10 秒内启动,这可能是一个问题。", + "extensionHostProcess.startupFailDebug": "扩展未在 10 秒内启动,可能在第一行已停止,需要调试器才能继续。", + "extensionUnderDevelopment": "正在 {0} 处加载开发扩展", + "overwritingExtension": "使用 {1} 覆盖扩展 {0}。" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/chs/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 8f647527d64..ec34b956910 100644 --- a/i18n/chs/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/chs/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "下载 .NET Framework 4.5", "netVersionError": "需要 Microsoft .NET Framework 4.5。请访问链接安装它。", + "neverShowAgain": "不再显示", "trashFailed": "未能将“{0}”移动到垃圾桶" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/chs/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..b6bdc2f3cff --- /dev/null +++ b/i18n/chs/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "未能保存“{0}”: {1}", + "saveFileFirst": "文件已更新。请首先保存它,然后再通过另一个编码重新打开它。" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/chs/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..24038337393 --- /dev/null +++ b/i18n/chs/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "所有文件", + "cancel": "取消", + "dontSave": "不保存(&&N)", + "moreFile": "...1 个其他文件未显示", + "moreFiles": "...{0} 个其他文件未显示", + "noExt": "无扩展", + "save": "保存(&&S)", + "saveAll": "全部保存(&&S)", + "saveChangesDetail": "如果不保存,更改将丢失。", + "saveChangesMessage": "是否要保存对 {0} 的更改?", + "saveChangesMessages": "是否要保存对下列 {0} 个文件的更改?" +} \ No newline at end of file diff --git a/i18n/cht/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/cht/extensions/typescript/out/typescriptServiceClient.i18n.json index 6246b1ddb7a..598b3034a2c 100644 --- a/i18n/cht/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/cht/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "已將工作區設定 'typescript.tsdk' 更新為 {0}", "use": "使用工作區 ({0})", "useBundled": "使用套件組合 ({0})", - "versionMismatch": "偵測到全域安裝的 TSC 編譯器 ({0}) 和 VS Code 的語言服務 ({1}) 之間版本不符。這可能會導致編譯不一致的錯誤。", + "versionMismatch": "版本不符! 全域 TSC ({0}) != VS Code 的語言服務 ({1})。可能會發生編譯不一致的錯誤", "versionNumber.custom": "自訂" } \ No newline at end of file diff --git a/i18n/cht/extensions/typescript/package.i18n.json b/i18n/cht/extensions/typescript/package.i18n.json index 7e3fcc82df5..5d0c7a26fb5 100644 --- a/i18n/cht/extensions/typescript/package.i18n.json +++ b/i18n/cht/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "定義逗號分隔符號後的空格處理", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "定義匿名函式之函式關鍵字後的空格處理", "format.insertSpaceAfterKeywordsInControlFlowStatements": "定義控制流量陳述式內關鍵字後的空格處理", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "定義 JSX 運算式左括號與右括號間的空格處理。需要 TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "定義左中括弧與非空白右中括弧間的空格處理", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "定義左括弧與非空白右括弧間的空格處理", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "定義範本字串左括號與右括號間的空格處理。需要 TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": "定義 for 陳述式內分號後的空格處理", "format.insertSpaceBeforeAndAfterBinaryOperators": "定義二元運算子後的空格處理", "format.placeOpenBraceOnNewLineForControlBlocks": "定義是否將左大括弧放入控制區塊的新行", @@ -18,6 +20,7 @@ "javascript.validate.enable": "啟用 / 停用 JavaScript 驗證", "typescript.check.tscVersion": "請檢查全域安裝 TypeScript 編譯器 (例如 tsc) 是否不同於使用的 TypeScript 語言服務。", "typescript.check.workspaceVersion": "請檢查 TypeScript 版本是否可在工作區中使用", + "typescript.experimentalAutomaticTypeAcquisition": "啟用自動取得類型。需要 TypeScript >= 2.0.6,並在變更後重新啟動。", "typescript.reloadProjects.title": "重新載入 TypeScript 專案", "typescript.tsdk.desc": "指定資料夾路徑,其中包含要使用的 tsserver 和 lib*.d.ts 檔案。", "typescript.tsdk_version.desc": "指定 tsserver 版本。只有在未使用 npm 安裝 tsserver 時才需要。", diff --git a/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json index 72e6e57f71b..43e0a7cb1b1 100644 --- a/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "控制字型大小 (以像素為單位)。", "fontWeight": "控制字型寬度。", "formatOnType": "控制編輯器是否應在輸入一行後自動格式化", + "glyphMargin": "控制編輯器是否應轉譯垂直字符邊界。字符邊界最常用來進行偵錯。", "hideCursorInOverviewRuler": "控制游標是否應隱藏在概觀尺規中。", "ignoreTrimWhitespace": "控制 Diff 編輯器是否將開頭或尾端空白字元的變更顯示為差異", "insertSpaces": "在按 Tab 時插入空格。當 `editor.detectIndentation` 已開啟時,會根據檔案內容覆寫此設定。", @@ -41,6 +42,8 @@ "sideBySide": "控制 Diff 編輯器要並排或內嵌顯示差異", "snippetSuggestions": "控制程式碼片段是否隨其他建議顯示,以及其排序方式。", "stablePeek": "讓預覽編輯器在使用者按兩下其內容或點擊 Escape 時保持開啟。", + "suggestFontSize": "建議小工具的字型大小", + "suggestLineHeight": "建議小工具的行高", "suggestOnTriggerCharacters": "控制輸入觸發字元時,是否應自動顯示建議", "tabCompletion": "在前置詞相符時插入程式碼片段。最適用於未啟用 'quickSuggestions' 時。", "tabSize": "與 Tab 相等的空格數量。當 `editor.detectIndentation` 已開啟時,會根據檔案內容覆寫此設定。", diff --git a/i18n/cht/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/cht/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 24b671ff572..1ae6cc8c1cd 100644 --- a/i18n/cht/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/cht/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "在一側開啟定義", "actions.previewDecl.label": "預覽定義", "meta.title": " - {0} 個定義", - "multipleResults": "按一下以顯示找到的 {0} 個定義。" + "multipleResults": "按一下以顯示 {0} 項定義。" } \ No newline at end of file diff --git a/i18n/cht/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/cht/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index e838688b779..1d7ab69c3a9 100644 --- a/i18n/cht/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/cht/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "顯示修正", + "quickFixWithKb": "顯示修正 ({0})", "quickfix.trigger.label": "Quick Fix" } \ No newline at end of file diff --git a/i18n/cht/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/cht/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 27e1e60e268..6b4ca30dab6 100644 --- a/i18n/cht/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/cht/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "功能表項目參考了與預設相同的命令和替代命令", "menuId.invalid": "`{0}` 不是有效的功能表識別碼", "menus.editorContext": "編輯器操作功能表", + "menus.editorTabContext": "編輯器索引標籤操作功能表", "menus.editorTitle": "編輯器標題功能表", "menus.explorerContext": "檔案總管操作功能表", "missing.altCommand": "功能表項目參考了 'commands' 區段中未定義的替代命令 `{0}`。", diff --git a/i18n/cht/src/vs/platform/environment/node/argv.i18n.json b/i18n/cht/src/vs/platform/environment/node/argv.i18n.json index f846945c6b9..4d7fbf9f606 100644 --- a/i18n/cht/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/cht/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "開啟 Diff 編輯器。要求傳遞兩個檔案路徑作為引數。", "disableExtensions": "停用所有已安裝的擴充功能。", + "disableGPU": "停用 GPU 硬體加速。", "extensionHomePath": "設定擴充功能的根路徑。", "goto": "開啟位於行與欄中路徑的檔案 (將 :line[:column] 加入路徑中)。", "gotoValidation": "`--goto` 模式中的引數格式應為 `FILE(:LINE(:COLUMN))`。", @@ -19,6 +20,7 @@ "paths": "路徑", "performance": "在已啟用 'Developer: Startup Performance' 命令的情況下開始。", "reuseWindow": "強制在最近使用的視窗中開啟檔案或資料夾。", + "showVersions": "使用 --list-extension 時,顯示安裝的擴充功能版本。", "uninstallExtension": "解除安裝擴充功能。", "usage": "使用方式", "userDataDir": "指定保留使用者資料的目錄,這在以根目錄身分執行時有用。", diff --git a/i18n/cht/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/cht/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index bce92cc8d95..9b60780a6f4 100644 --- a/i18n/cht/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/cht/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "屬性 '{0}' 為強制項目且必須屬於 `string` 類型", "extensionDescription.version": "屬性 '{0}' 為強制項目且必須屬於 `string` 類型", "vscode.extension.activationEvents": "VS Code 擴充功能的啟動事件。", + "vscode.extension.badges": "要顯示於 Marketplace 擴充頁面資訊看板的徽章陣列。", + "vscode.extension.badges.description": "徽章描述。", + "vscode.extension.badges.href": "徽章連結。", + "vscode.extension.badges.url": "徽章映像 URL。", "vscode.extension.categories": "VS Code 資源庫用來將擴充功能歸類的分類。", "vscode.extension.contributes": "此封裝所代表的所有 VS Code 擴充功能比重。", "vscode.extension.displayName": "VS Code 資源庫中使用的擴充功能顯示名稱。", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "用於 VS Code Marketplace 的橫幅。", "vscode.extension.galleryBanner.color": "VS Code Marketplace 頁首的橫幅色彩。", "vscode.extension.galleryBanner.theme": "橫幅中使用的字型色彩佈景主題。", + "vscode.extension.icon": "128 x 128 像素圖示的路徑。", + "vscode.extension.preview": "將延伸模組設為在 Marketplace 中標幟為 [預覽]。", "vscode.extension.publisher": "VS Code 擴充功能的發行者。", "vscode.extension.scripts.prepublish": "在封裝作為 VS Code 擴充功能發行前所執行的指令碼。" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/cht/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 577cc0ceead..08df7a29ce5 100644 --- a/i18n/cht/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/cht/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "切換提要欄位位置", + "toggleLocation": "切換提要欄位位置", "view": "檢視" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/cht/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 4758d9ed0dc..6fafd26f66a 100644 --- a/i18n/cht/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/cht/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "關閉", "focusPanel": "將焦點移至面板", + "toggleMaximizedPanel": "切換最大化面板", "togglePanel": "切換面板", "view": "檢視" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/cht/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index cd395a65caa..d16c7b60767 100644 --- a/i18n/cht/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/cht/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "按 'Enter' 鍵確認您的輸入或按 'Esc' 鍵取消", "inputModeEntryDescription": "{0} (按 'Enter' 鍵確認或按 'Esc' 鍵取消)", "noResultsFound1": "找不到結果", - "quickOpenInput": "輸入 '?' 即可取得相關說明來了解您可以在這裡執行的動作" + "pickHistory": "選取編輯器輸入即可從歷程記錄移除", + "quickOpenInput": "輸入 '?' 即可取得相關說明來了解您可以在這裡執行的動作", + "removeFromEditorHistory": "從編輯器記錄中移除" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json index f78a2761ed5..02317dd707b 100644 --- a/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "關閉資料夾", "closeMessages": "關閉通知訊息", "closeWindow": "關閉視窗", + "current": "目前視窗", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "檔案", "folders": "資料夾", diff --git a/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json index ca52e9d67ca..2cb4d92cdf1 100644 --- a/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "控制當視窗在全螢幕模式下結束後,下次是否仍以全螢幕模式開啟。", "showEditorTabs": "控制已開啟的編輯器是否應顯示在索引標籤中。", "showIcons": "控制開啟的編輯器是否搭配圖示顯示。這需要同時啟用圖示佈景主題。", + "sideBarLocation": "控制項資訊看板的位置。可顯示於 Workbench 的左方或右方。", + "statusBarVisibility": "控制 Workbench 底端狀態列的可視性。", "updateChannel": "設定是否要從更新頻道接收自動更新。變更後需要重新啟動。", "updateConfigurationTitle": "更新", "view": "檢視", diff --git a/i18n/cht/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 199db8fb0e8..7b0c12ea2a0 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "輸入第 {0} 行的中斷點條件。程式只有在此條件為 True 時才會在此停止。請按 Enter 鍵接受,或按 Esc 鍵取消。", - "breakpointWidgetPlaceholder": "第 {0} 行的中斷點只有在此條件為 True 時才會停止。請按 'Enter' 鍵接受或按 'Esc' 鍵取消。" + "breakpointWidgetAriaLabel": "程式只有在此條件為 true 時才會在此停止。請按 Enter 鍵接受,或按 Esc 鍵取消。", + "breakpointWidgetExpressionPlaceholder": "運算式評估為 true 時中斷", + "breakpointWidgetHitCountAriaLabel": "程式只會在符合叫用次數時於此處停止。按 Enter 鍵接受,或按 Escape 鍵取消。", + "breakpointWidgetHitCountPlaceholder": "符合叫用次數條件時中斷", + "expression": "運算式", + "hitCount": "叫用次數" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index b33c53bffbb..04a14b30539 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "啟動中斷點", - "addConditionalBreakpoint": "加入條件式中斷點", + "addConditionalBreakpoint": "新增條件中斷點...", "addFunctionBreakpoint": "加入函式中斷點", "addToWatchExpressions": "加入監看", "addWatchExpression": "加入運算式", "clearRepl": "清除主控台", - "conditionalBreakpointEditorAction": "偵錯: 條件式中斷點", + "conditionalBreakpointEditorAction": "偵錯: 新增條件中斷點...", "continueDebug": "繼續", "deactivateBreakpoints": "停用中斷點", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "焦點偵錯主控台", "disableAllBreakpoints": "停用所有中斷點", "disconnectDebug": "中斷連接", - "editConditionalBreakpoint": "編輯中斷點", + "editConditionalBreakpoint": "編輯中斷點...", "enableAllBreakpoints": "啟用所有中斷點", "launchJsonNeedsConfigurtion": "設定或修正 'launch.json'", "openLaunchJson": "開啟 {0}", diff --git a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 9604955e86b..ade6af21004 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "允許設定所有檔案的中斷點,無論延伸模組為何。", "debug": "偵錯", "debugCategory": "偵錯", + "debugConfigurationTitle": "偵錯", "debugErrorEditor": "對錯誤偵錯", "debugPanel": "偵錯主控台", "launchConfigDoesNotExist": "啟動設定 '{0}' 不存在。", + "openExplorerOnEnd": "自動於偵錯工作階段結束時開啟 Explorer Viewlet。", "toggleDebugPanel": "偵錯主控台", "toggleDebugViewlet": "顯示偵錯", "view": "檢視" diff --git a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 61c1c91f665..bcc5a8c1b14 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "REPL 接受輸入", "actions.repl.historyNext": "下一筆記錄", "actions.repl.historyPrevious": "上一筆記錄", - "replAriaLabel": "Read Eval Print Loop 面板" + "replAriaLabel": "「讀取、求值、輸出」迴圈面板" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 551aa8de48c..b6109cd4007 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "按一下以追蹤 (Ctrl + 按一下滑鼠左鍵開至側邊)", "fileLinkMac": "按一下以追蹤 (Cmd + 按一下滑鼠左鍵開至側邊)", - "replExpressionAriaLabel": "運算式 {0} 具有值 {1},Read Eval Print Loop,偵錯", - "replKeyValueOutputAriaLabel": "輸出變數 {0} 具有值 {1},Read Eval Print Loop,偵錯", - "replValueOutputAriaLabel": "{0},Read Eval Print Loop,偵錯", - "replVariableAriaLabel": "變數 {0} 具有值 {1},Read Eval Print Loop,偵錯", + "replExpressionAriaLabel": "運算式 {0} 具有值 {1},「讀取、求值、輸出」迴圈,偵錯", + "replKeyValueOutputAriaLabel": "輸出變數 {0} 具有值 {1},「讀取、求值、輸出」迴圈,偵錯", + "replValueOutputAriaLabel": "{0},「讀取、求值、輸出」迴圈,偵錯", + "replVariableAriaLabel": "變數 {0} 具有值 {1},「讀取、求值、輸出」迴圈,偵錯", "stateCapture": "第一次評估會擷取物件狀態" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 948cb25dfb4..70695dea674 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "無法在 '.vscode' 資料夾 ({0}) 中建立 'launch.json' 檔案。", - "app.launch.json.configurations": "組態清單。請加入新的組態或編輯現有的組態。", + "app.launch.json.configurations": "組態清單。請使用 IntelliSense 新增新的組態或編輯現有的組態。", "app.launch.json.title": "啟動", "app.launch.json.version": "此檔案格式的版本。", "debugNoType": "偵錯配接器 'type' 不能省略且必須屬於 'string' 類型。", "duplicateDebuggerType": "偵錯類型 '{0}' 已註冊並具有屬性 '{1}',即將略過屬性 '{1}'。", - "interactiveVariableNotFound": "配接器 {0} 未參與在啟動設定中指定的變數 {1}。", "selectDebug": "選取環境", "vscode.extension.contributes.breakpoints": "提供中斷點。", "vscode.extension.contributes.breakpoints.language": "允許此語言使用中斷點。", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..c1a74f1991c --- /dev/null +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "開啟", + "extensions.openSide": "開至側邊" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 396b167f9f0..fb55ea31bed 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "名稱", "debuggers": "偵錯工具 ({0})", "default": "預設", + "dependencies": "相依性", "description": "描述", "details": "詳細資料", + "extension id": "延伸模組識別碼", "file extensions": "副檔名", "grammar": "文法", + "install count": "安裝計數", "keyboard shortcuts": "鍵盤快速鍵(&&K)", "language id": "識別碼", "language name": "名稱", "languages": "語言 ({0})", "license": "授權", "menuContexts": "功能表內容", + "name": "延伸模組名稱", "noChangelog": "沒有可用的 CHANGELOG。", "noReadme": "沒有可用的讀我檔案。", + "publisher": "發行者名稱", + "rating": "評等", "setting name": "名稱", "settings": "設定 ({0})", "snippets": "程式碼片段", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 6edf893cce7..2186c16d3b7 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "設定停用的延伸模組", + "disableWorkspaceExtensions": "設定停用的延伸模組 (工作區)", "extension": "擴充功能", "extensions": "擴充功能", "extensionsAutoUpdate": "自動更新擴充功能", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 289223e3a67..52e04f418b7 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "只有在工作區資料夾中才能使用建議。", "OpenExtensionsFile.failed": "無法在 '.vscode' 資料夾 ({0}) 中建立 'extensions.json' 檔案。", + "OpenGlobalExtensionsStorageFile.failed": "無法在 '{0}' 資料夾中建立 'extensions.json' 檔案 ({1})。", "builtin": "內建", "clearExtensionsInput": "清除擴充功能輸入", - "configureWorkspaceRecommendedExtensions": "設定工作區的建議擴充功能", + "configureWorkspaceRecommendedExtensions": "設定建議的延伸模組 (工作區)", "deleteSure": "確定要解除安裝 '{0}' 嗎?", "enableAction": "啟用", "installAction": "安裝", @@ -19,6 +20,7 @@ "postUninstallMessage": "已成功將 '{0}' 解除安裝。請重新啟動加以停用。", "restart": "為了啟用此擴充功能,必須重新啟動此 VS Code 視窗。\n\n要繼續嗎?", "restartNow": "立即重新啟動", + "showDisabledExtensions": "顯示停用的延伸模組", "showInstalledExtensions": "顯示安裝的擴充功能", "showOutdatedExtensions": "顯示過期的擴充功能", "showPopularExtensions": "顯示熱門擴充功能", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index b8bf44db113..6ad1328fb88 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "格式應為 '${publisher}.${name}'。範例: 'vscode.csharp'。", "app.extensions.json.recommendations": "擴充功能的建議清單。擴充功能的識別碼一律為 '${publisher}.${name}'。例如: 'vscode.csharp'。", - "app.extensions.json.title": "擴充功能" + "app.extensions.json.title": "擴充功能", + "app.extensionsstorage.json.disabled": "停用的延伸模組清單。延伸模組的識別碼一律為 '${publisher}.${name}'。例如: 'vscode.csharp'。", + "app.extensionsstorage.json.title": "延伸模組儲存體" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 9169add056b..df68f20c818 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "排序依據: ↑", "descending": "排序依據: ↓", "extensions": "延伸模組", + "no extensions found": "找不到延伸模組。", "outdatedExtensions": "{0} 過期的擴充功能", "searchExtensions": "在 Marketplace 中搜尋擴充功能", "sort by installs": "排序依據: 安裝計數", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 36cd3bef87c..62947f4c498 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "延伸模組", - "extensionsInstalling": "擴充功能 (有 {0} 個正在安裝...)", - "multipleIssues": "擴充功能 (有 {0} 個問題)", - "multipleUpdates": "擴充功能 (有 {0} 項更新可用)", - "oneIssue": "擴充功能 (有 1 個問題)", - "oneUpdate": "擴充功能 (有 1 項更新可用)" + "active": "使用中", + "disabled": "已停用", + "disabledWorkspace": "停用 (工作區)" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/cht/src/vs/workbench/parts/files/browser/fileActions.i18n.json index e2d541b8bfe..b774e660390 100644 --- a/i18n/cht/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "開至側邊", "pasteFile": "貼上", "permDelete": "永久刪除", + "pickHistory": "選取編輯器歷程記錄輸入以相比較", "refresh": "重新整理", "refreshExplorer": "重新整理 Explorer", "rename": "重新命名", diff --git a/i18n/cht/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/cht/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 2ad01d4f64c..c664e21ce64 100644 --- a/i18n/cht/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Git 遠端的驗證失敗。", + "cancel": "取消", "cleanChangesLabel": "清除變更(&&C)", "commit": "Commit", "commitAll": "全部認可", @@ -22,16 +23,21 @@ "confirmUndoMessage": "確定要清除所有變更嗎?", "dirtyTreeCheckout": "無法簽出。請先認可或佈置您的工作。", "dirtyTreePull": "無法提取。請先認可或佈置您的工作。", + "do you want to continue": "確定要繼續嗎?", "init": "Init", "irreversible": "此動作無法回復!", + "never again": "確定,不要再顯示", + "ok": "確定", "openChange": "開啟變更", "openFile": "開啟檔案", "publish": "發行", "publishPickMessage": "挑選要發行分支 '{0}' 的目標遠端:", + "pushToRemote": "推送至...", + "pushToRemotePickMessage": "挑選遠端作為分支 '{0}' 的發送目標:", "refresh": "重新整理", "stageAllChanges": "全部分段", "stageChanges": "分段", - "sureSync": "確定要同步處理您的 GIT 存放庫嗎?", + "sync is unpredictable": "此動作會將認可發送至 '{0}' 及從中提取認可。", "undoAllChanges": "全部清除", "undoChanges": "清除", "undoLastCommit": "復原上次認可", diff --git a/i18n/cht/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/cht/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..48b44c3d443 --- /dev/null +++ b/i18n/cht/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "複製" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index d4ec9b97892..07286b5d05d 100644 --- a/i18n/cht/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "設定 Glob 模式,以排除不要搜尋的檔案及資料夾。請從 file.exclude 設定繼承所有的 Glob 模式。", "exclude.boolean": "要符合檔案路徑的 Glob 模式。設為 True 或 False 可啟用或停用模式。", "exclude.when": "在相符檔案同層級上額外的檢查。請使用 $(basename) 作為相符檔案名稱的變數。", + "findInFiles": "在檔案中尋找", "findInFolder": "在資料夾中尋找", "name": "搜尋", "openAnythingHandlerDescription": "前往檔案", "openSymbolDescriptionNormal": "前往工作區中的符號", "search.quickOpen.includeSymbols": "設定以將全域符號搜尋的結果納入 Quick Open 的檔案結果中。", "searchConfigurationTitle": "搜尋", + "showSearchViewlet": "顯示搜尋", "showTriggerActions": "前往工作區中的符號...", "view": "檢視" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 20f556a0367..1088dcd3312 100644 --- a/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "移除", "file.replaceAll.label": "全部取代", "findInFolder": "在資料夾中尋找", - "focusNextInputbox": "聚焦下一個輸入方塊", - "focusPreviousInputbox": "聚焦上一個輸入方塊", + "focusNextInputBox": "聚焦下一個輸入方塊", + "focusPreviousInputBox": "聚焦上一個輸入方塊", "match.replace.label": "取代", "nextSearchTerm": "顯示下一個搜尋字詞", "previousSearchTerm": "顯示上一個搜尋字詞", - "replaceInFiles": "檔案中取代", - "showSearchViewlet": "顯示搜尋" + "replaceInFiles": "檔案中取代" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 6b2b3592845..cdbd7899063 100644 --- a/i18n/cht/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "啟動的處理序已不存在。如果工作繁衍的背景工作結束,VS Code 可能會產生孤立的處理序。", "TestAction.label": "執行測試工作", "manyMarkers": "99+", + "problems": "問題", "taskCommands": "執行工作", "tasks": "工作", "tasksCategory": "工作" diff --git a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index a6e076b9d76..6eb687d5d39 100644 --- a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "終端機在 Windows 上使用的殼層路徑。使用隨附於 Windows 的殼層 (cmd、PowerShell 或 Bash on Ubuntu) 時,建議選擇 C:Windowssysnative 而非 C:WindowsSystem32,以使用 64 位元版本。", "terminal.integrated.shellArgs.linux": "在 Linux 終端機要使用的命令列引數。", "terminal.integrated.shellArgs.osx": "在 OS X 終端機要使用的命令列引數。", + "terminal.integrated.shellArgs.windows": "在 Windows 終端機上時要使用的命令列引數。", "terminalCategory": "終端機", "terminalIntegratedConfigurationTitle": "整合式終端機", "viewCategory": "檢視" diff --git a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 7b42baa191a..40425575747 100644 --- a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "在使用中的終端機執行選取的文字", "workbench.action.terminal.scrollDown": "向下捲動 (行)", "workbench.action.terminal.scrollDownPage": "向下捲動 (頁)", + "workbench.action.terminal.scrollToBottom": "捲動至底端", + "workbench.action.terminal.scrollToTop": "捲動至頂端", "workbench.action.terminal.scrollUp": "向上捲動 (行)", "workbench.action.terminal.scrollUpPage": "向上捲動 (頁)", "workbench.action.terminal.switchTerminalInstance": "切換終端機執行個體", diff --git a/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 99643d78f10..9d686ce07e6 100644 --- a/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "關閉", - "insiderBuilds": "測試人員組建將成為每日組建!", + "insiderBuilds": "每日都有測試人員組建及版本!", "license": "閱讀授權", "licenseChanged": "授權條款已有所變更,請仔細閱讀。", "neverShowAgain": "不要再顯示", diff --git a/i18n/cht/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/cht/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..abe65d7bcfe --- /dev/null +++ b/i18n/cht/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "在上方/下方新增資料指標", + "watermark.moveLines": "將行上移/下移", + "watermark.quickOpen": "前往檔案", + "watermark.showCommands": "命令選擇區", + "watermark.toggleTerminal": "切換終端機", + "watermark.unboundCommand": "未繫結" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..b65bdc64e16 --- /dev/null +++ b/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "延伸主機意外終止。請重新載入視窗以復原。", + "extensionHostProcess.error": "延伸主機發生錯誤: {0}", + "extensionHostProcess.startupFail": "延伸主機未在 10 秒內啟動,可能發生了問題。", + "extensionHostProcess.startupFailDebug": "延伸主機未於 10 秒內開始,可能在第一行就已停止,並需要偵錯工具才能繼續。", + "extensionUnderDevelopment": "正在載入位於 {0} 的開發延伸模組", + "overwritingExtension": "正在以 {1} 覆寫延伸模組 {0}。" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/cht/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index e6eaeccaa69..b138f9e69e6 100644 --- a/i18n/cht/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/cht/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "下載 .NET Framework 4.5", "netVersionError": "需要 Microsoft .NET Framework 4.5。請連入此連結進行安裝。", + "neverShowAgain": "不要再顯示", "trashFailed": "無法將 '{0}' 移動至垃圾" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/cht/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..6958e7db6e1 --- /dev/null +++ b/i18n/cht/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "無法儲存 '{0}': {1}", + "saveFileFirst": "檔案已變更。請先儲存,再以其他編碼重新開啟。" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/cht/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..3165b95a1c3 --- /dev/null +++ b/i18n/cht/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "所有檔案", + "cancel": "取消", + "dontSave": "不要儲存(&&N)", + "moreFile": "...另外 1 個檔案未顯示", + "moreFiles": "...另外 {0} 個檔案未顯示", + "noExt": "無擴充功能", + "save": "儲存(&&S)", + "saveAll": "全部儲存(&&S)", + "saveChangesDetail": "如果您不儲存變更,這些變更將會遺失。", + "saveChangesMessage": "要儲存對 {0} 所做的變更嗎?", + "saveChangesMessages": "要儲存對下列 {0} 個檔案所做的變更嗎?" +} \ No newline at end of file diff --git a/i18n/deu/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/deu/extensions/typescript/out/typescriptServiceClient.i18n.json index 2e4c2bfbb40..f32462f3af3 100644 --- a/i18n/deu/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/deu/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "Die Arbeitsbereicheinstellung \"typescript.tsdk\" wurde in {0} aktualisiert.", "use": "Arbeitsbereich verwenden ({0})", "useBundled": "Paket verwenden ({0})", - "versionMismatch": "Ein Versionskonflikt zwischen dem global installierten TSC-Compiler ({0}) und dem Sprachdienst von VS Code ({1}) wurde erkannt. Dies kann ggf. zu inkonsistenten Kompilierungsfehlern führen.", + "versionMismatch": "Versionskonflikt zwischen dem globalen TSC ({0}) und dem Sprachdienst von VS Code ({1}). Dies kann zu Kompilierungsfehlern aufgrund von Inkonsistenzen führen.", "versionNumber.custom": "benutzerdefiniert" } \ No newline at end of file diff --git a/i18n/deu/extensions/typescript/package.i18n.json b/i18n/deu/extensions/typescript/package.i18n.json index 62cba7ba325..6cf7e6a8dc7 100644 --- a/i18n/deu/extensions/typescript/package.i18n.json +++ b/i18n/deu/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Definiert die Verarbeitung von Leerzeichen nach einem Kommatrennzeichen.", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Definiert die Verarbeitung von Leerzeichen nach einem Funktionsschlüsselwort für anonyme Funktionen.", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Definiert die Verarbeitung von Leerzeichen nach Schlüsselwörtern in einer Flusssteuerungsanweisung.", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Definiert die Verarbeitung von Leerzeichen nach öffnenden und vor schließenden geschweiften Klammern für JSX-Ausdrücke. Erfordert TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Definiert die Verarbeitung von Leerzeichen nach dem Öffnen und vor dem Schließen einer nicht leeren eckigen Klammer.", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Definiert die Verarbeitung von Leerzeichen nach dem Öffnen und vor dem Schließen einer nicht leeren Klammer.", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Definiert die Verarbeitung von Leerzeichen nach öffnenden und vor schließenden geschweiften Klammern für Vorlagenzeichenfolgen. Erfordert TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": " Definiert die Verarbeitung von Leerzeichen nach einem Semikolon in einer for-Anweisung.", "format.insertSpaceBeforeAndAfterBinaryOperators": "Definiert die Verarbeitung von Leerzeichen nach einem binären Operator.", "format.placeOpenBraceOnNewLineForControlBlocks": "Definiert, ob eine öffnende geschweifte Klammer in eine neue Zeile für Kontrollblöcke eingefügt wird.", @@ -18,6 +20,7 @@ "javascript.validate.enable": "JavaScript-Überprüfung aktivieren/deaktivieren", "typescript.check.tscVersion": "Überprüfen, ob sich ein global installierter TypeScript-Compiler (z. B. tsc) vom verwendeten TypeScript-Sprachdienst unterscheidet.", "typescript.check.workspaceVersion": "Überprüfen, ob eine TypeScript-Version im Arbeitsbereich verfügbar ist", + "typescript.experimentalAutomaticTypeAcquisition": "Aktiviert die automatische Typerfassung. Erfordert TypeScript >= 2.0.6 und einen Neustart nach der Änderung.", "typescript.reloadProjects.title": "TypeScript-Projekt erneut laden", "typescript.tsdk.desc": "Gibt den Ordnerpfad mit den zu verwendenden tsserver- und lib*.d.ts-Dateien an.", "typescript.tsdk_version.desc": "Gibt die Version von tsserver an. Nur erforderlich, wenn der tsserver nicht mithilfe von npm installiert wird.", diff --git a/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json index 1f2d3da8f88..26038738af5 100644 --- a/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Steuert den Schriftgrad in Pixeln.", "fontWeight": "Steuert die Schriftbreite.", "formatOnType": "Steuert, ob der Editor Zeilen automatisch nach der Eingabe formatiert.", + "glyphMargin": "Steuert, ob der Editor den vertikalen Glyphenrand rendert. Der Glyphenrand wird hauptsächlich zum Debuggen verwendet.", "hideCursorInOverviewRuler": "Steuert die Sichtbarkeit des Cursors im Übersichtslineal.", "ignoreTrimWhitespace": "Steuert, ob der Diff-Editor Änderungen in führenden oder nachgestellten Leerzeichen als Diffs anzeigt.", "insertSpaces": "Fügt beim Drücken der TAB-TASTE Leerzeichen ein. Diese Einstellung wird basierend auf dem Inhalt der Datei überschrieben, wenn \"editor.detectIndentation\" aktiviert ist.", @@ -40,7 +41,9 @@ "selectionHighlight": "Steuert, ob der Editor der Auswahl ähnelnde Übereinstimmungen hervorheben soll.", "sideBySide": "Steuert, ob der Diff-Editor das Diff nebeneinander oder inline anzeigt.", "snippetSuggestions": "Steuert, ob Codeausschnitte mit anderen Vorschlägen angezeigt und wie diese sortiert werden.", - "stablePeek": "Vorschau-Editoren geöffnet lassen, auch wenn auf ihren Inhalt doppelgeklickt oder die ESC-TASTE gedrückt wird.", + "stablePeek": "Peek-Editoren geöffnet lassen, auch wenn auf ihren Inhalt doppelgeklickt oder die ESC-TASTE gedrückt wird.", + "suggestFontSize": "Schriftgröße für Vorschlagswidget", + "suggestLineHeight": "Zeilenhöhe für Vorschlagswidget", "suggestOnTriggerCharacters": "Steuert, ob Vorschläge automatisch bei der Eingabe von Triggerzeichen angezeigt werden.", "tabCompletion": "Fügt Codeausschnitte ein, wenn ihr Präfix übereinstimmt. Funktioniert am besten, wenn \"quickSuggestions\" nicht aktiviert sind.", "tabSize": "Die Anzahl der Leerzeichen, denen ein Tabstopp entspricht. Diese Einstellung wird basierend auf dem Inhalt der Datei überschrieben, wenn \"editor.detectIndentation\" aktiviert ist.", diff --git a/i18n/deu/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/deu/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 494852dbb2a..c3f08c29a5e 100644 --- a/i18n/deu/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/deu/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Definition an der Seite öffnen", "actions.previewDecl.label": "Peek-Definition", "meta.title": " – {0} Definitionen", - "multipleResults": "Klicken Sie, um die gefundenen {0}-Definitionen anzuzeigen." + "multipleResults": "Klicken Sie, um {0} Definitionen anzuzeigen." } \ No newline at end of file diff --git a/i18n/deu/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/deu/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index fe200125691..feb85add4a5 100644 --- a/i18n/deu/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/deu/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Korrekturen anzeigen", + "quickFixWithKb": "Korrekturen anzeigen ({0})", "quickfix.trigger.label": "Schnelle Problembehebung" } \ No newline at end of file diff --git a/i18n/deu/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/deu/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index caf2d856bcd..a4480c1b9c6 100644 --- a/i18n/deu/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/deu/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "Das Menüelement verweist auf den gleichen Befehl wie der Standard- und der Alternativbefehl.", "menuId.invalid": "\"{0}\" ist kein gültiger Menübezeichner.", "menus.editorContext": "Das Editor-Kontextmenü.", + "menus.editorTabContext": "Das Kontextmenü für die Editor-Registerkarten", "menus.editorTitle": "Das Editor-Titelmenü.", "menus.explorerContext": "Das Kontextmenü des Datei-Explorers.", "missing.altCommand": "Das Menüelement verweist auf einen Alternativbefehl \"{0}\", der im Abschnitt \"commands\" nicht definiert ist.", diff --git a/i18n/deu/src/vs/platform/environment/node/argv.i18n.json b/i18n/deu/src/vs/platform/environment/node/argv.i18n.json index 50930c84fb4..f398323032b 100644 --- a/i18n/deu/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/deu/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Öffnet einen Diff-Editor. Es müssen zwei Dateipfade als Argumente übergeben werden.", "disableExtensions": "Deaktiviert alle installierten Extensions.", + "disableGPU": "Deaktiviert die GPU-Hardwarebeschleunigung.", "extensionHomePath": "Legen Sie den Stammpfad für Extensions fest.", "goto": "Öffnet die Datei im Pfad in der Zeile und Spalte (fügen Sie dem Pfad \":line[:column]\" hinzu).", "gotoValidation": "Argumente im Modus \"--goto\" müssen im Format \"DATEI(:ZEILE(:SPALTE))\" vorliegen.", @@ -19,6 +20,7 @@ "paths": "Pfade", "performance": "Startet mit aktiviertem Befehl \"Developer: Startup Performance\".", "reuseWindow": "Erzwingt das Öffnen einer Datei oder eines Ordners im letzten aktiven Fenster.", + "showVersions": "Zeigt Versionen der installierten Erweiterungen an, wenn \"--list-extension\" verwendet wird.", "uninstallExtension": "Deinstalliert eine Extension.", "usage": "Verwendung", "userDataDir": "Gibt das Verzeichnis an, in dem Benutzerdaten gespeichert werden. Nützlich, wenn die Ausführung als \"root\" erfolgt.", diff --git a/i18n/deu/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/deu/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index e240c708c2d..db963c9a252 100644 --- a/i18n/deu/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/deu/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "Die Eigenschaft \"{0}\" ist erforderlich. Sie muss vom Typ \"string\" sein.", "extensionDescription.version": "Die Eigenschaft \"{0}\" ist erforderlich. Sie muss vom Typ \"string\" sein.", "vscode.extension.activationEvents": "Aktivierungsereignisse für die VS Code-Extension.", + "vscode.extension.badges": "Array aus Badges, die im Marketplace in der Seitenleiste auf der Seite mit den Erweiterungen angezeigt werden.", + "vscode.extension.badges.description": "Eine Beschreibung für den Badge.", + "vscode.extension.badges.href": "Der Link für den Badge.", + "vscode.extension.badges.url": "Die Bild-URL für den Badge.", "vscode.extension.categories": "Die vom VS Code-Katalog zum Kategorisieren der Extension verwendeten Kategorien.", "vscode.extension.contributes": "Alle Beiträge der VS Code-Extension, die durch dieses Paket dargestellt werden.", "vscode.extension.displayName": "Der Anzeigename für die Extension, der im VS Code-Katalog verwendet wird.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Das in VS Code Marketplace verwendete Banner.", "vscode.extension.galleryBanner.color": "Die Bannerfarbe für die Kopfzeile der VS Code Marketplace-Seite.", "vscode.extension.galleryBanner.theme": "Das Farbdesign für die Schriftart, die im Banner verwendet wird.", + "vscode.extension.icon": "Der Pfad zu einem 128x128-Pixel-Symbol.", + "vscode.extension.preview": "Legt die Erweiterung fest, die im Marketplace als Vorschau gekennzeichnet werden soll.", "vscode.extension.publisher": "Der Herausgeber der VS Code-Extension.", "vscode.extension.scripts.prepublish": "Ein Skript, das ausgeführt wird, bevor das Paket als VS Code-Extension veröffentlicht wird." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/deu/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index f695537e873..c676a1ca340 100644 --- a/i18n/deu/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/deu/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Randleistenposition umschalten", + "toggleLocation": "Position der Seitenleiste wechseln", "view": "Anzeigen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/deu/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index f5abca8c7b1..61172b0055b 100644 --- a/i18n/deu/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/deu/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Schließen", "focusPanel": "Fokus im Bereich", + "toggleMaximizedPanel": "Bereich maximieren/reduzieren", "togglePanel": "Bereich umschalten", "view": "Anzeigen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/deu/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 8943ebdc7ff..a2c853dae37 100644 --- a/i18n/deu/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/deu/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Drücken Sie die EINGABETASTE, um Ihre Eingabe zu bestätigen, oder ESC, um den Vorgang abzubrechen.", "inputModeEntryDescription": "{0} (Drücken Sie die EINGABETASTE zur Bestätigung oder ESC, um den Vorgang abzubrechen.)", "noResultsFound1": "Es wurden keine Ergebnisse gefunden.", - "quickOpenInput": "Geben Sie \"?\" ein, um Hilfe zu den Aktionen zu erhalten, die hier zur Verfügung stehen." + "pickHistory": "Editor-Eintrag auswählen, der aus dem Verlauf entfernt werden soll", + "quickOpenInput": "Geben Sie \"?\" ein, um Hilfe zu den Aktionen zu erhalten, die hier zur Verfügung stehen.", + "removeFromEditorHistory": "Aus Editor-Verlauf entfernen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/deu/src/vs/workbench/electron-browser/actions.i18n.json index b800d14eaf5..dc53804c8a0 100644 --- a/i18n/deu/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/deu/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Ordner schließen", "closeMessages": "Benachrichtigungs-E-Mail schließen", "closeWindow": "Fenster schließen", + "current": "Aktuelles Fenster", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "Dateien", "folders": "Ordner", diff --git a/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json index 74ff453055a..badc76cdc8c 100644 --- a/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "Steuert, ob ein Fenster im Vollbildmodus wiederhergestellt wird, wenn es im Vollbildmodus beendet wurde.", "showEditorTabs": "Steuert, ob geöffnete Editoren auf Registerkarten angezeigt werden sollen.", "showIcons": "Steuert, ob geöffnete Editoren mit einem Symbol angezeigt werden sollen. Hierzu muss auch ein Symboldesign aktiviert werden.", + "sideBarLocation": "Steuert die Position der Seitenleiste. Diese kann entweder links oder rechts von der Workbench angezeigt werden.", + "statusBarVisibility": "Steuert die Sichtbarkeit der Statusleiste im unteren Bereich der Workbench.", "updateChannel": "Konfiguriert, ob automatische Updates aus einem Updatekanal empfangen werden sollen. Erfordert einen Neustart nach der Änderung.", "updateConfigurationTitle": "Update", "view": "Anzeigen", diff --git a/i18n/deu/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 24782e5d6d7..d1e4d946b4d 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Geben Sie die Haltepunktbedingung für die Zeile {0} ein. Das Programm verwendet diesen Haltepunkt nur, wenn diese Bedingung erfüllt ist. Drücken Sie zum Akzeptieren die EINGABETASTE oder ESC, um den Vorgang abzubrechen.", - "breakpointWidgetPlaceholder": "Der Haltepunkt für die Zeile {0} wird nur verwendet, wenn diese Bedingung erfüllt ist. Drücken Sie zum Akzeptieren die EINGABETASTE oder ESC, um den Vorgang abzubrechen." + "breakpointWidgetAriaLabel": "Das Programm wird nur angehalten, wenn diese Bedingung erfüllt ist. Drücken Sie zum Akzeptieren die EINGABETASTE oder ESC, um den Vorgang abzubrechen.", + "breakpointWidgetExpressionPlaceholder": "Unterbrechen, wenn der Ausdruck als TRUE ausgewertet wird", + "breakpointWidgetHitCountAriaLabel": "Das Programm wird nur angehalten, wenn die Bedingung für die Trefferanzahl erfüllt ist. Drücken Sie zum Akzeptieren die EINGABETASTE oder ESC, um den Vorgang abzubrechen.", + "breakpointWidgetHitCountPlaceholder": "Unterbrechen, wenn die Bedingung für die Trefferanzahl erfüllt ist", + "expression": "Ausdruck", + "hitCount": "Trefferanzahl" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 0ee05615162..4e79dee8529 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,22 +5,22 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Haltepunkte aktivieren", - "addConditionalBreakpoint": "Bedingten Haltepunkt hinzufügen", + "addConditionalBreakpoint": "Bedingten Haltepunkt hinzufügen...", "addFunctionBreakpoint": "Funktionshaltepunkt hinzufügen", "addToWatchExpressions": "Zur Überwachung hinzufügen", "addWatchExpression": "Ausdruck hinzufügen", "clearRepl": "Konsole löschen", - "conditionalBreakpointEditorAction": "Debuggen: Bedingter Haltepunkt", + "conditionalBreakpointEditorAction": "Debuggen: Bedingten Haltepunkt hinzufügen...", "continueDebug": "Weiter", "deactivateBreakpoints": "Haltepunkte deaktivieren", "debugActionLabelAndKeybinding": "{0} ({1})", "debugAddToWatch": "Debuggen: Zur Überwachung hinzufügen", - "debugConsoleAction": "Debugkonsole", + "debugConsoleAction": "Debugging-Konsole", "debugEvaluate": "Debuggen: Auswerten", - "debugFocusConsole": "Focus-Debugkonsole", + "debugFocusConsole": "Focus-Debugging-Konsole", "disableAllBreakpoints": "Alle Haltepunkte deaktivieren", "disconnectDebug": "Trennen", - "editConditionalBreakpoint": "Haltepunkt bearbeiten", + "editConditionalBreakpoint": "Haltepunkt bearbeiten...", "enableAllBreakpoints": "Alle Haltepunkte aktivieren", "launchJsonNeedsConfigurtion": "Konfigurieren oder reparieren Sie \"launch.json\".", "openLaunchJson": "{0} öffnen", @@ -48,5 +48,5 @@ "stopDebug": "Beenden", "toggleBreakpointAction": "Debuggen: Haltepunkt umschalten", "toggleEnablement": "Haltepunkt aktivieren/deaktivieren", - "unreadOutput": "Neue Ausgabe in Debugkonsole" + "unreadOutput": "Neue Ausgabe in Debugging-Konsole" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index a7ac885bb1a..0d03c8ccd26 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,12 +4,15 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Ermöglicht das Festlegen von Haltepunkten für alle Dateien, unabhängig von der Erweiterung.", "debug": "Debuggen", "debugCategory": "Debuggen", + "debugConfigurationTitle": "Debuggen", "debugErrorEditor": "Debuggingfehler", - "debugPanel": "Debugkonsole", + "debugPanel": "Debugging-Konsole", "launchConfigDoesNotExist": "Die Startkonfiguration \"{0}\" ist nicht vorhanden.", - "toggleDebugPanel": "Debugkonsole", + "openExplorerOnEnd": "Hiermit wird am Ende einer Debugsitzung automatisch ein Explorer-Viewlet geöffnet.", + "toggleDebugPanel": "Debugging-Konsole", "toggleDebugViewlet": "Debuggen anzeigen", "view": "Anzeigen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 259cadbdd07..770be80d194 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "REPL-Eingaben akzeptieren", "actions.repl.historyNext": "Verlauf nächste", "actions.repl.historyPrevious": "Verlauf vorherige", - "replAriaLabel": "REPL-Bereich (Read Eval Print Loop)" + "replAriaLabel": "REPL-Bereich (Read Eval Print-Loop)" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 817f9ac994f..ebbfcb6507a 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "Zum Öffnen klicken (STRG+KLICKEN für seitliche Anzeige)", "fileLinkMac": "Zum Öffnen klicken (CMD+KLICKEN für seitliche Anzeige)", - "replExpressionAriaLabel": "Ausdruck {0} besitzt den Wert {1}, Read Eval Print Loop, Debuggen", - "replKeyValueOutputAriaLabel": "Ausgabevariable {0} besitzt den Wert {1}, Read Eval Print Loop, Debuggen", - "replValueOutputAriaLabel": "{0}, Read Eval Print Loop, Debuggen", - "replVariableAriaLabel": "Variable {0} besitzt den Wert {1}, Read Eval Print Loop, Debuggen", + "replExpressionAriaLabel": "Ausdruck {0} besitzt den Wert {1}, Read Eval Print-Loop, Debuggen", + "replKeyValueOutputAriaLabel": "Ausgabevariable {0} besitzt den Wert {1}, Read Eval Print-Loop, Debuggen", + "replValueOutputAriaLabel": "{0}, Read Eval Print-Loop, Debuggen", + "replVariableAriaLabel": "Variable {0} besitzt den Wert {1}, Read Eval Print-Loop, Debuggen", "stateCapture": "Der Objektstatus wird aus der ersten Auswertung erfasst." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/node/debugAdapter.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/node/debugAdapter.i18n.json index c6d03109a2c..af806fc345a 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/node/debugAdapter.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/node/debugAdapter.i18n.json @@ -11,6 +11,6 @@ "debugRequest": "Der Anforderungstyp der Konfiguration. Der Wert kann \"launch\" oder \"attach\" sein.", "debugType": "Der Typ der Konfiguration.", "debugWindowsConfiguration": "Windows-spezifische Startkonfigurationsattribute.", - "internalConsoleOptions": "Steuert das Verhalten der internen Debugkonsole.", + "internalConsoleOptions": "Steuert das Verhalten der internen Debugging-Konsole.", "relativePathsNotConverted": "Relative Pfade werden nicht mehr automatisch in absolute Pfade konvertiert. Verwenden Sie ggf. ${workspaceRoot} als Präfix." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index ab2c10d304b..88fd460c894 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "Die Datei \"launch.json\" kann nicht im Ordner \".vscode\" erstellt werden ({0}).", - "app.launch.json.configurations": "Die Liste der Konfigurationen. Fügen Sie neue Konfigurationen hinzu, oder bearbeiten Sie vorhandene Konfigurationen.", + "app.launch.json.configurations": "Die Liste der Konfigurationen. Fügen Sie neue Konfigurationen hinzu, oder bearbeiten Sie vorhandene Konfigurationen mit IntelliSense.", "app.launch.json.title": "Starten", "app.launch.json.version": "Die Version dieses Dateiformats.", "debugNoType": "Der \"type\" des Debugadapters kann nicht ausgelassen werden und muss vom Typ \"string\" sein.", "duplicateDebuggerType": "Der Debugtyp \"{0}\" ist bereits registriert und weist das Attribut \"{1}\" auf. Das Attribut \"{1}\" wird ignoriert.", - "interactiveVariableNotFound": "Der Adapter {0} trägt nicht die Variable \"{1}\" bei, die in der Startkonfiguration angegeben ist.", "selectDebug": "Umgebung auswählen", "vscode.extension.contributes.breakpoints": "Trägt Haltepunkte bei.", "vscode.extension.contributes.breakpoints.language": "Lässt Haltepunkte für diese Sprache zu.", diff --git a/i18n/deu/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json b/i18n/deu/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json index f5e708b3f9a..0bf26d42585 100644 --- a/i18n/deu/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "console.title": "VS Code-Konsole", - "linux.term.failed": "Fehler bei {0} mit Exitcode {1}.", + "linux.term.failed": "Fehler bei \"{0}\" mit Exitcode {1}.", "mac.terminal.script.failed": "Fehler bei Skript \"{0}\" mit Exitcode {1}.", "mac.terminal.type.not.supported": "\"{0}\" wird nicht unterstützt.", "press.any.key": "Drücken Sie eine beliebige Taste, um fortzufahren..." diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..251d931ab6c --- /dev/null +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Öffnen", + "extensions.openSide": "Zur Seite öffnen" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 6d56f6839b5..3e291faf06c 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Name", "debuggers": "Debugger ({0})", "default": "Standard", + "dependencies": "Abhängigkeiten", "description": "Beschreibung", "details": "Details", + "extension id": "Erweiterungsbezeichner", "file extensions": "Dateierweiterungen", "grammar": "Grammatik", + "install count": "Installationsanzahl", "keyboard shortcuts": "&&Tastenkombinationen", "language id": "ID", "language name": "Name", "languages": "Sprachen ({0})", "license": "Lizenz", "menuContexts": "Menükontexte", + "name": "Erweiterungsname", "noChangelog": "Es ist kein CHANGELOG verfügbar.", "noReadme": "Keine INFODATEI verfügbar.", + "publisher": "Name des Herausgebers", + "rating": "Bewertung", "setting name": "Name", "settings": "Einstellungen ({0})", "snippets": "Codeausschnitte", diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 19f165bde9b..62311f39408 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Deaktivierte Erweiterungen konfigurieren", + "disableWorkspaceExtensions": "Deaktivierte Erweiterungen konfigurieren (Arbeitsbereich)", "extension": "Extension", "extensions": "Extensions", "extensionsAutoUpdate": "Extensions automatisch aktualisieren", diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 84ad7655fa6..96c3fe30b55 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Empfehlungen sind nur für einen Arbeitsbereichsordner verfügbar.", "OpenExtensionsFile.failed": "Die Datei \"extensions.json\" kann nicht im Ordner \".vscode\" erstellt werden ({0}).", + "OpenGlobalExtensionsStorageFile.failed": "Die Datei \"extensions.json\" kann nicht im Ordner \"{0}\" ({1}) erstellt werden.", "builtin": "Integriert", "clearExtensionsInput": "Extensioneingabe löschen", - "configureWorkspaceRecommendedExtensions": "Für den Arbeitsbereich empfohlene Extensions konfigurieren", + "configureWorkspaceRecommendedExtensions": "Empfohlene Erweiterungen konfigurieren (Arbeitsbereich)", "deleteSure": "Möchten Sie \"{0}\" deinstallieren?", "enableAction": "Aktivieren", "installAction": "Installieren", @@ -19,6 +20,7 @@ "postUninstallMessage": "{0} wurde erfolgreich deinstalliert. Führen Sie zur Deaktivierung einen Neustart aus.", "restart": "Damit diese Extension aktiviert wird, muss dieses Fenster von VS Code neu gestartet werden.\n\nMöchten Sie fortfahren?", "restartNow": "Jetzt neu starten", + "showDisabledExtensions": "Deaktivierte Erweiterungen anzeigen", "showInstalledExtensions": "Installierte Extensions anzeigen", "showOutdatedExtensions": "Veraltete Extensions anzeigen", "showPopularExtensions": "Beliebte Extensions anzeigen", diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index 44395f28e60..f7704ebdf57 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Erwartetes Format: \"${publisher}.${name}\". Beispiel: \"vscode.csharp\".", "app.extensions.json.recommendations": "Liste der Erweiterungsempfehlungen. Der Bezeichner einer Erweiterung lautet immer \"${publisher}.${name}\". Beispiel: \"vscode.csharp\".", - "app.extensions.json.title": "Erweiterungen" + "app.extensions.json.title": "Erweiterungen", + "app.extensionsstorage.json.disabled": "Eine Liste der deaktivierten Erweiterungen. Der Bezeichner einer Erweiterung lautet immer \"${publisher}.${name}\". Beispiel: \"vscode.csharp\".", + "app.extensionsstorage.json.title": "Erweiterungsspeicher" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index c2e7b9fbbb1..44b4e90bd98 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Sortierreihenfolge: ↑", "descending": "Sortierreihenfolge: ↓", "extensions": "Extensions", + "no extensions found": "Es wurden keine Erweiterungen gefunden.", "outdatedExtensions": "{0} veraltete Extensions", "searchExtensions": "Nach Extensions in Marketplace suchen", "sort by installs": "Sortieren nach: Installationsanzahl", diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 933c99b1790..5dbf78c93f8 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Extensions", - "extensionsInstalling": "Extensions ({0} wird installiert...)", - "multipleIssues": "Extensions ({0} Probleme)", - "multipleUpdates": "Extensions ({0} Updates verfügbar)", - "oneIssue": "Extensions (1 Problem)", - "oneUpdate": "Extensions (1 Update verfügbar)" + "active": "Aktiv", + "disabled": "Deaktiviert", + "disabledWorkspace": "Deaktiviert (Arbeitsbereich)" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/deu/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 61754d788f8..633a4ee3935 100644 --- a/i18n/deu/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Zur Seite öffnen", "pasteFile": "Einfügen", "permDelete": "Endgültig löschen", + "pickHistory": "Editor-Verlaufseintrag für den Vergleich auswählen", "refresh": "Aktualisieren", "refreshExplorer": "Explorer aktualisieren", "rename": "Umbenennen", diff --git a/i18n/deu/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/deu/src/vs/workbench/parts/git/browser/gitActions.i18n.json index ade28505043..ed5b99b85d2 100644 --- a/i18n/deu/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Fehler bei der Authentifizierung für den Git-Remotespeicherort.", + "cancel": "Abbrechen", "cleanChangesLabel": "&&Änderungen bereinigen", "commit": "Commit", "commitAll": "Commit für alle ausführen", @@ -22,16 +23,21 @@ "confirmUndoMessage": "Möchten Sie alle Änderungen bereinigen?", "dirtyTreeCheckout": "Auschecken nicht möglich. Sie müssen Ihre Arbeit zunächst bestätigen oder bereitstellen.", "dirtyTreePull": "Pull nicht möglich. Sie müssen Ihre Arbeit zunächst bestätigen oder bereitstellen.", + "do you want to continue": "Möchten Sie fortfahren?", "init": "Init", "irreversible": "Diese Aktion kann nicht rückgängig gemacht werden.", + "never again": "OK, nicht mehr anzeigen", + "ok": "OK", "openChange": "Änderung öffnen", "openFile": "Datei öffnen", "publish": "Veröffentlichen", "publishPickMessage": "Remotespeicherort auswählen, an dem der Branch \"{0}\" veröffentlicht wird:", + "pushToRemote": "Push zu...", + "pushToRemotePickMessage": "Remoteauswahl zum Pushen des Branches \"{0}\":", "refresh": "Aktualisieren", "stageAllChanges": "Alle bereitstellen", "stageChanges": "Phase", - "sureSync": "Möchten Sie Ihr Git-Repository synchronisieren?", + "sync is unpredictable": "Mit dieser Aktion werden Commits per Push und Pull an und von \"{0}\" übertragen.", "undoAllChanges": "Alle bereinigen", "undoChanges": "Bereinigen", "undoLastCommit": "Letzten Commit rückgängig machen", diff --git a/i18n/deu/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/deu/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..e17b9389cf1 --- /dev/null +++ b/i18n/deu/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Kopieren" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 07eaf36be9f..ab0bf98629f 100644 --- a/i18n/deu/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Konfigurieren Sie Globmuster zum Ausschließen von Dateien und Ordnern in Suchvorgängen. Alle Globmuster werden von der files.exclude-Einstellung geerbt.", "exclude.boolean": "Das Globmuster, mit dem Dateipfade verglichen werden sollen. Legen Sie diesen Wert auf \"true\" oder \"false\" fest, um das Muster zu aktivieren bzw. zu deaktivieren.", "exclude.when": "Zusätzliche Überprüfung der gleichgeordneten Elemente einer übereinstimmenden Datei. Verwenden Sie \"$(basename)\" als Variable für den übereinstimmenden Dateinamen.", + "findInFiles": "In Dateien suchen", "findInFolder": "In Ordner suchen", "name": "Suchen", "openAnythingHandlerDescription": "Zu Datei wechseln", "openSymbolDescriptionNormal": "Zu Symbol im Arbeitsbereich wechseln", "search.quickOpen.includeSymbols": "Konfigurieren Sie diese Option, um Ergebnisse aus einer globalen Symbolsuche in die Dateiergebnisse für Quick Open einzuschließen.", "searchConfigurationTitle": "Suchen", + "showSearchViewlet": "Suche anzeigen", "showTriggerActions": "Zu Symbol im Arbeitsbereich wechseln...", "view": "Anzeigen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/deu/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 82444ba4e1b..92d7a2aa973 100644 --- a/i18n/deu/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "Entfernen", "file.replaceAll.label": "Alle ersetzen", "findInFolder": "In Ordner suchen", - "focusNextInputbox": "Fokus im nächsten Eingabefeld", - "focusPreviousInputbox": "Fokus im vorherigen Eingabefeld", + "focusNextInputBox": "Fokus im nächsten Eingabefeld", + "focusPreviousInputBox": "Fokus im vorherigen Eingabefeld", "match.replace.label": "Ersetzen", "nextSearchTerm": "Nächsten Suchbegriff anzeigen", "previousSearchTerm": "Vorherigen Suchbegriff anzeigen", - "replaceInFiles": "In Dateien ersetzen", - "showSearchViewlet": "Suche anzeigen" + "replaceInFiles": "In Dateien ersetzen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 4a034fc1b90..937c64a154e 100644 --- a/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "Der gestartete Prozess ist nicht mehr vorhanden. Wenn der Task Hintergrundtasks erzeugt hat, kann das Beenden von VS Code ggf. zu verwaisten Prozessen führen.", "TestAction.label": "Testtask ausführen", "manyMarkers": "mehr als 99", + "problems": "Probleme", "taskCommands": "Task ausführen", "tasks": "Tasks", "tasksCategory": "Aufgaben" diff --git a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 8613a833589..7c61dc84b31 100644 --- a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Der Pfad der Shell, den das Terminal unter Windows verwendet. Wenn Shells aus dem Lieferumfang von Windows (cmd, PowerShell oder Bash für Ubuntu) verwendet werden, sollten Sie \"C:Windowssysnative\" dem Pfad \"C:WindowsSystem32\" vorziehen, um die 64-Bit-Versionen zu verwenden.", "terminal.integrated.shellArgs.linux": "Die Befehlszeilenargumente, die für das Linux-Terminal verwendet werden sollen.", "terminal.integrated.shellArgs.osx": "Die Befehlszeilenargumente, die für das OS X-Terminal verwendet werden sollen.", + "terminal.integrated.shellArgs.windows": "Die Befehlszeilenargumente, die im Windows-Terminal verwendet werden sollen.", "terminalCategory": "Terminal", "terminalIntegratedConfigurationTitle": "Integriertes Terminal", "viewCategory": "Anzeigen" diff --git a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 7d11d81c730..a6855568bef 100644 --- a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Ausgewählten Text im aktiven Terminal ausführen", "workbench.action.terminal.scrollDown": "Nach unten scrollen (Zeile)", "workbench.action.terminal.scrollDownPage": "Nach unten scrollen (Seite)", + "workbench.action.terminal.scrollToBottom": "Bildlauf nach unten", + "workbench.action.terminal.scrollToTop": "Bildlauf nach oben", "workbench.action.terminal.scrollUp": "Nach oben scrollen (Zeile)", "workbench.action.terminal.scrollUpPage": "Nach oben scrollen (Seite)", "workbench.action.terminal.switchTerminalInstance": "Terminalinstanz umschalten", diff --git a/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index f464d7f01b9..4477f299f4c 100644 --- a/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Schließen", - "insiderBuilds": "Insider-Builds werden zu täglichen Builds!", + "insiderBuilds": "Tägliche Insider-Builds und Releases!", "license": "Lizenz lesen", "licenseChanged": "Unsere Lizenzbedingungen haben sich geändert. Bitte lesen Sie sie.", "neverShowAgain": "Nicht mehr anzeigen", diff --git a/i18n/deu/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/deu/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..3ba51e44358 --- /dev/null +++ b/i18n/deu/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Cursor oberhalb/unterhalb hinzufügen", + "watermark.moveLines": "Linien nach oben/unten verschieben", + "watermark.quickOpen": "Zu Datei wechseln", + "watermark.showCommands": "Befehlspalette", + "watermark.toggleTerminal": "Terminal umschalten", + "watermark.unboundCommand": "Ungebunden" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..ce717c0e772 --- /dev/null +++ b/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "Der Erweiterungshost wurde unerwartet beendet. Bitte laden Sie das Fenster erneut, um ihn wiederherzustellen.", + "extensionHostProcess.error": "Fehler vom Erweiterungshost: {0}", + "extensionHostProcess.startupFail": "Der Erweiterungshost wurde nicht innerhalb von 10 Sekunden gestartet. Dies stellt ggf. ein Problem dar.", + "extensionHostProcess.startupFailDebug": "Der Erweiterungshost wurde nicht innerhalb von 10 Sekunden gestartet. Möglicherweise wurde er in der ersten Zeile beendet und benötigt einen Debugger, um die Ausführung fortzusetzen.", + "extensionUnderDevelopment": "Die Entwicklungserweiterung unter {0} wird geladen.", + "overwritingExtension": "Die Erweiterung \"{0}\" wird mit \"{1}\" überschrieben." +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/deu/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index c2d67ccb62a..0ff2c738412 100644 --- a/i18n/deu/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/deu/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": ".NET Framework 4.5 herunterladen", "netVersionError": "Microsoft .NET Framework 4.5 ist erforderlich. Klicken Sie auf den Link, um die Anwendung zu installieren.", + "neverShowAgain": "Nicht mehr anzeigen", "trashFailed": "Fehler beim Verschieben von \"{0}\" in den Papierkorb." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/deu/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..617ca4237ae --- /dev/null +++ b/i18n/deu/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "Fehler beim Speichern von \"{0}\": {1}.", + "saveFileFirst": "Die Datei wurde geändert. Speichern Sie sie zuerst, bevor Sie sie mit einer anderen Codierung erneut öffnen." +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/deu/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..bed410ef08f --- /dev/null +++ b/i18n/deu/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Alle Dateien", + "cancel": "Abbrechen", + "dontSave": "&&Nicht speichern", + "moreFile": "...1 weitere Datei wird nicht angezeigt", + "moreFiles": "...{0} weitere Dateien werden nicht angezeigt", + "noExt": "Keine Erweiterung", + "save": "&&Speichern", + "saveAll": "&&Alle speichern", + "saveChangesDetail": "Ihre Änderungen gehen verloren, wenn Sie diese nicht speichern.", + "saveChangesMessage": "Möchten Sie die Änderungen speichern, die Sie an \"{0}\" vorgenommen haben?", + "saveChangesMessages": "Möchten Sie die an den folgenden {0}-Dateien vorgenommenen Änderungen speichern?" +} \ No newline at end of file diff --git a/i18n/esn/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/esn/extensions/typescript/out/typescriptServiceClient.i18n.json index d5353d8d187..f9e5aa0ea25 100644 --- a/i18n/esn/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/esn/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -11,7 +11,7 @@ "moreInformation": "Más información", "neverCheckLocalVesion": "No comprobar nunca la versión del área de trabajo", "noServerFound": "La ruta de acceso {0} no apunta a una instalación válida de tsserver. Las características del lenguaje TypeScript se deshabilitan.", - "serverCouldNotBeStarted": "El servidor del lenguaje TypeScript no se pudo iniciar. El mensaje de error es: {0}", + "serverCouldNotBeStarted": "El servidor de lenguaje TypeScript no se pudo iniciar. El mensaje de error es: {0}", "serverDied": "El servicio de lenguaje Typescript finalizó de forma inesperada cinco veces en los últimos cinco minutos. Considere la posibilidad de abrir un informe de errores.", "serverDiedAfterStart": "El servicio de lenguaje TypeScript finalizó de forma inesperada cinco veces después de haberse iniciado y no se reiniciará. Abra un informe de errores.", "updateGlobalWorkspaceCheck": "La configuración del usuario de \"typescript.check.workspaceVersion\" se actualizó a false.", @@ -20,6 +20,6 @@ "updatedtsdk": "La configuración del área de trabajo de \"typescript.tsdk\" se actualizó a {0}.", "use": "Usar área de trabajo ({0})", "useBundled": "Usar empaquetado ({0})", - "versionMismatch": "Se ha detectado una incoherencia de versión entre el compilador TSC instalado globalmente ({0}) y el servicio de lenguaje de VS Code ({1}). Esto puede dar lugar a errores de compilación incoherente.", + "versionMismatch": "Las versiones no coinciden; global tsc ({0}) != servicio de lenguaje de VS Code ({1}). Pueden producirse errores de compilación incoherente.", "versionNumber.custom": "personalizada" } \ No newline at end of file diff --git a/i18n/esn/extensions/typescript/package.i18n.json b/i18n/esn/extensions/typescript/package.i18n.json index 1bd8d523bff..40f142f3e7e 100644 --- a/i18n/esn/extensions/typescript/package.i18n.json +++ b/i18n/esn/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Define el tratamiento del espacio después de un delimitador de coma", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Define el tratamiento del espacio después de la palabra clave function para las funciones anónimas", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Define el tratamiento del espacio después de las palabras clave en una instrucción de flujo de control", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Define el tratamiento del espacio después de la llave de apertura y antes de la llave de cierre de expresiones JSX. Requiere TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Define el tratamiento del espacio después de los corchetes de apertura y antes de los corchetes de cierre con contenido", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Define el tratamiento del espacio después de los paréntesis de apertura y antes de los paréntesis de cierre con contenido", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Define el tratamiento del espacio después de la llave de apertura y antes de la llave de cierre de cadenas de plantilla. Requiere TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": " Define el tratamiento del espacio después de punto y coma en una instrucción for", "format.insertSpaceBeforeAndAfterBinaryOperators": "Define el tratamiento del espacio después de un operador binario", "format.placeOpenBraceOnNewLineForControlBlocks": "Define si una llave de apertura se incluye en una nueva línea para los bloques de control o no", @@ -18,6 +20,7 @@ "javascript.validate.enable": "Habilitar o deshabilitar la validación de JavaScript", "typescript.check.tscVersion": "Compruebe si un compilador de TypeScript de instalación global (p. ej., tsc) difiere del servicio de lenguaje de TypeScript usado.", "typescript.check.workspaceVersion": "Compruebe si hay una versión de TypeScript disponible en el área de trabajo.", + "typescript.experimentalAutomaticTypeAcquisition": "Habilita la adquisición de tipos automática. Requiere TypeScript >= 2.0.6 y reiniciar después del cambio.", "typescript.reloadProjects.title": "Recargar proyecto de TypeScript", "typescript.tsdk.desc": "Especifica la ruta de acceso de carpeta que contiene los archivos lib*.d.ts y tsserver que se van a usar.", "typescript.tsdk_version.desc": "Especifica la versión de tsserver. Solo es necesario si tsserver no se ha instalado con npm.", diff --git a/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json index f24df86e223..bf1caf0dce2 100644 --- a/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Controla el tamaño de fuente en píxeles.", "fontWeight": "Controla el grosor de la fuente.", "formatOnType": "Controla si el editor debe dar formato automáticamente a la línea después de escribirla", + "glyphMargin": "Controla si el editor debe representar el margen de glifo vertical. El margen de glifo se usa, principalmente, para depuración.", "hideCursorInOverviewRuler": "Controla si el cursor debe ocultarse en la regla de visión general.", "ignoreTrimWhitespace": "Controla si el editor de diferencias muestra los cambios de espacio inicial o espacio final como diferencias.", "insertSpaces": "Insertar espacios al presionar TAB. Este valor se invalida en función del contenido del archivo cuando `editor.detectIndentation` está activado.", @@ -40,7 +41,9 @@ "selectionHighlight": "Controla si el editor debería destacar coincidencias similares a la selección", "sideBySide": "Controla si el editor de diferencias muestra las diferencias en paralelo o alineadas.", "snippetSuggestions": "Controla si se muestran los fragmentos de código con otras sugerencias y cómo se ordenan.", - "stablePeek": "Mantiene abiertos los editores de inspección incluso al hacer doble clic en su contenido o presionar Escape.", + "stablePeek": "Mantiene abierto el editor interactivo incluso al hacer doble clic en su contenido o presionar Escape.", + "suggestFontSize": "Tamaño de fuente para el widget de sugerencias", + "suggestLineHeight": "Alto de línea para el widget de sugerencias", "suggestOnTriggerCharacters": "Controla si las sugerencias deben aparecer de forma automática al escribir caracteres desencadenadores", "tabCompletion": "Inserta fragmentos de código cuando el prefijo coincide. Funciona mejor si la opción 'quickSuggestions' no está habilitada.", "tabSize": "El número de espacios a los que equivale una tabulación. Este valor se invalida según el contenido del archivo cuando `editor.detectIndentation` está activado.", diff --git a/i18n/esn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/esn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 0f2e0c7ec5b..9b39190b2fa 100644 --- a/i18n/esn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/esn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Abrir definición en el lateral", "actions.previewDecl.label": "Ver la definición", "meta.title": " – {0} definiciones", - "multipleResults": "Haga clic para mostrar las {0} definiciones encontradas." + "multipleResults": "Haga clic para mostrar {0} definiciones." } \ No newline at end of file diff --git a/i18n/esn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/esn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 6cb9f634603..e9345c53e71 100644 --- a/i18n/esn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/esn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Mostrar correcciones", + "quickFixWithKb": "Mostrar correcciones ({0})", "quickfix.trigger.label": "Corrección rápida" } \ No newline at end of file diff --git a/i18n/esn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/esn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 384ee0410cf..87286a5e3cd 100644 --- a/i18n/esn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/esn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "El elemento de menú hace referencia al mismo comando que el comando predeterminado y el comando alternativo", "menuId.invalid": "`{0}` no es un identificador de menú válido", "menus.editorContext": "El menú conextual del editor", + "menus.editorTabContext": "Menú contextual de pestañas del editor", "menus.editorTitle": "El menú de título del editor", "menus.explorerContext": "El menú contextual del explorador de archivos", "missing.altCommand": "El elemento de menú hace referencia a un comando alternativo `{0}` que no está definido en la sección 'commands'.", diff --git a/i18n/esn/src/vs/platform/environment/node/argv.i18n.json b/i18n/esn/src/vs/platform/environment/node/argv.i18n.json index 17e98fb5874..47ff3b66a98 100644 --- a/i18n/esn/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/esn/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Abra un editor de diferencias. Necesita pasar dos rutas de acceso a archivos como argumentos.", "disableExtensions": "Deshabilite todas las extensiones instaladas.", + "disableGPU": "Deshabilita la aceleración de hardware de GPU.", "extensionHomePath": "Establezca la ruta de acceso raíz para las extensiones.", "goto": "Abra el archivo en la ruta de acceso en la línea y columna (agregue :line[:column] a la ruta de acceso).", "gotoValidation": "Los argumentos del modo `--goto` deben tener el formato \"ARCHIVO(:LÍNEA(:COLUMNA))\".", @@ -19,6 +20,7 @@ "paths": "rutas de acceso", "performance": "Comience con el comando 'Developer: Startup Performance' habilitado.", "reuseWindow": "Fuerce la apertura de un archivo o carpeta en la última ventana activa.", + "showVersions": "Muestra las versiones de las extensiones instaladas, cuando se usa --list-extension.", "uninstallExtension": "Desinstala una extensión.", "usage": "Uso", "userDataDir": "Especifica el directorio en que se conservan los datos de usuario; es útil cuando se ejecuta como raíz.", diff --git a/i18n/esn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/esn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 3b58d5ff923..a8ab0dc3ecc 100644 --- a/i18n/esn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/esn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "la propiedad `{0}` es obligatoria y debe ser de tipo \"string\"", "extensionDescription.version": "la propiedad `{0}` es obligatoria y debe ser de tipo \"string\"", "vscode.extension.activationEvents": "Eventos de activación de la extensión VS Code.", + "vscode.extension.badges": "Matriz de distintivos que se muestran en la barra lateral de la página de extensiones de Marketplace.", + "vscode.extension.badges.description": "Descripción del distintivo.", + "vscode.extension.badges.href": "Vínculo del distintivo.", + "vscode.extension.badges.url": "URL de la imagen del distintivo.", "vscode.extension.categories": "Categorías que usa la galería de VS Code para clasificar la extensión.", "vscode.extension.contributes": "Todas las contribuciones de la extensión VS Code representadas por este paquete.", "vscode.extension.displayName": "Nombre para mostrar de la extensión que se usa en la galería de VS Code.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Banner usado en VS Code Marketplace.", "vscode.extension.galleryBanner.color": "Color del banner en el encabezado de página de VS Code Marketplace.", "vscode.extension.galleryBanner.theme": "Tema de color de la fuente que se usa en el banner.", + "vscode.extension.icon": "Ruta de acceso a un icono de 128 x 128 píxeles.", + "vscode.extension.preview": "Establece la extensión que debe marcarse como versión preliminar en Marketplace.", "vscode.extension.publisher": "El publicador de la extensión VS Code.", "vscode.extension.scripts.prepublish": "Script que se ejecuta antes de publicar el paquete como extensión VS Code." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/esn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 7a659c3733c..9caf1c7c012 100644 --- a/i18n/esn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/esn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Alternar posición de la barra lateral", + "toggleLocation": "Alternar la ubicación de la barra lateral", "view": "Ver" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/esn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 88bc4a797ec..4dbb5eefe2d 100644 --- a/i18n/esn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/esn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Cerrar", "focusPanel": "Centrarse en el panel", + "toggleMaximizedPanel": "Alternar el panel maximizado", "togglePanel": "Alternar panel", "view": "Ver" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/esn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 9c89dca6470..7b26e5ce6b8 100644 --- a/i18n/esn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/esn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Presione \"Entrar\" para confirmar su entrada o \"Esc\" para cancelar", "inputModeEntryDescription": "{0} (Presione \"Entrar\" para confirmar o \"Esc\" para cancelar)", "noResultsFound1": "No se encontraron resultados", - "quickOpenInput": "Escriba '?' para obtener ayuda con las acciones que puede realizar desde aquí" + "pickHistory": "Seleccione una entrada del editor para quitarla del historial", + "quickOpenInput": "Escriba '?' para obtener ayuda con las acciones que puede realizar desde aquí", + "removeFromEditorHistory": "Quitar del historial de editores" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json index 8cf7acd019e..6b4c43d07db 100644 --- a/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Cerrar carpeta", "closeMessages": "Cerrar mensajes de notificación", "closeWindow": "Cerrar ventana", + "current": "Ventana actual", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "archivos", "folders": "carpetas", diff --git a/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json index 37f52c31cd8..b70227e8ab2 100644 --- a/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "Controla si una ventana se debe restaurar al modo de pantalla completa si se salió de ella en dicho modo.", "showEditorTabs": "Controla si los editores abiertos se deben mostrar o no en pestañas.", "showIcons": "Controla si los editores abiertos deben mostrarse o no con un icono. Requiere que también se habilite un tema de icono.", + "sideBarLocation": "Controla la ubicación de la barra lateral. Puede mostrarse a la izquierda o a la derecha del área de trabajo.", + "statusBarVisibility": "Controla la visibilidad de la barra de estado en la parte inferior del área de trabajo.", "updateChannel": "Configure si recibirá actualizaciones automáticas de un canal de actualización. Es necesario reiniciar tras el cambio.", "updateConfigurationTitle": "Actualización", "view": "Ver", diff --git a/i18n/esn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index cf81550d60b..7434f0fa825 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Escriba la condición del punto de interrupción para la línea {0}. El programa solo se detendrá aquí si esta condición es true. Presione ENTRAR para aceptar o Esc para cancelar.", - "breakpointWidgetPlaceholder": "El punto de interrupción de la línea {0} solo se detendrá si esta condición es true. Presione \"ENTRAR\" para aceptar o \"Esc\" para cancelar." + "breakpointWidgetAriaLabel": "El programa solo se detendrá aquí si esta condición es true. Presione ENTRAR para aceptar o Esc para cancelar.", + "breakpointWidgetExpressionPlaceholder": "Interrumpir cuando la expresión se evalúe como true", + "breakpointWidgetHitCountAriaLabel": "El programa solo se detendrá aquí si se alcanza el número de llamadas. Presione ENTRAR para aceptar o Esc para cancelar.", + "breakpointWidgetHitCountPlaceholder": "Interrumpir cuando se alcance el número de llamadas", + "expression": "Expresión", + "hitCount": "Número de llamadas" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index da08287c602..3de6b1ab2c9 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Activar puntos de interrupción", - "addConditionalBreakpoint": "Agregar punto de interrupción condicional", + "addConditionalBreakpoint": "Agregar punto de interrupción condicional...", "addFunctionBreakpoint": "Agregar punto de interrupción de función", "addToWatchExpressions": "Agregar a inspección", "addWatchExpression": "Agregar expresión", "clearRepl": "Borrar consola", - "conditionalBreakpointEditorAction": "Depuración: Punto de interrupción condicional", + "conditionalBreakpointEditorAction": "Depuración: agregar punto de interrupción condicional...", "continueDebug": "Continuar", "deactivateBreakpoints": "Desactivar puntos de interrupción", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "Enfocar consola de depuración", "disableAllBreakpoints": "Deshabilitar todos los puntos de interrupción", "disconnectDebug": "Desconectar", - "editConditionalBreakpoint": "Editar punto de interrupción", + "editConditionalBreakpoint": "Editar punto de interrupción...", "enableAllBreakpoints": "Habilitar todos los puntos de interrupción", "launchJsonNeedsConfigurtion": "Configurar o reparar 'launch.json'", "openLaunchJson": "Abrir {0}", diff --git a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 7bb238d8257..8416e40b8e2 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Permite establecer puntos de interrupción para todos los archivos, independientemente de la extensión.", "debug": "Depurar", "debugCategory": "Depurar", + "debugConfigurationTitle": "Depurar", "debugErrorEditor": "Depurar error", "debugPanel": "Consola de depuración", "launchConfigDoesNotExist": "La configuración de inicio '{0}' no existe.", + "openExplorerOnEnd": "Abrir automáticamente el viewlet del explorador al final de la sesión de depuración.", "toggleDebugPanel": "Consola de depuración", "toggleDebugViewlet": "Mostrar depuración", "view": "Ver" diff --git a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 87895d961cd..fbdefd1b1c9 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "REPL - Aceptar entrada", "actions.repl.historyNext": "Historial siguiente", "actions.repl.historyPrevious": "Historial anterior", - "replAriaLabel": "Panel del bucle de lectura-evaluación-impresión" + "replAriaLabel": "Panel de read–eval–print loop" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index c3af73dd255..d42fc7ac971 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "Clic para seguir (Ctrl + clic se abre en el lateral)", "fileLinkMac": "Clic para seguir (Cmd + clic se abre en el lateral)", - "replExpressionAriaLabel": "La expresión {0} tiene el valor {1}, bucle de lectura-evaluación-impresión, depuración", - "replKeyValueOutputAriaLabel": "La variable de salida {0} tiene el valor {1}, bucle de lectura-evaluación-impresión, depuración", - "replValueOutputAriaLabel": "{0}, bucle de lectura-evaluación-impresión, depuración", - "replVariableAriaLabel": "La variable {0} tiene el valor {1}, bucle de lectura-evaluación-impresión, depuración", + "replExpressionAriaLabel": "La expresión {0} tiene el valor {1}, read–eval–print loop, depuración", + "replKeyValueOutputAriaLabel": "La variable de salida {0} tiene el valor {1}, read–eval–print loop, depuración", + "replValueOutputAriaLabel": "{0}, read–eval–print loop, depuración", + "replVariableAriaLabel": "La variable {0} tiene el valor {1}, read–eval–print loop, depuración", "stateCapture": "El estado del objeto se captura desde la primera evaluación" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 70c9d603e0c..36c4b0835a9 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "No se puede crear el archivo \"launch.json\" dentro de la carpeta \".vscode\" ({0}).", - "app.launch.json.configurations": "Lista de configuraciones. Agregue configuraciones nuevas o edite las ya existentes.", + "app.launch.json.configurations": "Lista de configuraciones. Agregue configuraciones nuevas o edite las ya existentes con IntelliSense.", "app.launch.json.title": "Iniciar", "app.launch.json.version": "Versión de este formato de archivo.", "debugNoType": "El valor \"type\" del adaptador de depuración no se puede omitir y debe ser de tipo \"string\".", "duplicateDebuggerType": "El tipo de depuración '{0}' ya está registrado y tiene el atributo '{1}', se ignora el atributo '{1}'.", - "interactiveVariableNotFound": "El adaptador {0} no contribuye a la variable {1} que se especifica en la configuración de inicio.", "selectDebug": "Seleccionar entorno", "vscode.extension.contributes.breakpoints": "Aporta puntos de interrupción.", "vscode.extension.contributes.breakpoints.language": "Permite puntos de interrupción para este lenguaje.", diff --git a/i18n/esn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json index efe3819a6bd..4ecc3417df6 100644 --- a/i18n/esn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json @@ -5,8 +5,8 @@ // Do not edit this file. It is machine generated. { "emmetConfigurationTitle": "Emmet", - "emmetExclude": "Matriz de lenguajes donde no deben expandirse las abreviaciones Emmet.", + "emmetExclude": "Matriz de lenguajes donde no deben expandirse la abreviación Emmet.", "emmetPreferences": "Preferencias usadas para modificar el comportamiento de algunas acciones y resoluciones de Emmet.", "emmetSyntaxProfiles": "Defina el perfil de la sintaxis especificada o use su propio perfil con reglas específicas.", - "triggerExpansionOnTab": "Cuando se habilita, se expanden la abreviaturas de Emmet al presionar la tecla TAB." + "triggerExpansionOnTab": "Cuando se habilita, se expande la abreviación Emmet al presionar la tecla TAB." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json b/i18n/esn/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json index 85c054fd717..8c2e59c16b2 100644 --- a/i18n/esn/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "console.title": "Consola de VS Code", - "linux.term.failed": "Error de \"{0}\" con el código de salida {1}", + "linux.term.failed": "Error de '{0}' con el código de salida {1}", "mac.terminal.script.failed": "No se pudo ejecutar el script '{0}'. Código de salida: {1}.", "mac.terminal.type.not.supported": "No se admite '{0}'", "press.any.key": "Presione cualquier tecla para continuar..." diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..57ce852dcf4 --- /dev/null +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Abrir", + "extensions.openSide": "Abrir en el lateral" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 504def5b9c8..f150dd988f0 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Nombre", "debuggers": "Depuradores ({0})", "default": "Predeterminado", + "dependencies": "Dependencias", "description": "Descripción", "details": "Detalles", + "extension id": "Identificador de la extensión", "file extensions": "Extensiones de archivo", "grammar": "Gramática", + "install count": "Número de instalaciones", "keyboard shortcuts": "&&Métodos abreviados de teclado", "language id": "Id.", "language name": "Nombre", "languages": "Lenguajes ({0})", "license": "Licencia", "menuContexts": "Contextos de menú", + "name": "Nombre de la extensión", "noChangelog": "No hay ningún registro CHANGELOG disponible.", "noReadme": "No hay ningún archivo LÉAME disponible.", + "publisher": "Nombre del editor", + "rating": "Clasificación", "setting name": "Nombre", "settings": "Configuración ({0})", "snippets": "Fragmentos", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 3319a0aeef1..082ce84f933 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Configurar extensiones deshabilitadas", + "disableWorkspaceExtensions": "Configurar extensiones deshabilitadas (área de trabajo)", "extension": "Extensión", "extensions": "Extensiones", "extensionsAutoUpdate": "Actualizar extensiones automáticamente", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 7e933186212..08e1cf53aab 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Las recomendaciones solo están disponibles en una carpeta de área de trabajo.", "OpenExtensionsFile.failed": "No se puede crear el archivo \"extensions.json\" dentro de la carpeta \".vscode\" ({0}).", + "OpenGlobalExtensionsStorageFile.failed": "No se puede crear el archivo \"extensions.json\" en la carpeta '{0}' ({1}).", "builtin": "Integrada", "clearExtensionsInput": "Borrar entrada de extensiones", - "configureWorkspaceRecommendedExtensions": "Configurar extensiones recomendadas del área de trabajo", + "configureWorkspaceRecommendedExtensions": "Configurar extensiones recomendadas (área de trabajo)", "deleteSure": "¿Seguro que quiere desinstalar '{0}'?", "enableAction": "Habilitar", "installAction": "Instalar", @@ -19,6 +20,7 @@ "postUninstallMessage": "{0} se desinstaló correctamente. Reinicie para desactivarlo.", "restart": "Para habilitar esta extensión, esta ventana de VS Code se debe reiniciar.\n\n¿Desea continuar?", "restartNow": "Reiniciar ahora", + "showDisabledExtensions": "Mostrar extensiones deshabilitadas", "showInstalledExtensions": "Mostrar extensiones instaladas", "showOutdatedExtensions": "Mostrar extensiones obsoletas", "showPopularExtensions": "Mostrar extensiones conocidas", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index af09009b5fb..cda8bd0a90f 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Se esperaba el formato '${publisher}.${name}'. Ejemplo: 'vscode.csharp'.", "app.extensions.json.recommendations": "Lista de recomendaciones de extensiones. El identificador de una extensión es siempre '${publisher}.${name}'. Por ejemplo: 'vscode.csharp'.", - "app.extensions.json.title": "Extensiones" + "app.extensions.json.title": "Extensiones", + "app.extensionsstorage.json.disabled": "Lista de extensiones deshabilitadas. El identificador de una extensión es siempre '${publisher}.${name}'. Por ejemplo: 'vscode.csharp'.", + "app.extensionsstorage.json.title": "Almacén de extensiones" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 1304c3aa9b9..ee7fedb8899 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Criterio de ordenación: ↑", "descending": "Criterio de ordenación: ↓", "extensions": "Extensiones", + "no extensions found": "No se encontraron extensiones.", "outdatedExtensions": "{0} extensiones obsoletas", "searchExtensions": "Buscar extensiones en Marketplace", "sort by installs": "Criterio de ordenación: Número de instalaciones", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index ddca2eb32cb..9599f1f53bb 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Extensiones", - "extensionsInstalling": "Extensiones ({0} instalando...)", - "multipleIssues": "Extensiones ({0} problemas)", - "multipleUpdates": "Extensiones ({0} actualizaciones disponibles)", - "oneIssue": "Extensiones (1 problema)", - "oneUpdate": "Extensiones (1 actualización disponible)" + "active": "Activo", + "disabled": "Deshabilitado", + "disabledWorkspace": "Deshabilitado (área de trabajo)" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/esn/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 7342efe547a..b6e78f92aad 100644 --- a/i18n/esn/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Abrir en el lateral", "pasteFile": "Pegar", "permDelete": "Eliminar permanentemente", + "pickHistory": "Seleccione una entrada del historial del editor para comparar", "refresh": "Actualizar", "refreshExplorer": "Actualizar Explorador", "rename": "Cambiar nombre", diff --git a/i18n/esn/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/esn/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 3fb6215ed28..7847fed2663 100644 --- a/i18n/esn/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Error de autenticación en GIT remoto.", + "cancel": "Cancelar", "cleanChangesLabel": "&&Limpiar cambios", "commit": "Commit", "commitAll": "Confirmar todo", @@ -22,16 +23,21 @@ "confirmUndoMessage": "¿Seguro que quiere limpiar todos los cambios?", "dirtyTreeCheckout": "No se puede finalizar. Primero confirme la tarea o haga una copia intermedia de ella.", "dirtyTreePull": "No se puede extraer. Primero confirme la tarea o haga una copia intermedia de ella.", + "do you want to continue": "¿Está seguro de que quiere continuar?", "init": "Iniciar", "irreversible": "Esta acción es irreversible.", + "never again": "De acuerdo, no volver a mostrar este mensaje", + "ok": "Aceptar", "openChange": "Abrir cambio", "openFile": "Abrir archivo", "publish": "Publicar", "publishPickMessage": "Seleccionar un elemento remoto para publicar la rama '{0}':", + "pushToRemote": "Insertar en...", + "pushToRemotePickMessage": "Elija un origen remoto donde insertar la rama '{0}':", "refresh": "Actualizar", "stageAllChanges": "Almacenar todo provisionalmente", "stageChanges": "Almacenar provisionalmente", - "sureSync": "¿Está seguro de que quiere sincronizar el repositorio GIT?", + "sync is unpredictable": "Esta acción insertará y extraerá confirmaciones en '{0}'.", "undoAllChanges": "Limpiar todo", "undoChanges": "Limpiar", "undoLastCommit": "Deshacer última confirmación", diff --git a/i18n/esn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/esn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..027c80cca30 --- /dev/null +++ b/i18n/esn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Copiar" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 822a4b4e17d..63b0f61e641 100644 --- a/i18n/esn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Configure patrones globales para excluir archivos y carpetas de las búsquedas. Hereda todos los patrones globales de la configuración files.exclude.", "exclude.boolean": "El patrón global con el que se harán coincidir las rutas de acceso de los archivos. Establézcalo en true o false para habilitarlo o deshabilitarlo.", "exclude.when": "Comprobación adicional de los elementos del mismo nivel de un archivo coincidente. Use $(nombreBase) como variable para el nombre de archivo que coincide.", + "findInFiles": "Buscar en archivos", "findInFolder": "Buscar en carpeta", "name": "Búsqueda", "openAnythingHandlerDescription": "Ir al archivo", "openSymbolDescriptionNormal": "Ir al símbolo en el área de trabajo", "search.quickOpen.includeSymbols": "Configurar para incluir los resultados de una búsqueda global de símbolos en los resultados de archivos de Quick Open.", "searchConfigurationTitle": "Buscar", + "showSearchViewlet": "Mostrar búsqueda", "showTriggerActions": "Ir al símbolo en el área de trabajo...", "view": "Ver" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 3fb7e268eb2..369cd774f3b 100644 --- a/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "Quitar", "file.replaceAll.label": "Reemplazar todo", "findInFolder": "Buscar en carpeta", - "focusNextInputbox": "Enfocar cuadro de entrada siguiente", - "focusPreviousInputbox": "Enfocar cuadro de entrada anterior", + "focusNextInputBox": "Enfocar cuadro de entrada siguiente", + "focusPreviousInputBox": "Enfocar cuadro de entrada anterior", "match.replace.label": "Reemplazar", "nextSearchTerm": "Mostrar término de búsqueda siguiente", "previousSearchTerm": "Mostrar término de búsqueda anterior", - "replaceInFiles": "Reemplazar en archivos", - "showSearchViewlet": "Mostrar búsqueda" + "replaceInFiles": "Reemplazar en archivos" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 279d06bc75b..c3055f0a937 100644 --- a/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "El proceso iniciado ya no existe. Si la tarea generó procesos en segundo plano al salir de VS Code, puede dar lugar a procesos huérfanos.", "TestAction.label": "Ejecutar tarea de prueba", "manyMarkers": "Más de 99", + "problems": "Problemas", "taskCommands": "Ejecutar tarea", "tasks": "Tareas", "tasksCategory": "Tareas" diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 8b8dc9f8744..05fb579997f 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Ruta de acceso del shell que el terminal utiliza en Windows. Cuando se usan shells incluidos en Windows (cmd, PowerShell o Bash en Ubuntu), se recomienda C:Windowssysnative en lugar de C:WindowsSystem32 para usar las versiones de 64 bits.", "terminal.integrated.shellArgs.linux": "Los argumentos de la línea de comandos que se usarán en el terminal de Linux.", "terminal.integrated.shellArgs.osx": "Los argumentos de la línea de comandos que se usarán en el terminal de OS X.", + "terminal.integrated.shellArgs.windows": "Argumentos de la línea de comandos que se usan cuando se utiliza el terminal Windows.", "terminalCategory": "Terminal", "terminalIntegratedConfigurationTitle": "Terminal integrado", "viewCategory": "Ver" diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index ad86f7e6f49..eb68197dd11 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Ejecutar texto seleccionado en el terminal activo", "workbench.action.terminal.scrollDown": "Desplazar hacia abajo (línea)", "workbench.action.terminal.scrollDownPage": "Desplazar hacia abajo (página)", + "workbench.action.terminal.scrollToBottom": "Desplazar al final", + "workbench.action.terminal.scrollToTop": "Desplazar al principio", "workbench.action.terminal.scrollUp": "Desplazar hacia arriba (línea)", "workbench.action.terminal.scrollUpPage": "Desplazar hacia arriba (página)", "workbench.action.terminal.switchTerminalInstance": "Cambiar instancia del terminal", diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json index d26407b0aa6..8c2e59c16b2 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "console.title": "Consola de VS Code", - "linux.term.failed": "Error de '{0}'. Código de salida: {1}", + "linux.term.failed": "Error de '{0}' con el código de salida {1}", "mac.terminal.script.failed": "No se pudo ejecutar el script '{0}'. Código de salida: {1}.", "mac.terminal.type.not.supported": "No se admite '{0}'", "press.any.key": "Presione cualquier tecla para continuar..." diff --git a/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 10b40180138..fac0fb29c48 100644 --- a/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Cerrar", - "insiderBuilds": "Las compilaciones de Insider se están volviendo compilaciones diarias.", + "insiderBuilds": "Compilaciones y versiones de Insider todos los días", "license": "Leer licencia", "licenseChanged": "Los términos de licencia han cambiado, revíselos.", "neverShowAgain": "No volver a mostrar", diff --git a/i18n/esn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/esn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..2c576e508f6 --- /dev/null +++ b/i18n/esn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Agregar cursores arriba/abajo", + "watermark.moveLines": "Mover líneas arriba/abajo", + "watermark.quickOpen": "Ir al archivo", + "watermark.showCommands": "Paleta de comandos", + "watermark.toggleTerminal": "Alternar terminal", + "watermark.unboundCommand": "sin enlazar" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..2a3b1ebef4c --- /dev/null +++ b/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "El host de extensiones finalizó inesperadamente. Recargue la ventana para recuperarlo.", + "extensionHostProcess.error": "Error del host de extensiones: {0}", + "extensionHostProcess.startupFail": "El host de extensiones no se inició en 10 segundos, lo cual puede ser un problema.", + "extensionHostProcess.startupFailDebug": "El host de extensiones no se inició en 10 segundos, puede que se detenga en la primera línea y necesita un depurador para continuar.", + "extensionUnderDevelopment": "Cargando la extensión de desarrollo en {0}", + "overwritingExtension": "Se va a sobrescribir la extensión {0} con {1}." +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/esn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 78fb679989d..01565372a3a 100644 --- a/i18n/esn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/esn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "Descargar .NET Framework 4.5", "netVersionError": "Requiere Microsoft .NET Framework 4.5. Siga el vínculo para instalarlo.", + "neverShowAgain": "No volver a mostrar", "trashFailed": "No se pudo mover '{0}' a la papelera" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/esn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..4cc0f6646c8 --- /dev/null +++ b/i18n/esn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "No se pudo guardar '{0}': {1}", + "saveFileFirst": "Este es un archivo con modificaciones. Guárdelo antes de volver a abrirlo con otra codificación." +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/esn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..503b213413d --- /dev/null +++ b/i18n/esn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Todos los archivos", + "cancel": "Cancelar", + "dontSave": "&&No guardar", + "moreFile": "...1 archivo más que no se muestra", + "moreFiles": "...{0} archivos más que no se muestran", + "noExt": "Sin extensión", + "save": "&&Guardar", + "saveAll": "&&Guardar todo", + "saveChangesDetail": "Los cambios se perderán si no se guardan.", + "saveChangesMessage": "¿Quiere guardar los cambios efectuados en {0}?", + "saveChangesMessages": "¿Desea guardar los cambios en los siguientes {0} archivos?" +} \ No newline at end of file diff --git a/i18n/fra/extensions/php/package.i18n.json b/i18n/fra/extensions/php/package.i18n.json index 6afa69b9f18..016784d44dd 100644 --- a/i18n/fra/extensions/php/package.i18n.json +++ b/i18n/fra/extensions/php/package.i18n.json @@ -7,5 +7,5 @@ "configuration.title": "PHP", "configuration.validate.enable": "Spécifie si la validation PHP est activée ou non.", "configuration.validate.executablePath": "Pointe vers l'exécutable PHP.", - "configuration.validate.run": "Spécifie si les vérifications lint sont exécutées au moment de l'enregistrement ou de la saisie." + "configuration.validate.run": "Spécifie si linter est exécuté au moment de l'enregistrement ou de la saisie." } \ No newline at end of file diff --git a/i18n/fra/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/fra/extensions/typescript/out/typescriptServiceClient.i18n.json index fca91c30a3a..daf26cea778 100644 --- a/i18n/fra/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/fra/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "Mise à jour du paramètre d'espace de travail 'typescript.tsdk' avec la valeur {0}", "use": "Utiliser l'espace de travail ({0})", "useBundled": "Utiliser l'ensemble d'applications ({0})", - "versionMismatch": "Une incompatibilité de version entre le compilateur tsc installé globalement ({0}) et le service de langage de VS Code ({1}) a été détecté. Cela peut entraîner des erreurs de compilation incohérentes.", + "versionMismatch": "Incompatibilité de version ! global tsc ({0}) != Service de langage de VS Code ({1}). Des erreurs de compilation incohérentes risquent de se produire", "versionNumber.custom": "personnalisé" } \ No newline at end of file diff --git a/i18n/fra/extensions/typescript/package.i18n.json b/i18n/fra/extensions/typescript/package.i18n.json index 1270d285896..1da479dd9ef 100644 --- a/i18n/fra/extensions/typescript/package.i18n.json +++ b/i18n/fra/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Définit le traitement des espaces après une virgule de délimitation", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Définit le traitement des espaces après le mot clé function pour les fonctions anonymes", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Définit le traitement des espaces après des mots clés dans une instruction de flux de contrôle", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Définit la gestion de l'espace après l'ouverture et avant la fermeture des accolades de l'expression JSX. Nécessite TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Définit le traitement des espaces après l'ouverture et avant la fermeture de crochets non vides", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Définit le traitement des espaces après l'ouverture et avant la fermeture de parenthèses non vides", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Définit la gestion de l'espace après l'ouverture et avant la fermeture des accolades de la chaîne de modèle. Nécessite TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": " Définit le traitement des espaces après un point-virgule dans une instruction for", "format.insertSpaceBeforeAndAfterBinaryOperators": "Définit le traitement des espaces après un opérateur binaire", "format.placeOpenBraceOnNewLineForControlBlocks": "Définit si une accolade ouvrante dans un bloc de contrôle est placée ou non sur une nouvelle ligne", @@ -18,6 +20,7 @@ "javascript.validate.enable": "Activer/désactiver la validation JavaScript", "typescript.check.tscVersion": "Vérifiez si un compilateur TypeScript installé globalement (par exemple tsc) est différent du service de langage TypeScript.", "typescript.check.workspaceVersion": "Vérifier si une version de TypeScript est disponible dans l'espace de travail", + "typescript.experimentalAutomaticTypeAcquisition": "Active l'acquisition de type automatique. Nécessite TypeScript >= 2.0.6 et un redémarrage, une fois le changement effectué.", "typescript.reloadProjects.title": "Recharger le projet TypeScript", "typescript.tsdk.desc": "Spécifie le chemin de dossier contenant les fichiers tsserver et lib*.d.ts à utiliser.", "typescript.tsdk_version.desc": "Spécifie la version de tsserver. Uniquement nécessaire si tsserver n'est pas installé via npm.", diff --git a/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json index 8156a94db1d..b44d227a0e5 100644 --- a/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Contrôle la taille de police en pixels.", "fontWeight": "Contrôle l'épaisseur de police.", "formatOnType": "Contrôle si l'éditeur doit automatiquement mettre en forme la ligne après la saisie", + "glyphMargin": "Contrôle si l'éditeur doit afficher la marge de glyphes verticale. La marge de glyphes sert principalement au débogage.", "hideCursorInOverviewRuler": "Contrôle si le curseur doit être masqué dans la règle d'aperçu.", "ignoreTrimWhitespace": "Contrôle si l'éditeur de différences affiche les changements liés aux espaces blancs de début ou de fin comme des différences", "insertSpaces": "Des espaces sont insérés quand vous appuyez sur la touche Tab. Ce paramètre est remplacé en fonction du contenu du fichier quand 'editor.detectIndentation' est activé.", @@ -41,6 +42,8 @@ "sideBySide": "Contrôle si l'éditeur de différences affiche les différences en mode côte à côte ou inline", "snippetSuggestions": "Contrôle si les extraits de code s'affichent en même temps que d'autres suggestions, ainsi que leur mode de tri.", "stablePeek": "Garder les éditeurs d'aperçu ouverts même si l'utilisateur double-clique sur son contenu ou appuie sur la touche Échap.", + "suggestFontSize": "Taille de police du widget de suggestion", + "suggestLineHeight": "Hauteur de ligne du widget de suggestion", "suggestOnTriggerCharacters": "Contrôle si les suggestions doivent s'afficher automatiquement durant la saisie de caractères de déclenchement", "tabCompletion": "Insérez les extraits de code quand leurs préfixes correspondent. Fonctionne mieux quand la fonctionnalité 'quickSuggestions' n'est pas activée.", "tabSize": "Nombre d'espaces correspondant à une tabulation. Ce paramètre est remplacé en fonction du contenu du fichier quand 'editor.detectIndentation' est activé.", diff --git a/i18n/fra/src/vs/editor/contrib/find/browser/findWidget.i18n.json b/i18n/fra/src/vs/editor/contrib/find/browser/findWidget.i18n.json index 544cb2635d2..25bcc8b621f 100644 --- a/i18n/fra/src/vs/editor/contrib/find/browser/findWidget.i18n.json +++ b/i18n/fra/src/vs/editor/contrib/find/browser/findWidget.i18n.json @@ -11,7 +11,7 @@ "label.noResults": "Aucun résultat", "label.previousMatchButton": "Correspondance précédente", "label.replace": "Remplacer", - "label.replaceAllButton": "Remplacer tout", + "label.replaceAllButton": "Tout remplacer", "label.replaceButton": "Remplacer", "label.toggleReplaceButton": "Changer le mode de remplacement", "label.toggleSelectionFind": "Rechercher dans la sélection", diff --git a/i18n/fra/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/fra/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 47260c0c5ff..c8a94192d56 100644 --- a/i18n/fra/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/fra/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Ouvrir la définition sur le côté", "actions.previewDecl.label": "Apercu de définition", "meta.title": " – {0} définitions", - "multipleResults": "Cliquez pour afficher les {0} définitions trouvées." + "multipleResults": "Cliquez pour afficher {0} définitions." } \ No newline at end of file diff --git a/i18n/fra/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/fra/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index ec7eb9d7590..fe2ea38567e 100644 --- a/i18n/fra/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/fra/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Afficher les correctifs", + "quickFixWithKb": "Afficher les correctifs ({0})", "quickfix.trigger.label": "Correctif rapide" } \ No newline at end of file diff --git a/i18n/fra/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/fra/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 89f71fed3f4..fdd6b9b5dde 100644 --- a/i18n/fra/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/fra/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "L'élément de menu fait référence à la même commande que la commande par défaut et la commande alt", "menuId.invalid": "'{0}' est un identificateur de menu non valide", "menus.editorContext": "Menu contextuel de l'éditeur", + "menus.editorTabContext": "Menu contextuel des onglets de l'éditeur", "menus.editorTitle": "Menu de titre de l'éditeur", "menus.explorerContext": "Menu contextuel de l'Explorateur de fichiers", "missing.altCommand": "L'élément de menu fait référence à une commande alt '{0}' qui n'est pas définie dans la section 'commands'.", diff --git a/i18n/fra/src/vs/platform/environment/node/argv.i18n.json b/i18n/fra/src/vs/platform/environment/node/argv.i18n.json index b137f89c4e4..0f0dfbbc425 100644 --- a/i18n/fra/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/fra/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Ouvrez un éditeur de différences. Nécessite de passer deux chemins de fichiers comme arguments.", "disableExtensions": "Désactivez toutes les extensions installées.", + "disableGPU": "Désactivez l'accélération matérielle du GPU.", "extensionHomePath": "Définissez le chemin racine des extensions.", "goto": "Ouvrez le fichier sur le chemin, à la ligne et dans la colonne nécessaires (ajoutez :line[:column] à path).", "gotoValidation": "Les arguments en mode '--goto' doivent être au format 'FILE(:LINE(:COLUMN))'.", @@ -19,6 +20,7 @@ "paths": "chemins", "performance": "Démarrez avec la commande 'Développeur : performance de démarrage' activée.", "reuseWindow": "Forcez l'ouverture d'un fichier ou dossier dans la dernière fenêtre active.", + "showVersions": "Affichez les versions des extensions installées en utilisant --list-extension.", "uninstallExtension": "Désinstalle une extension.", "usage": "Utilisation", "userDataDir": "Spécifie le répertoire où sont conservées les données des utilisateurs. S'avère utile pour une exécution en tant que root.", diff --git a/i18n/fra/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/fra/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 3ed20eab29f..bcb7190dc73 100644 --- a/i18n/fra/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/fra/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "la propriété '{0}' est obligatoire et doit être de type 'string'", "extensionDescription.version": "la propriété '{0}' est obligatoire et doit être de type 'string'", "vscode.extension.activationEvents": "Événements d'activation pour l'extension VS Code.", + "vscode.extension.badges": "Ensemble de badges à afficher dans la barre latérale de la page d'extensions de Marketplace.", + "vscode.extension.badges.description": "Description du badge.", + "vscode.extension.badges.href": "Lien du badge.", + "vscode.extension.badges.url": "URL de l'image du badge.", "vscode.extension.categories": "Catégories utilisées par la galerie VS Code pour catégoriser l'extension.", "vscode.extension.contributes": "Toutes les contributions de l'extension VS Code représentées par ce package.", "vscode.extension.displayName": "Nom d'affichage de l'extension utilisée dans la galerie VS Code.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Bannière utilisée dans le marketplace VS Code.", "vscode.extension.galleryBanner.color": "Couleur de la bannière de l'en-tête de page du marketplace VS Code.", "vscode.extension.galleryBanner.theme": "Thème de couleur de la police utilisée dans la bannière.", + "vscode.extension.icon": "Chemin d'une icône de 128 x 128 pixels.", + "vscode.extension.preview": "Définit l'extension à marquer en tant que préversion dans Marketplace.", "vscode.extension.publisher": "Éditeur de l'extension VS Code.", "vscode.extension.scripts.prepublish": "Le script exécuté avant le package est publié en tant qu'extension VS Code." } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/fra/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 6c562b41836..0ea0c59d765 100644 --- a/i18n/fra/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/fra/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Activer/désactiver la position de la barre latérale", + "toggleLocation": "Activer/désactiver l'emplacement de la barre latérale", "view": "Affichage" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/browser/parts/editor/titleControl.i18n.json b/i18n/fra/src/vs/workbench/browser/parts/editor/titleControl.i18n.json index fac1b293c63..7faf0f2e9e9 100644 --- a/i18n/fra/src/vs/workbench/browser/parts/editor/titleControl.i18n.json +++ b/i18n/fra/src/vs/workbench/browser/parts/editor/titleControl.i18n.json @@ -6,7 +6,7 @@ { "araLabelEditorActions": "Actions de l'éditeur", "close": "Fermer", - "closeAll": "Fermer tout", + "closeAll": "Tout fermer", "closeOthers": "Fermer les autres", "closeRight": "Fermer à droite", "keepOpen": "Garder ouvert", diff --git a/i18n/fra/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/fra/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 0c14bcf0b16..c0d1ef0d743 100644 --- a/i18n/fra/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/fra/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Fermer", "focusPanel": "Focus dans le panneau", + "toggleMaximizedPanel": "Activer/désactiver le panneau agrandi", "togglePanel": "Activer/désactiver le panneau", "view": "Affichage" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/fra/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 79ad4b125e0..b575ccc1bc6 100644 --- a/i18n/fra/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/fra/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Appuyez sur 'Entrée' pour confirmer votre saisie, ou sur 'Échap' pour l'annuler", "inputModeEntryDescription": "{0} (Appuyez sur 'Entrée' pour confirmer ou sur 'Échap' pour annuler)", "noResultsFound1": "Résultats introuvables", - "quickOpenInput": "Tapez '?' pour obtenir de l'aide sur les actions que vous pouvez effectuer ici" + "pickHistory": "Sélectionnez une entrée de l'éditeur à supprimer de l'historique", + "quickOpenInput": "Tapez '?' pour obtenir de l'aide sur les actions que vous pouvez effectuer ici", + "removeFromEditorHistory": "Supprimer de l'historique des éditeurs" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/fra/src/vs/workbench/electron-browser/actions.i18n.json index 72d705af7f5..a238791d193 100644 --- a/i18n/fra/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/fra/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Fermer un dossier", "closeMessages": "Fermer les messages de notification", "closeWindow": "Fermer la fenêtre", + "current": "Fenêtre active", "diffLeftRightLabel": "{0} - {1}", "files": "fichiers", "folders": "dossiers", @@ -18,7 +19,7 @@ "openRecentPlaceHolder": "Sélectionner un chemin à ouvrir (maintenir la touche Ctrl enfoncée pour l'ouvrir dans une nouvelle fenêtre)", "openRecentPlaceHolderMac": "Sélectionner un chemin (maintenir la touche Cmd enfoncée pour l'ouvrir dans une nouvelle fenêtre)", "reloadWindow": "Recharger la fenêtre", - "reportIssues": "Signaler les problèmes", + "reportIssues": "Signaler des problèmes", "switchWindow": "Changer de fenêtre", "switchWindowPlaceHolder": "Sélectionner une fenêtre", "toggleDevTools": "Activer/désactiver les outils de développement", diff --git a/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json index 1e03201c69c..e4ae5fff911 100644 --- a/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -8,7 +8,7 @@ "developer": "Développeur", "editorOpenPositioning": "Contrôle l'emplacement de l'ouverture des éditeurs. Sélectionnez 'left' ou 'right' pour ouvrir les éditeurs à gauche ou à droite de l'éditeur actuellement actif. Sélectionnez 'first' ou 'last' pour ouvrir les éditeurs indépendamment de l'éditeur actuellement actif.", "enablePreview": "Contrôle si les éditeurs ouverts s'affichent en mode aperçu. Les éditeurs en mode aperçu sont réutilisés jusqu'à ce qu'ils soient conservés (par exemple, après un double-clic ou une modification).", - "enablePreviewFromQuickOpen": "Contrôle si les éditeurs ouverts rapidement s'affichent en mode aperçu. Les éditeurs en mode aperçu sont réutilisés jusqu'à ce qu'ils soient conservés (par exemple, après un double-clic ou une modification).", + "enablePreviewFromQuickOpen": "Contrôle si les éditeurs de Quick Open s'affichent en mode aperçu. Les éditeurs en mode aperçu sont réutilisés jusqu'à ce qu'ils soient conservés (par exemple, après un double-clic ou une modification).", "file": "Fichier", "help": "Aide", "openDefaultSettings": "Contrôle si l'ouverture des paramètres entraîne également l'ouverture d'un éditeur qui affiche tous les paramètres par défaut.", @@ -17,6 +17,8 @@ "restoreFullscreen": "Contrôle si une fenêtre doit être restaurée en mode plein écran si elle a été fermée dans ce mode.", "showEditorTabs": "Contrôle si les éditeurs ouverts doivent s'afficher ou non sous des onglets.", "showIcons": "Contrôle si les éditeurs ouverts doivent s'afficher ou non avec une icône. Cela implique notamment l'activation d'un thème d'icône.", + "sideBarLocation": "Contrôle l'emplacement de la barre latérale. Elle peut s'afficher à gauche ou à droite du banc d'essai.", + "statusBarVisibility": "Contrôle la visibilité de la barre d'état au bas du banc d'essai.", "updateChannel": "Indiquez si vous recevez des mises à jour automatiques en provenance d'un canal de mises à jour. Un redémarrage est nécessaire en cas de modification.", "updateConfigurationTitle": "Mettre à jour", "view": "Affichage", diff --git a/i18n/fra/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index d0aba2a3d78..de655df163f 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Tapez la condition de point d'arrêt pour la ligne {0}. Le programme s'arrête ici uniquement si cette condition a la valeur true. Appuyez sur Entrée pour accepter ou sur Échap pour annuler.", - "breakpointWidgetPlaceholder": "Le point d'arrêt à la ligne {0} s'arrête uniquement si cette condition a la valeur true. Appuyez sur 'Entrée' pour accepter ou sur 'Échap' pour annuler." + "breakpointWidgetAriaLabel": "Le programme s'arrête ici uniquement si cette condition a la valeur true. Appuyez sur Entrée pour accepter, ou sur Échap pour annuler.", + "breakpointWidgetExpressionPlaceholder": "Arrêter quand l'expression prend la valeur true", + "breakpointWidgetHitCountAriaLabel": "Le programme s'arrête ici uniquement si le nombre d'accès est atteint. Appuyez sur Entrée pour accepter, ou sur Échap pour annuler.", + "breakpointWidgetHitCountPlaceholder": "Arrêter quand le nombre d'accès est atteint", + "expression": "Expression", + "hitCount": "Nombre d'accès" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 788ceac3bcf..f1609d2a6d4 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Activer les points d'arrêt", - "addConditionalBreakpoint": "Ajouter un point d'arrêt conditionnel", + "addConditionalBreakpoint": "Ajouter un point d'arrêt conditionnel...", "addFunctionBreakpoint": "Ajouter un point d'arrêt sur fonction", "addToWatchExpressions": "Ajouter à la fenêtre Espion", "addWatchExpression": "Ajouter une expression", "clearRepl": "Effacer la console", - "conditionalBreakpointEditorAction": "Déboguer : point d'arrêt conditionnel", + "conditionalBreakpointEditorAction": "Déboguer : ajouter un point d'arrêt conditionnel...", "continueDebug": "Continuer", "deactivateBreakpoints": "Désactiver les points d'arrêt", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "Focus sur la console de débogage", "disableAllBreakpoints": "Désactiver tous les points d'arrêt", "disconnectDebug": "Déconnecter", - "editConditionalBreakpoint": "Modifier un point d'arrêt", + "editConditionalBreakpoint": "Modifier un point d'arrêt...", "enableAllBreakpoints": "Activer tous les points d'arrêt", "launchJsonNeedsConfigurtion": "Configurer ou corriger 'launch.json'", "openLaunchJson": "Ouvrir {0}", diff --git a/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index f5ae53005d0..9f682d4f781 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Autorise la définition de points d'arrêt pour tous les fichiers, quelle que soit l'extension.", "debug": "Déboguer", "debugCategory": "Déboguer", + "debugConfigurationTitle": "Déboguer", "debugErrorEditor": "Erreur de débogage", "debugPanel": "Console de débogage", "launchConfigDoesNotExist": "La configuration de lancement '{0}' n'existe pas.", + "openExplorerOnEnd": "Ouvre automatiquement la viewlet d'exploration à la fin d'une session de débogage.", "toggleDebugPanel": "Console de débogage", "toggleDebugViewlet": "Afficher le débogage", "view": "Affichage" diff --git a/i18n/fra/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 5269b899c14..ce20fe12dfe 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "Impossible de créer le fichier 'launch.json' dans le dossier '.vscode' ({0}).", - "app.launch.json.configurations": "Liste des configurations. Ajoutez de nouvelles configurations, ou modifiez celles qui existent déjà.", + "app.launch.json.configurations": "Liste des configurations. Ajoutez de nouvelles configurations, ou modifiez celles qui existent déjà à l'aide d'IntelliSense.", "app.launch.json.title": "Lancer", "app.launch.json.version": "Version de ce format de fichier.", "debugNoType": "Le 'type' de l'adaptateur de débogage ne peut pas être omis. Il doit s'agir du type 'string'.", "duplicateDebuggerType": "Le type de débogage '{0}' est déjà inscrit et a pour attribut '{1}'. Attribut '{1}' ignoré.", - "interactiveVariableNotFound": "L'adaptateur {0} ne contribue pas à la variable {1} spécifiée dans la configuration de lancement.", "selectDebug": "Sélectionner l'environnement", "vscode.extension.contributes.breakpoints": "Ajoute des points d'arrêt.", "vscode.extension.contributes.breakpoints.language": "Autorisez les points d'arrêt pour ce langage.", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..6f5b0e82203 --- /dev/null +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Ouvrir", + "extensions.openSide": "Ouvrir sur le côté" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 8d9f914a8e2..604ae1c1bb2 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Nom", "debuggers": "Débogueurs ({0})", "default": "Par défaut", + "dependencies": "Dépendances", "description": "Description", "details": "Détails", + "extension id": "Identificateur d'extension", "file extensions": "Extensions de fichier", "grammar": "Grammaire", + "install count": "Nombre d'installations", "keyboard shortcuts": "Racco&&urcis clavier", "language id": "ID", "language name": "Nom", "languages": "Langages ({0})", "license": "Licence", "menuContexts": "Contextes de menu", + "name": "Nom de l'extension", "noChangelog": "Aucun CHANGELOG disponible.", "noReadme": "Aucun fichier README disponible.", + "publisher": "Nom de l'éditeur", + "rating": "Évaluation", "setting name": "Nom", "settings": "Paramètres ({0})", "snippets": "Extraits", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index bfdd9773fd5..c06ef46cda6 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Configurer les extensions désactivées", + "disableWorkspaceExtensions": "Configurer les extensions désactivées (espace de travail)", "extension": "Extension", "extensions": "Extensions", "extensionsAutoUpdate": "Mettre à jour automatiquement les extensions", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index aac09d1f0fe..82e83368ef2 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,19 +6,21 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Les recommandations ne sont disponibles que pour un dossier d'espace de travail.", "OpenExtensionsFile.failed": "Impossible de créer le fichier 'extensions.json' dans le dossier '.vscode' ({0}).", + "OpenGlobalExtensionsStorageFile.failed": "Impossible de créer le fichier 'extensions.json' dans le dossier '{0}' ({1}).", "builtin": "Intégrée", "clearExtensionsInput": "Effacer l'entrée des extensions", - "configureWorkspaceRecommendedExtensions": "Configurer les extensions recommandées pour l'espace de travail", + "configureWorkspaceRecommendedExtensions": "Configurer les extensions recommandées (espace de travail)", "deleteSure": "Voulez-vous vraiment désinstaller '{0}' ?", "enableAction": "Activer", "installAction": "Installer", "installExtensions": "Installer les extensions", - "installVSIX": "Installer à partir de VSIX...", + "installVSIX": "Installer depuis un VSIX...", "installing": "Installation", "openExtensionsFolder": "Ouvrir le dossier d'extensions", "postUninstallMessage": "{0} a été désinstallé avec succès. Redémarrez pour le désactiver.", "restart": "Pour activer cette extension, cette fenêtre de code VS doit être redémarrée.\n\nVoulez-vous continuer ?", "restartNow": "Redémarrer maintenant", + "showDisabledExtensions": "Afficher les extensions désactivées", "showInstalledExtensions": "Afficher les extensions installées", "showOutdatedExtensions": "Afficher les extensions obsolètes", "showPopularExtensions": "Afficher les extensions les plus demandées", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index 54eccc5dbe5..3450a8a81d3 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Format attendu : '${publisher}.${name}'. Exemple : 'vscode.csharp'.", "app.extensions.json.recommendations": "Liste des recommandations d'extensions. L'identificateur d'une extension est toujours '${publisher}.${name}'. Exemple : 'vscode.csharp'.", - "app.extensions.json.title": "Extensions" + "app.extensions.json.title": "Extensions", + "app.extensionsstorage.json.disabled": "Liste des extensions désactivées. L'identificateur d'une extension est toujours '${publisher}.${name}'. Exemple : 'vscode.csharp'.", + "app.extensionsstorage.json.title": "Stockage des extensions" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 73967cb36aa..1a97a5d7806 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Ordre de tri : ↑", "descending": "Ordre de tri : ↓", "extensions": "Extensions", + "no extensions found": "Extensions introuvables.", "outdatedExtensions": "{0} extensions obsolètes", "searchExtensions": "Rechercher des extensions dans Marketplace", "sort by installs": "Trier par : nombre d'installations", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 6a25338983e..966357881a0 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Extensions", - "extensionsInstalling": "Extensions (installation de {0}...)", - "multipleIssues": "Extensions ({0} problèmes)", - "multipleUpdates": "Extensions ({0} mises à jour disponibles)", - "oneIssue": "Extensions (1 problème)", - "oneUpdate": "Extensions (1 mise à jour disponible)" + "active": "Actif", + "disabled": "Désactivé", + "disabledWorkspace": "Désactivé (espace de travail)" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/fra/src/vs/workbench/parts/files/browser/fileActions.i18n.json index a1d300b4b75..038763472e7 100644 --- a/i18n/fra/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Ouvrir sur le côté", "pasteFile": "Coller", "permDelete": "Supprimer définitivement", + "pickHistory": "Sélectionnez une entrée de l'historique de l'éditeur à comparer", "refresh": "Actualiser", "refreshExplorer": "Actualiser l'explorateur", "rename": "Renommer", diff --git a/i18n/fra/src/vs/workbench/parts/files/browser/views/openEditorsViewer.i18n.json b/i18n/fra/src/vs/workbench/parts/files/browser/views/openEditorsViewer.i18n.json index 4c2691a3ee7..b54d7765a13 100644 --- a/i18n/fra/src/vs/workbench/parts/files/browser/views/openEditorsViewer.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/files/browser/views/openEditorsViewer.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "close": "Fermer", - "closeAll": "Fermer tout", + "closeAll": "Tout fermer", "closeOthers": "Fermer les autres", "editorGroupAriaLabel": "{0}, groupe d'éditeurs", "openEditorAriaLabel": "{0}, Ouvrir l'éditeur", diff --git a/i18n/fra/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/fra/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 12e6b4786af..9a1b72c735e 100644 --- a/i18n/fra/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Échec de l'authentification durant l'opération git remote.", + "cancel": "Annuler", "cleanChangesLabel": "&&Supprimer les modifications", "commit": "Commit", "commitAll": "Valider tout", @@ -22,16 +23,21 @@ "confirmUndoMessage": "Voulez-vous vraiment supprimer toutes les modifications ?", "dirtyTreeCheckout": "Extraction impossible. Validez ou effectuez une copie intermédiaire de votre travail.", "dirtyTreePull": "Extraction impossible. Validez ou effectuez une copie intermédiaire de votre travail.", + "do you want to continue": "Voulez-vous vraiment continuer ?", "init": "Init", "irreversible": "Cette action est irréversible !", + "never again": "OK, ne plus afficher", + "ok": "OK", "openChange": "Ouvrir la modification", "openFile": "Ouvrir le fichier", "publish": "Publier", "publishPickMessage": "Choisissez un dépôt distant où publier la branche '{0}' :", + "pushToRemote": "Transfert (Push) vers...", + "pushToRemotePickMessage": "Choisissez un dépôt distant où effectuer un transfert (Push) de la branche '{0}' :", "refresh": "Actualiser", "stageAllChanges": "Stocker tout en zone de transit", "stageChanges": "Étape", - "sureSync": "Voulez-vous vraiment synchroniser votre dépôt Git ?", + "sync is unpredictable": "Cette action effectue un transfert (Push) et un tirage (Pull) des validations à destination et en provenance de '{0}'.", "undoAllChanges": "Nettoyer tout", "undoChanges": "Nettoyer", "undoLastCommit": "Annuler la dernière validation", diff --git a/i18n/fra/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/fra/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..d31d43bede3 --- /dev/null +++ b/i18n/fra/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Copier" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json index 1acde1fcf75..113935b79d5 100644 --- a/i18n/fra/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "neverAgain": "Ne plus jamais afficher", + "neverAgain": "Ne plus afficher", "remindLater": "Me le rappeler plus tard", "surveyQuestion": "Acceptez-vous de répondre à une enquête rapide ?", "takeSurvey": "Répondre à l'enquête" diff --git a/i18n/fra/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 455f0d25698..748e36c7e1e 100644 --- a/i18n/fra/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Configurez les modèles Glob pour exclure les fichiers et les dossiers des recherches. Hérite de tous les modèles Glob à partir du paramètre files.exclude.", "exclude.boolean": "Modèle Glob auquel les chemins de fichiers doivent correspondre. Affectez la valeur true ou false pour activer ou désactiver le modèle.", "exclude.when": "Vérification supplémentaire des frères d'un fichier correspondant. Utilisez $(basename) comme variable pour le nom de fichier correspondant.", + "findInFiles": "Chercher dans les fichiers", "findInFolder": "Rechercher dans le dossier", "name": "Recherche", "openAnythingHandlerDescription": "Accéder au fichier", - "openSymbolDescriptionNormal": "Accéder au symbole dans l'espace de travail", + "openSymbolDescriptionNormal": "Atteindre le symbole dans l'espace de travail", "search.quickOpen.includeSymbols": "Configurez l'ajout des résultats d'une recherche de symboles globale dans le fichier de résultats pour Quick Open.", "searchConfigurationTitle": "Rechercher", - "showTriggerActions": "Accéder au symbole dans l'espace de travail...", + "showSearchViewlet": "Afficher la zone de recherche", + "showTriggerActions": "Atteindre le symbole dans l'espace de travail...", "view": "Affichage" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/fra/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 17ac3cb4434..b495a487019 100644 --- a/i18n/fra/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -8,13 +8,12 @@ "ConfigureGlobalExclusionsAction.label": "Ouvrir les paramètres", "RefreshAction.label": "Actualiser", "RemoveAction.label": "Supprimer", - "file.replaceAll.label": "Remplacer tout", + "file.replaceAll.label": "Tout remplacer", "findInFolder": "Rechercher dans le dossier", - "focusNextInputbox": "Focus sur la zone d'entrée suivante", - "focusPreviousInputbox": "Focus sur la zone d'entrée précédente", + "focusNextInputBox": "Focus sur la zone d'entrée suivante", + "focusPreviousInputBox": "Focus sur la zone d'entrée précédente", "match.replace.label": "Remplacer", "nextSearchTerm": "Afficher le terme de recherche suivant", "previousSearchTerm": "Afficher le terme de recherche précédent", - "replaceInFiles": "Remplacer dans les fichiers", - "showSearchViewlet": "Afficher la zone de recherche" + "replaceInFiles": "Remplacer dans les fichiers" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/search/browser/searchViewlet.i18n.json b/i18n/fra/src/vs/workbench/parts/search/browser/searchViewlet.i18n.json index 920ef1a6777..189ee374802 100644 --- a/i18n/fra/src/vs/workbench/parts/search/browser/searchViewlet.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/search/browser/searchViewlet.i18n.json @@ -20,7 +20,7 @@ "removeAll.message": "{0} occurrences supprimées dans {1} fichiers.", "replaceAll.confirm.button": "Remplacer", "replaceAll.confirmation.message": "Remplacer {0} occurrences dans {1} fichiers avec '{2}' ?", - "replaceAll.confirmation.title": "Remplacer tout", + "replaceAll.confirmation.title": "Tout remplacer", "replaceAll.message": "{0} occurrences remplacées dans {1} fichiers avec {2}.", "rerunSearch.message": "Rechercher à nouveau", "rerunSearchInAll.message": "Rechercher à nouveau dans tous les fichiers", diff --git a/i18n/fra/src/vs/workbench/parts/search/browser/searchWidget.i18n.json b/i18n/fra/src/vs/workbench/parts/search/browser/searchWidget.i18n.json index f07381ed570..270278e7b88 100644 --- a/i18n/fra/src/vs/workbench/parts/search/browser/searchWidget.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/search/browser/searchWidget.i18n.json @@ -7,8 +7,8 @@ "label.Replace": "Remplacer : tapez le terme de remplacement, puis appuyez sur Entrée pour avoir un aperçu, ou sur Échap pour l'annuler", "label.Search": "Rechercher : tapez le terme de recherche, puis appuyez sur Entrée pour lancer la recherche, ou sur Échap pour l'annuler", "regexp.validationFailure": "L'expression correspond à tout", - "search.action.replaceAll.disabled.label": "Remplacer tout (soumettre la recherche pour activer)", - "search.action.replaceAll.enabled.label": "Remplacer tout", + "search.action.replaceAll.disabled.label": "Tout remplacer (soumettre la recherche pour activer)", + "search.action.replaceAll.enabled.label": "Tout remplacer", "search.placeHolder": "Rechercher", "search.replace.placeHolder": "Remplacer", "search.replace.toggle.button.title": "Activer/désactiver le remplacement" diff --git a/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 68112578cbb..18f2232d6c4 100644 --- a/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "Le processus lancé n'existe plus. Si la tâche a engendré des tâches en arrière-plan, la sortie de VS Code risque de donner lieu à des processus orphelins.", "TestAction.label": "Exécuter la tâche de test", "manyMarkers": "99", + "problems": "Problèmes", "taskCommands": "Exécuter la tâche", "tasks": "Tâches", "tasksCategory": "Tâches" diff --git a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index de6cd0ce673..26c7ebb1aae 100644 --- a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Chemin de l'interpréteur de commandes utilisé par le terminal sur Windows. Quand vous vous servez des interpréteurs de commandes fournis avec Windows (cmd, PowerShell ou Bash sur Ubuntu), préférez C:Windowssysnative à C:WindowsSystem32 pour utiliser les versions 64 bits.", "terminal.integrated.shellArgs.linux": "Arguments de ligne de commande à utiliser sur le terminal Linux.", "terminal.integrated.shellArgs.osx": "Arguments de ligne de commande à utiliser sur le terminal OS X.", + "terminal.integrated.shellArgs.windows": "Arguments de ligne de commande à utiliser sur le terminal Windows.", "terminalCategory": "Terminal", "terminalIntegratedConfigurationTitle": "Terminal intégré", "viewCategory": "Affichage" diff --git a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index e3c3957041d..8ee31648ae3 100644 --- a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Exécuter le texte sélectionné dans le terminal actif", "workbench.action.terminal.scrollDown": "Faire défiler vers le bas (ligne)", "workbench.action.terminal.scrollDownPage": "Faire défiler vers le bas (page)", + "workbench.action.terminal.scrollToBottom": "Faire défiler jusqu'en bas", + "workbench.action.terminal.scrollToTop": "Faire défiler jusqu'en haut", "workbench.action.terminal.scrollUp": "Faire défiler vers le haut (ligne)", "workbench.action.terminal.scrollUpPage": "Faire défiler vers le haut (page)", "workbench.action.terminal.switchTerminalInstance": "Changer d'instance de terminal", diff --git a/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 79efc5d025a..9a8138b5a52 100644 --- a/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,11 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Fermer", - "insiderBuilds": "Les builds Insider deviennent des builds quotidiennes !", + "insiderBuilds": "Builds et mises en production Insider quotidiennes !", "license": "Lire la licence", "licenseChanged": "Nos termes du contrat de licence ont changé. Prenez un instant pour les consulter.", - "neverShowAgain": "Ne plus jamais afficher", + "neverShowAgain": "Ne plus afficher", "read the release notes": "Bienvenue dans {0} v{1} ! Voulez-vous lire les notes de publication ?", "readmore": "Lire la suite", "release notes": "Notes de publication" diff --git a/i18n/fra/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/fra/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..51ec6c3e57d --- /dev/null +++ b/i18n/fra/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Ajouter des curseurs au-dessus/en dessous", + "watermark.moveLines": "Déplacer des lignes vers le haut/bas", + "watermark.quickOpen": "Accéder au fichier", + "watermark.showCommands": "Palette de commandes", + "watermark.toggleTerminal": "Activer/désactiver le terminal", + "watermark.unboundCommand": "indépendant" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..7db878db4a8 --- /dev/null +++ b/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "L'hôte d'extension s'est terminé de façon inattendue. Rechargez la fenêtre pour reprendre l'exécution.", + "extensionHostProcess.error": "Erreur de l'hôte d'extension : {0}", + "extensionHostProcess.startupFail": "L'hôte d'extension n'a pas démarré en moins de 10 secondes. Il existe peut-être un problème.", + "extensionHostProcess.startupFailDebug": "L'hôte d'extension n'a pas démarré en moins de 10 secondes. Il est peut-être arrêté à la première ligne et a besoin d'un débogueur pour continuer.", + "extensionUnderDevelopment": "Chargement de l'extension de développement sur {0}", + "overwritingExtension": "Remplacement de l'extension {0} par {1}." +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/fra/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 913ec6b2aaf..52553598467 100644 --- a/i18n/fra/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/fra/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "Télécharger .NET Framework 4.5", "netVersionError": "Microsoft .NET Framework 4.5 est obligatoire. Suivez le lien pour l'installer.", + "neverShowAgain": "Ne plus afficher", "trashFailed": "Échec du déplacement de '{0}' vers la corbeille" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/fra/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..408fd382660 --- /dev/null +++ b/i18n/fra/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "Échec d'enregistrement de '{0}' ({1}).", + "saveFileFirst": "L'intégrité du fichier est compromise. Enregistrez-le avant de le rouvrir avec un autre encodage." +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/fra/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..24abad7bdaf --- /dev/null +++ b/i18n/fra/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Tous les fichiers", + "cancel": "Annuler", + "dontSave": "&&Ne pas enregistrer", + "moreFile": "...1 fichier supplémentaire non affiché", + "moreFiles": "...{0} fichiers supplémentaires non affichés", + "noExt": "Aucune extension", + "save": "Enregi&&strer", + "saveAll": "&&Enregistrer tout", + "saveChangesDetail": "Vous perdrez vos modifications, si vous ne les enregistrez pas.", + "saveChangesMessage": "Voulez-vous enregistrer les modifications apportées à {0} ?", + "saveChangesMessages": "Voulez-vous enregistrer les modifications apportées aux {0} fichiers suivants ?" +} \ No newline at end of file diff --git a/i18n/ita/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/ita/extensions/typescript/out/typescriptServiceClient.i18n.json index f318e6bf0c7..87bafe16dc6 100644 --- a/i18n/ita/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/ita/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "L'impostazione dell'area di lavoro 'typescript.tsdk' è stata aggiornata ed è ora {0}", "use": "Usa l'area di lavoro ({0})", "useBundled": "Usa la versione in bundle ({0})", - "versionMismatch": "È stata rilevato un errore di corrispondenza tra la versione del compilatore tsc installato globalmente ({0}) e quella del servizio di linguaggio di VS Code ({1}). Questo potrebbe causare errori di compilazione incoerente.", + "versionMismatch": "Le versioni non corrispondono. Compilatore tsc globale ({0}) != servizio di linguaggio di Visual Studio Code ({1}). Potrebbero verificarsi errori di compilazione incoerente", "versionNumber.custom": "personalizzato" } \ No newline at end of file diff --git a/i18n/ita/extensions/typescript/package.i18n.json b/i18n/ita/extensions/typescript/package.i18n.json index 3f86bb8fcf9..7ca8035a4c9 100644 --- a/i18n/ita/extensions/typescript/package.i18n.json +++ b/i18n/ita/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Consente di definire la gestione dello spazio dopo una virgola di delimitazione", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Consente di definire la gestione dello spazio dopo la parola chiave function per funzioni anonime", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Consente di definire la gestione dello spazio dopo le parole chiave nell'istruzione del flusso di controllo", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Consente di definire la gestione dello spazio dopo la parentesi graffa iniziale e prima della parentesi graffa finale dell'espressione JSX. Richiede TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Consente di definire la gestione dello spazio dopo le parentesi quadre di apertura e di chiusura non vuote", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Consente di definire la gestione dello spazio dopo le parentesi tonde di apertura e di chiusura non vuote", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Consente di definire la gestione dello spazio dopo la parentesi graffa iniziale e prima della parentesi graffa finale della stringa del modello. Richiede TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": " Consente di definire la gestione dello spazio dopo un punto e virgola in un'istruzione for", "format.insertSpaceBeforeAndAfterBinaryOperators": "Consente di definire la gestione dello spazio dopo un operatore binario", "format.placeOpenBraceOnNewLineForControlBlocks": "Consente di definire se una parentesi graffa di apertura viene o meno inserita su una riga per i blocchi di controllo", @@ -18,6 +20,7 @@ "javascript.validate.enable": "Abilita/Disabilita la convalida JavaScript", "typescript.check.tscVersion": "Verifica se un compilatore TypeScript di installazione globale, ad esempio tsc, è diverso dal servizio di linguaggio TypeScript usato.", "typescript.check.workspaceVersion": "Verifica se nell'area di lavoro è disponibile una versione di TypeScript", + "typescript.experimentalAutomaticTypeAcquisition": "Abilita l'acquisizione automatica del tipo. Richiede TypeScript >= 2.0.6 e un riavvio dopo la modifica.", "typescript.reloadProjects.title": "Ricarica progetto TypeScript", "typescript.tsdk.desc": "Specifica il percorso della cartella che contiene i file tsserver e lib*.d.ts da usare.", "typescript.tsdk_version.desc": "Specifica la versione di tsserver. È necessario solo se tsserver non viene installato con npm.", diff --git a/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json index ea1a469b393..78ecd4dd51b 100644 --- a/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Controlla le dimensioni del carattere in pixel.", "fontWeight": "Controlla lo spessore del carattere.", "formatOnType": "Controlla se l'editor deve formattare automaticamente la riga dopo la digitazione", + "glyphMargin": "Controlla se l'editor deve eseguire il rendering del margine verticale del glifo. Il margine del glifo viene usato principalmente per il debug.", "hideCursorInOverviewRuler": "Controlla se il cursore deve essere nascosto nel righello delle annotazioni.", "ignoreTrimWhitespace": "Controlla se l'editor diff mostra come differenze le modifiche relative a spazi vuoti iniziali e finali", "insertSpaces": "Inserisce spazi quando viene premuto TAB. Quando `editor.detectIndentation` è attivo, questa impostazione viene sostituita in base al contenuto del file.", @@ -40,7 +41,9 @@ "selectionHighlight": "Controlla se l'editor deve evidenziare gli elementi corrispondenti simili alla selezione", "sideBySide": "Controlla se l'editor diff mostra le differenze affiancate o incorporate", "snippetSuggestions": "Controlla se i frammenti di codice sono visualizzati con altri suggerimenti e il modo in cui sono ordinati.", - "stablePeek": "Mantiene aperte le anteprime editor anche quando si fa doppio clic sul contenuto o si preme ESC.", + "stablePeek": "Mantiene aperti gli editor rapidi anche quando si fa doppio clic sul contenuto o si preme ESC.", + "suggestFontSize": "Dimensioni del carattere per il widget dei suggerimenti", + "suggestLineHeight": "Altezza della riga per il widget dei suggerimenti", "suggestOnTriggerCharacters": "Controlla se i suggerimenti devono essere visualizzati automaticamente durante la digitazione dei caratteri trigger", "tabCompletion": "Inserisce frammenti di codice quando il prefisso corrisponde. Funziona in modo ottimale quando non sono abilitati i suggerimenti rapidi.", "tabSize": "Numero di spazi a cui equivale una tabulazione. Quando `editor.detectIndentation` è attivo, questa impostazione viene sostituita in base al contenuto del file.", diff --git a/i18n/ita/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/ita/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 7303cd87d98..44e63626e76 100644 --- a/i18n/ita/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/ita/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Apri definizione lateralmente", "actions.previewDecl.label": "Visualizza la definizione", "meta.title": " - Definizioni di {0}", - "multipleResults": "Fare clic per visualizzare le {0} definizioni trovate." + "multipleResults": "Fare clic per visualizzare {0} definizioni." } \ No newline at end of file diff --git a/i18n/ita/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/ita/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 5f3718be122..f46161c14d9 100644 --- a/i18n/ita/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/ita/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Mostra correzioni", + "quickFixWithKb": "Mostra correzioni ({0})", "quickfix.trigger.label": "Correzione rapida" } \ No newline at end of file diff --git a/i18n/ita/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/ita/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index e67aeab8dd3..1374817fc56 100644 --- a/i18n/ita/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/ita/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "La voce di menu fa riferimento allo stesso comando come comando predefinito e come comando alternativo", "menuId.invalid": "`{0}` non è un identificatore di menu valido", "menus.editorContext": "Menu di scelta rapida dell'editor", + "menus.editorTabContext": "Menu di scelta rapida delle schede dell'editor", "menus.editorTitle": "Menu del titolo dell'editor", "menus.explorerContext": "Menu di scelta rapida Esplora file", "missing.altCommand": "La voce di menu fa riferimento a un comando alternativo `{0}` che non è definito nella sezione 'commands'.", diff --git a/i18n/ita/src/vs/platform/environment/node/argv.i18n.json b/i18n/ita/src/vs/platform/environment/node/argv.i18n.json index 83d6ef5070c..a21c695067a 100644 --- a/i18n/ita/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/ita/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Apre un editor diff. Richiede il passaggio di due percorsi di file come argomenti.", "disableExtensions": "Disabilita tutte le estensioni installate.", + "disableGPU": "Disabilita l'accelerazione hardware della GPU.", "extensionHomePath": "Impostare il percorso radice per le estensioni.", "goto": "Apre il file nel percorso e alla riga e colonna indicate (aggiunge :line[:column] al percorso).", "gotoValidation": "Gli argomenti nella modalità `--goto` devono essere espressi nel formato `FILE(:LINE(:COLUMN))`.", @@ -19,6 +20,7 @@ "paths": "percorsi", "performance": "Eseguire l'avvio con il comando 'Developer: Startup Performance' abilitato.", "reuseWindow": "Forza l'apertura di un file o di una cartella nell'ultima finestra attiva.", + "showVersions": "Mostra le versioni delle estensioni installate, quando si usa --list-extension.", "uninstallExtension": "Disinstalla un'estensione.", "usage": "Utilizzo", "userDataDir": "Consente di specificare la directory in cui si trovano i dati utente. Utile quando viene eseguito come root.", diff --git a/i18n/ita/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/ita/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 7342532aba6..95a2907f569 100644 --- a/i18n/ita/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/ita/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "la proprietà `{0}` è obbligatoria e deve essere di tipo `string`", "extensionDescription.version": "la proprietà `{0}` è obbligatoria e deve essere di tipo `string`", "vscode.extension.activationEvents": "Eventi di attivazione per l'estensione Visual Studio Code.", + "vscode.extension.badges": "Matrice di notifiche da visualizzare nella barra laterale della pagina delle estensioni del Marketplace.", + "vscode.extension.badges.description": "Descrizione della notifica.", + "vscode.extension.badges.href": "Collegamento della notifica.", + "vscode.extension.badges.url": "URL di immagine della notifica.", "vscode.extension.categories": "Categorie usate dalla raccolta di Visual Studio Code per definire la categoria dell'estensione.", "vscode.extension.contributes": "Tutti i contributi dell'estensione Visual Studio Code rappresentati da questo pacchetto.", "vscode.extension.displayName": "Nome visualizzato per l'estensione usato nella raccolta di Visual Studio Code.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Banner usato nel marketplace di Visual Studio Code.", "vscode.extension.galleryBanner.color": "Colore del banner nell'intestazione pagina del marketplace di Visual Studio Code.", "vscode.extension.galleryBanner.theme": "Tema colori per il tipo di carattere usato nel banner.", + "vscode.extension.icon": "Percorso di un'icona da 128x128 pixel.", + "vscode.extension.preview": "Imposta l'estensione in modo che venga contrassegnata come Anteprima nel Marketplace.", "vscode.extension.publisher": "Editore dell'estensione Visual Studio Code.", "vscode.extension.scripts.prepublish": "Script eseguito prima che il pacchetto venga pubblicato come estensione Visual Studio Code." } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/ita/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 127f1159c47..4f3f7993c31 100644 --- a/i18n/ita/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/ita/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Attiva/Disattiva posizione della barra laterale", + "toggleLocation": "Attiva/Disattiva posizione della barra laterale", "view": "Visualizza" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/ita/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 0039716ad7a..83640b14692 100644 --- a/i18n/ita/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/ita/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Chiudi", "focusPanel": "Sposta lo stato attivo nel pannello", + "toggleMaximizedPanel": "Attiva/Disattiva pannello ingrandito", "togglePanel": "Attiva/Disattiva pannello", "view": "Visualizza" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/ita/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index e84871f8527..c759cb7aee9 100644 --- a/i18n/ita/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/ita/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Premere 'INVIO' per confermare l'input oppure 'ESC' per annullare", "inputModeEntryDescription": "{0} (premere 'INVIO' per confermare oppure 'ESC' per annullare)", "noResultsFound1": "Non sono stati trovati risultati", - "quickOpenInput": "Digitare '?' per visualizzare la Guida relativa alle azioni che è possibile eseguire qui" + "pickHistory": "Selezionare una voce dell'editor da rimuovere dalla cronologia", + "quickOpenInput": "Digitare '?' per visualizzare la Guida relativa alle azioni che è possibile eseguire qui", + "removeFromEditorHistory": "Rimuovi dalla cronologia dell'editor" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json index 16d2b9ebb88..3113f988b5a 100644 --- a/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Chiudi cartella", "closeMessages": "Chiudi messaggi di notifica", "closeWindow": "Chiudi finestra", + "current": "Finestra corrente", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "file", "folders": "cartelle", diff --git a/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json index 7701258055c..a6ce8b0e895 100644 --- a/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "Controlla se una finestra deve essere ripristinata a schermo intero se è stata chiusa in questa modalità.", "showEditorTabs": "Controlla se visualizzare o meno gli editor aperti in schede.", "showIcons": "Controlla se visualizzare o meno un'icona per gli editor aperti. Richiede l'abilitazione anche di un tema dell'icona.", + "sideBarLocation": "Controlla la posizione della barra laterale. Può essere visualizzata a sinistra o a destra del workbench.", + "statusBarVisibility": "Controlla la visibilità della barra di stato nella parte inferiore del workbench.", "updateChannel": "Consente di configurare la ricezione degli aggiornamenti automatici da un canale di aggiornamento. Richiede un riavvio dopo la modifica.", "updateConfigurationTitle": "Aggiorna", "view": "Visualizza", diff --git a/i18n/ita/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index a86119fee2e..2c516ae9029 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Digitare la condizione del punto di interruzione per la riga {0}. Il programma si arresterà in questo punto solo se la condizione è vera. Premere INVIO per accettare oppure ESC per annullare.", - "breakpointWidgetPlaceholder": "Il punto di interruzione a riga {0} arresterà il programma solo se questa condizione è vera. Premere 'INVIO' per accettare oppure 'ESC' per annullare." + "breakpointWidgetAriaLabel": "Il programma si arresterà in questo punto solo se la condizione è vera. Premere INVIO per accettare oppure ESC per annullare.", + "breakpointWidgetExpressionPlaceholder": "Interrompi quando l'espressione restituisce true", + "breakpointWidgetHitCountAriaLabel": "Il programma si arresterà in questo punto solo se viene raggiunto il numero di passaggi. Premere INVIO per accettare oppure ESC per annullare.", + "breakpointWidgetHitCountPlaceholder": "Interrompi quando viene soddisfatta la condizione del numero di passaggi", + "expression": "Espressione", + "hitCount": "Numero di passaggi" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index a6bb40c7a00..dca1ab8f468 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Attiva punti di interruzione", - "addConditionalBreakpoint": "Aggiungi punto di interruzione condizionale", + "addConditionalBreakpoint": "Aggiungi punto di interruzione condizionale...", "addFunctionBreakpoint": "Aggiungi punto di interruzione della funzione", "addToWatchExpressions": "Aggiungi a espressione di controllo", "addWatchExpression": "Aggiungi espressione", "clearRepl": "Cancella console", - "conditionalBreakpointEditorAction": "Debug: Punto di interruzione condizionale", + "conditionalBreakpointEditorAction": "Debug: Aggiungi Punto di interruzione condizionale...", "continueDebug": "Continua", "deactivateBreakpoints": "Disattiva punti di interruzione", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "Console di debug stato attivo", "disableAllBreakpoints": "Disabilita tutti i punti di interruzione", "disconnectDebug": "Disconnetti", - "editConditionalBreakpoint": "Modifica punto di interruzione", + "editConditionalBreakpoint": "Modifica punto di interruzione...", "enableAllBreakpoints": "Abilita tutti i punti di interruzione", "launchJsonNeedsConfigurtion": "Configurare o correggere 'launch.json'", "openLaunchJson": "Apri {0}", diff --git a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 3f080a254e7..867596cc5df 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Consente di impostare i punti di interruzione per tutti i file, indipendentemente dall'estensione.", "debug": "Debug", "debugCategory": "Debug", - "debugErrorEditor": "Esegui debug errore", + "debugConfigurationTitle": "Debug", + "debugErrorEditor": "Errore di debug", "debugPanel": "Console di debug", "launchConfigDoesNotExist": "La configurazione di avvio '{0}' non esiste.", + "openExplorerOnEnd": "Apre automaticamente il viewlet di esplorazione al termine di una sessione di debug.", "toggleDebugPanel": "Console di debug", "toggleDebugViewlet": "Mostra debug", "view": "Visualizza" diff --git a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 25513299033..b16f26992ea 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "actions.repl.acceptInput": "Input accettazione REPL", + "actions.repl.acceptInput": "Accetta input da REPL", "actions.repl.historyNext": "Cronologia avanti", "actions.repl.historyPrevious": "Cronologia indietro", - "replAriaLabel": "Pannello Read Eval Print Loop" + "replAriaLabel": "Pannello del ciclo Read Eval Print" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 41a619e3981..745e905553e 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "Fare clic per aprire (CTRL+clic apre lateralmente)", "fileLinkMac": "Fare clic per aprire (CMD+clic apre lateralmente)", - "replExpressionAriaLabel": "Il valore dell'espressione {0} è {1}, Read Eval Print Loop, debug", - "replKeyValueOutputAriaLabel": "Il valore della variabile di output {0} è {1}, Read Eval Print Loop, debug", - "replValueOutputAriaLabel": "{0}, Read Eval Print Loop, debug", - "replVariableAriaLabel": "Il valore della variabile {0} è {1}, Read Eval Print Loop, debug", + "replExpressionAriaLabel": "Il valore dell'espressione {0} è {1}, ciclo Read Eval Print, debug", + "replKeyValueOutputAriaLabel": "Il valore della variabile di output {0} è {1}, ciclo Read Eval Print, debug", + "replValueOutputAriaLabel": "{0}, ciclo Read Eval Print, debug", + "replVariableAriaLabel": "Il valore della variabile {0} è {1}, ciclo Read Eval Print, debug", "stateCapture": "Lo stato dell'oggetto viene acquisito dalla prima valutazione" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index fefc34c01f8..d146adf2df8 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "Non è possibile creare il file 'launch.json' all'interno della cartella '.vscode' ({0}).", - "app.launch.json.configurations": "Elenco delle configurazioni. Aggiungere nuove configurazioni o modificare quelle esistenti.", + "app.launch.json.configurations": "Elenco delle configurazioni. Aggiungere nuove configurazioni o modificare quelle esistenti con IntelliSense.", "app.launch.json.title": "Avvia", "app.launch.json.version": "Versione di questo formato di file.", "debugNoType": "L'adattatore di debug 'type' non può essere omesso e deve essere di tipo 'string'.", "duplicateDebuggerType": "Il tipo di debug '{0}' è già registrato e include l'attributo '{1}'. L'attributo '{1}' verrà ignorato.", - "interactiveVariableNotFound": "L'adattatore {0} non contribuisce alla variabile {1} specificata nella configurazione di avvio.", "selectDebug": "Seleziona ambiente", "vscode.extension.contributes.breakpoints": "Punti di interruzione per contributes.", "vscode.extension.contributes.breakpoints.language": "Consente i punti di interruzione per questo linguaggio.", @@ -29,7 +28,7 @@ "vscode.extension.contributes.debuggers.runtime": "Runtime facoltativo nel caso in cui l'attributo del programma non sia un eseguibile ma richieda un runtime.", "vscode.extension.contributes.debuggers.runtimeArgs": "Argomenti del runtime facoltativo.", "vscode.extension.contributes.debuggers.type": "Identificatore univoco per questo adattatore di debug.", - "vscode.extension.contributes.debuggers.variables": "Mapping tra le variabili interattive, ad esempio ${action.pickProcess}) in `launch.json` e un comando.", + "vscode.extension.contributes.debuggers.variables": "Mapping tra le variabili interattive, ad esempio ${action.pickProcess}, in `launch.json` e un comando.", "vscode.extension.contributes.debuggers.windows": "Impostazioni specifiche di Windows.", "vscode.extension.contributes.debuggers.windows.runtime": "Runtime usato per Windows." } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..ae4be6219c3 --- /dev/null +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Apri", + "extensions.openSide": "Apri lateralmente" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 43289f5d8f4..b4ab3695221 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Nome", "debuggers": "Debugger ({0})", "default": "Predefinita", + "dependencies": "Dipendenze", "description": "Descrizione", "details": "Dettagli", + "extension id": "Identificatore dell'estensione", "file extensions": "Estensioni di file", "grammar": "Grammatica", + "install count": "Conteggio delle installazioni", "keyboard shortcuts": "&&Tasti di scelta rapida", "language id": "ID", "language name": "Nome", "languages": "Linguaggi ({0})", "license": "Licenza", "menuContexts": "Contesti menu", + "name": "Nome dell'estensione", "noChangelog": "CHANGELOG non disponibile.", "noReadme": "File LEGGIMI non disponibile.", + "publisher": "Nome dell'editore", + "rating": "Valutazione", "setting name": "Nome", "settings": "Impostazioni ({0})", "snippets": "Frammenti", diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 84af0ff5e9f..85d68597fa6 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Configura estensioni disabilitate", + "disableWorkspaceExtensions": "Configura estensioni disabilitate (area di lavoro)", "extension": "Estensione", "extensions": "Estensioni", "extensionsAutoUpdate": "Aggiorna automaticamente le estensioni", diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 035a5fd7e8a..9ef61e287af 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Gli elementi consigliati sono disponibili solo per una cartella dell'area di lavoro.", "OpenExtensionsFile.failed": "Non è possibile creare il file 'extensions.json' all'interno della cartella '.vscode' ({0}).", - "builtin": "Predefinito", + "OpenGlobalExtensionsStorageFile.failed": "Non è possibile creare il file 'extensions.json' all'interno della cartella '{0}' ({1}).", + "builtin": "Predefinita", "clearExtensionsInput": "Cancella input estensioni", - "configureWorkspaceRecommendedExtensions": "Configura estensioni consigliate per l'area di lavoro", + "configureWorkspaceRecommendedExtensions": "Configura estensioni consigliate (area di lavoro)", "deleteSure": "Disinstallare '{0}'?", "enableAction": "Abilita", "installAction": "Installa", @@ -19,6 +20,7 @@ "postUninstallMessage": "{0} è stato disinstallato. Riavviare per disattivarlo.", "restart": "Per abilitare questa estensione, è necessario riavviare questa finestra di Visual Studio Code.\n\nContinuare?", "restartNow": "Riavvia ora", + "showDisabledExtensions": "Mostra estensioni disabilitate", "showInstalledExtensions": "Mostra estensioni installate", "showOutdatedExtensions": "Mostra estensioni obsolete", "showPopularExtensions": "Mostra estensioni più richieste", diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index a16cb7f205c..ed2542f78f1 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Formato imprevisto '${publisher}.${name}'. Esempio: 'vscode.csharp'.", "app.extensions.json.recommendations": "Elenco delle estensioni consigliate. L'identificatore di un'estensione è sempre '${publisher}.${name}'. Ad esempio: 'vscode.csharp'.", - "app.extensions.json.title": "Estensioni" + "app.extensions.json.title": "Estensioni", + "app.extensionsstorage.json.disabled": "Elenco delle estensioni disabilitate. L'identificatore di un'estensione è sempre '${publisher}.${name}'. Ad esempio: 'vscode.csharp'.", + "app.extensionsstorage.json.title": "Archivio estensioni" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 168d874d081..c5fc161f060 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Ordinamento: ↑", "descending": "Ordinamento: ↓", "extensions": "Estensioni", + "no extensions found": "Non sono state trovate estensioni.", "outdatedExtensions": "{0} estensioni obsolete", "searchExtensions": "Cerca le estensioni nel Marketplace", "sort by installs": "Ordina per: conteggio installazioni", diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index d4a5e112fa1..a999a0aa3f5 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Estensioni", - "extensionsInstalling": "Estensioni ({0} in fase di installazione...)", - "multipleIssues": "Estensioni ({0} problemi)", - "multipleUpdates": "Estensioni ({0} aggiornamenti disponibili)", - "oneIssue": "Estensioni (1 problema)", - "oneUpdate": "Estensioni (1 aggiornamento disponibile)" + "active": "Attivo", + "disabled": "Disabilitato", + "disabledWorkspace": "Disabilitate (area di lavoro)" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/ita/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 1a4ecc4ee1a..4491e9fdfc9 100644 --- a/i18n/ita/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Apri lateralmente", "pasteFile": "Incolla", "permDelete": "Elimina definitivamente", + "pickHistory": "Selezionare una voce della cronologia dell'editor con cui eseguire il confronto", "refresh": "Aggiorna", "refreshExplorer": "Aggiorna Explorer", "rename": "Rinomina", diff --git a/i18n/ita/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/ita/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 1f79c81068c..3fb26af7caf 100644 --- a/i18n/ita/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "L'autenticazione non è riuscita su git remote.", + "cancel": "Annulla", "cleanChangesLabel": "&&Pulisci modifiche", "commit": "Commit", "commitAll": "Esegui commit di tutto", @@ -22,16 +23,21 @@ "confirmUndoMessage": "Pulire tutte le modifiche?", "dirtyTreeCheckout": "Non è possibile eseguire l'estrazione. Eseguire prima il commit del lavoro o prepararlo per il commit.", "dirtyTreePull": "Non è possibile eseguire il pull. Eseguire prima il commit del lavoro o prepararlo per il commit.", + "do you want to continue": "Continuare?", "init": "Init", "irreversible": "Questa azione è irreversibile.", + "never again": "OK, non visualizzare più", + "ok": "OK", "openChange": "Apri modifica", "openFile": "Apri file", "publish": "Pubblica", "publishPickMessage": "Selezionare un repository remoto in cui pubblicare il ramo '{0}':", + "pushToRemote": "Esegui push in...", + "pushToRemotePickMessage": "Selezionare un repository remoto in cui effettuare il push del ramo '{0}':", "refresh": "Aggiorna", "stageAllChanges": "Gestisci tutto temporaneamente", "stageChanges": "Prepara", - "sureSync": "Sincronizzare il repository GIT?", + "sync is unpredictable": "Questa azione consentirà di effettuare il push e il pull di commit da e verso '{0}'.", "undoAllChanges": "Pulisci tutto", "undoChanges": "Pulisci", "undoLastCommit": "Annulla ultimo commit", diff --git a/i18n/ita/src/vs/workbench/parts/markers/browser/markersWorkbenchContributions.i18n.json b/i18n/ita/src/vs/workbench/parts/markers/browser/markersWorkbenchContributions.i18n.json index cbc56b657fc..f1d1a4a06ff 100644 --- a/i18n/ita/src/vs/workbench/parts/markers/browser/markersWorkbenchContributions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/markers/browser/markersWorkbenchContributions.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "errorsAndWarnings": "Errori e avvisi di {0}" + "errorsAndWarnings": "{0} errori e avvisi" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/ita/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..3ccaa2931c5 --- /dev/null +++ b/i18n/ita/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Copia" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json index a36c7338059..50cc6423757 100644 --- a/i18n/ita/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "neverAgain": "Non visualizzare più", + "neverAgain": "Non visualizzare più questo messaggio", "remindLater": "Visualizza più tardi", "surveyQuestion": "Partecipare a un breve sondaggio?", "takeSurvey": "Partecipa a sondaggio" diff --git a/i18n/ita/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 408a8593417..96517ba0114 100644 --- a/i18n/ita/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Consente di configurare i criteri GLOB per escludere file e cartelle nelle ricerche. Eredita tutti i criteri GLOB dall'impostazione files.exclude.", "exclude.boolean": "Criterio GLOB da usare per trovare percorsi file. Impostare su True o False per abilitare o disabilitare il criterio.", "exclude.when": "Controllo aggiuntivo sugli elementi di pari livello di un file corrispondente. Usare $(basename) come variabile del nome file corrispondente.", + "findInFiles": "Cerca nei file", "findInFolder": "Trova nella cartella", "name": "Cerca", "openAnythingHandlerDescription": "Vai al file", "openSymbolDescriptionNormal": "Vai al simbolo nell'area di lavoro", "search.quickOpen.includeSymbols": "Configurare questa opzione per includere i risultati di una ricerca di simboli globale nei risultati dei file per Quick Open.", "searchConfigurationTitle": "Cerca", + "showSearchViewlet": "Mostra Cerca", "showTriggerActions": "Vai al simbolo nell'area di lavoro...", "view": "Visualizza" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/ita/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 8fad716a7ed..35f17e66fdf 100644 --- a/i18n/ita/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "Rimuovi", "file.replaceAll.label": "Sostituisci tutto", "findInFolder": "Trova nella cartella", - "focusNextInputbox": "Sposta lo stato attivo sulla casella di input successiva", - "focusPreviousInputbox": "Sposta lo stato attivo sulla casella di input precedente", + "focusNextInputBox": "Sposta lo stato attivo sulla casella di input successiva", + "focusPreviousInputBox": "Sposta lo stato attivo sulla casella di input precedente", "match.replace.label": "Sostituisci", "nextSearchTerm": "Mostra il termine di ricerca successivo", "previousSearchTerm": "Mostra il termine di ricerca precedente", - "replaceInFiles": "Sostituisci nei file", - "showSearchViewlet": "Mostra Cerca" + "replaceInFiles": "Sostituisci nei file" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index b4af2d2509d..5e1be74a7e3 100644 --- a/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "Il processo avviato non esiste più. Se l'attività implica la generazione di attività in background, uscendo da Visual Studio Code potrebbero essere presenti processi orfani.", "TestAction.label": "Esegui attività di test", "manyMarkers": "Più di 99", + "problems": "Problemi", "taskCommands": "Esegui attività", "tasks": "Attività", "tasksCategory": "Attività" diff --git a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 11ebe179b54..ec6ca436f47 100644 --- a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Percorso della shell usata dal terminale in Windows. Quando si usano le shell incluse in Windows (cmd, PowerShell o Bash in Ubuntu), preferire C:Windowssysnative rispetto a C:WindowsSystem32 per usare le versioni a 64 bit.", "terminal.integrated.shellArgs.linux": "Argomenti della riga di comando da usare nel terminale Linux.", "terminal.integrated.shellArgs.osx": "Argomenti della riga di comando da usare nel terminale OS X.", + "terminal.integrated.shellArgs.windows": "Argomenti della riga di comando da usare nel terminale Windows.", "terminalCategory": "Terminale", "terminalIntegratedConfigurationTitle": "Terminale integrato", "viewCategory": "Visualizza" diff --git a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index de352bd3bc4..d73450e97cc 100644 --- a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Esegui testo selezionato nel terminale attivo", "workbench.action.terminal.scrollDown": "Scorri giù (riga)", "workbench.action.terminal.scrollDownPage": "Scorri giù (pagina)", + "workbench.action.terminal.scrollToBottom": "Scorri alla fine", + "workbench.action.terminal.scrollToTop": "Scorri all'inizio", "workbench.action.terminal.scrollUp": "Scorri su (riga)", "workbench.action.terminal.scrollUpPage": "Scorri su (pagina)", "workbench.action.terminal.switchTerminalInstance": "Cambia istanza del terminale", diff --git a/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 7a51bb36827..007679a33d1 100644 --- a/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,11 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Chiudi", - "insiderBuilds": "Le build di Insider diventeranno build giornaliere.", + "insiderBuilds": "Build e versioni di Insider disponibili ogni giorno", "license": "Leggi licenza", "licenseChanged": "I termini della licenza sono cambiati. Leggerli con attenzione.", - "neverShowAgain": "Non visualizzare più", + "neverShowAgain": "Non visualizzare più questo messaggio", "read the release notes": "Benvenuti in {0} versione {1}. Leggere le note sulla versione?", "readmore": "Altre informazioni", "release notes": "Note sulla versione" diff --git a/i18n/ita/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/ita/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..5b1b71ac61a --- /dev/null +++ b/i18n/ita/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Aggiungi cursori sopra/sotto", + "watermark.moveLines": "Sposta righe su/giù", + "watermark.quickOpen": "Vai al file", + "watermark.showCommands": "Riquadro comandi", + "watermark.toggleTerminal": "Attiva/Disattiva terminale", + "watermark.unboundCommand": "non associato" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..ce38dee6448 --- /dev/null +++ b/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "L'host dell'estensione è stato terminato in modo imprevisto. Ricaricare la finestra per ripristinare.", + "extensionHostProcess.error": "Errore restituito dall'host dell'estensione: {0}", + "extensionHostProcess.startupFail": "L'host dell'estensione non è stato avviato entro 10 secondi. Potrebbe essersi verificato un problema.", + "extensionHostProcess.startupFailDebug": "L'host dell'estensione non è stato avviato entro 10 secondi. Potrebbe essersi arrestato alla prima riga e richiedere un debugger per continuare.", + "extensionUnderDevelopment": "Caricamento dell'estensione di sviluppo in {0}", + "overwritingExtension": "Sovrascrittura dell'estensione {0} con {1}." +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/ita/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 4380f23ed4c..23f9a211a2a 100644 --- a/i18n/ita/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/ita/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "Scarica .NET Framework 4.5", "netVersionError": "Microsoft .NET Framework 4.5 è obbligatorio. Selezionare il collegamento per installarlo.", + "neverShowAgain": "Non visualizzare più questo messaggio", "trashFailed": "Non è stato possibile spostare '{0}' nel Cestino" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/ita/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..42f02b693f2 --- /dev/null +++ b/i18n/ita/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "Non è stato possibile salvare '{0}': {1}", + "saveFileFirst": "Il file è modificato ma non salvato. Salvarlo prima di riaprirlo con un'altra codifica." +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/ita/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..674a9a7a741 --- /dev/null +++ b/i18n/ita/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Tutti i file", + "cancel": "Annulla", + "dontSave": "&&Non salvare", + "moreFile": "...1 altro file non visualizzato", + "moreFiles": "...{0} altri file non visualizzati", + "noExt": "Nessuna estensione", + "save": "&&Salva", + "saveAll": "&&Salva tutto", + "saveChangesDetail": "Le modifiche apportate andranno perse se non vengono salvate.", + "saveChangesMessage": "Salvare le modifiche apportate a {0}?", + "saveChangesMessages": "Salvare le modifiche apportate ai file seguenti di {0}?" +} \ No newline at end of file diff --git a/i18n/jpn/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/jpn/extensions/typescript/out/typescriptServiceClient.i18n.json index 3139904b8ef..e0814e2e68a 100644 --- a/i18n/jpn/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/jpn/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "ワークスペース設定 'typescript.tsdk' を {0} に更新しました", "use": "ワークスペース ({0}) を使用する", "useBundled": "バンドル ({0}) を使用する", - "versionMismatch": "グローバルにインストールされている tsc コンパイラ ({0}) と VS Code の言語サービス ({1}) の間にバージョンの不一致が検出されました。これは、非整合のコンパイル エラーを引き起こす可能性があります。", + "versionMismatch": "グローバルな tsc ({0}) と VS Code の言語サービス ({1}) の間にバージョンの不一致があります。非整合のコンパイル エラーを引き起こす可能性があります", "versionNumber.custom": "カスタム" } \ No newline at end of file diff --git a/i18n/jpn/extensions/typescript/package.i18n.json b/i18n/jpn/extensions/typescript/package.i18n.json index 8ca1cee24ea..b0f5cb46e99 100644 --- a/i18n/jpn/extensions/typescript/package.i18n.json +++ b/i18n/jpn/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "コンマ区切り記号の後のスペース処理を定義します", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "匿名関数の関数キーワードの後のスペース処理を定義します", "format.insertSpaceAfterKeywordsInControlFlowStatements": "制御フロー ステートメント内のキーワードの後のスペース処理を定義します", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "JSX 式の始め波かっこの後と終わり波かっこの前のスペース処理を定義します。TypeScript が 2.0.6 以上である必要があります", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "左右の空でない角かっこの間のスペース処理を定義します", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "左右の空でないかっこの間のスペース処理を定義します", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "テンプレート文字列の始め波かっこの後と終わり波かっこの前のスペース処理を定義します。TypeScript が 2.0.6 以上である必要があります", "format.insertSpaceAfterSemicolonInForStatements": "for ステートメント内のセミコロンの後のスペース処理を定義します", "format.insertSpaceBeforeAndAfterBinaryOperators": "2 項演算子の後のスペース処理を定義します", "format.placeOpenBraceOnNewLineForControlBlocks": "新しい行にコントロール ブロックの始め中かっこを配置するかどうかを定義します", @@ -18,6 +20,7 @@ "javascript.validate.enable": "JavaScript の検証を有効/無効にします", "typescript.check.tscVersion": "グローバル インストール TypeScript コンパイラ (tsc など) が、使用された TypeScript 言語サービスと異なっているかどうかを確認します。", "typescript.check.workspaceVersion": "TypeScript バージョンをワークスペースで使用できるかどうかを確認する", + "typescript.experimentalAutomaticTypeAcquisition": "型の自動取得を有効にします。TypeScript が 2.0.6 以上であり、変更後に再起動する必要があります。", "typescript.reloadProjects.title": "TypeScript プロジェクトを再度読み込みます", "typescript.tsdk.desc": "使用する tsserver と lib*.d.ts ファイルが含まれているフォルダーのパスを指定します。", "typescript.tsdk_version.desc": "TS サーバーのバージョンを指定します。TS サーバーが NPM でインストールされていない場合のみ必要です。", diff --git a/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json index 71dfb929bc9..b999bdc5b10 100644 --- a/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "フォント サイズをピクセル単位で制御します。", "fontWeight": "フォントの太さを制御します。", "formatOnType": "エディターで入力後に自動的に行の書式設定を行うかどうかを制御します", + "glyphMargin": "エディターで縦のグリフ余白が表示されるかどうかを制御します。ほとんどの場合、グリフ余白はデバッグに使用されます。", "hideCursorInOverviewRuler": "概要ルーラーでカーソルを非表示にするかどうかを制御します。", "ignoreTrimWhitespace": "差分エディターが、先頭または末尾の空白の変更を差分として表示するかどうかを制御します。", "insertSpaces": "Tab キーを押すとスペースが挿入されます。`editor.detectIndentation` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。", @@ -41,6 +42,8 @@ "sideBySide": "差分エディターが差分を横に並べて表示するか、行内に表示するかを制御します", "snippetSuggestions": "他の修正候補と一緒にスニペットを表示するかどうか、およびその並び替えの方法を制御します。", "stablePeek": "エディターのコンテンツをダブルクリックするか、Esc キーを押しても、ピーク エディターを開いたままにします。", + "suggestFontSize": "候補のウィジェットのフォント サイズ", + "suggestLineHeight": "候補のウィジェットの行の高さ", "suggestOnTriggerCharacters": "トリガー文字の入力時に候補が自動的に表示されるようにするかどうかを制御します", "tabCompletion": "プレフィックスが一致する場合にスニペットを挿入します。'quickSuggestions' が無効な場合に最適です。", "tabSize": "1 つのタブに相当するスペースの数。`editor.detectIndentation` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。", diff --git a/i18n/jpn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/jpn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 16ebf719803..97aeb64add3 100644 --- a/i18n/jpn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/jpn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "定義を横に開く", "actions.previewDecl.label": "ピークの定義", "meta.title": " - {0} の定義", - "multipleResults": "クリックして、見つかった {0} の定義を表示します。" + "multipleResults": "クリックして、{0} の定義を表示します。" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/jpn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 6a23e3fb759..04f2c376416 100644 --- a/i18n/jpn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/jpn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "修正プログラムを表示する", + "quickFixWithKb": "修正プログラム ({0}) を表示する", "quickfix.trigger.label": "クイック修正" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/jpn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index f404123c8f8..c84a780b8ac 100644 --- a/i18n/jpn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/jpn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "メニュー項目において、既定と alt コマンドが同じコマンドを参照しています", "menuId.invalid": "`{0}` は有効なメニュー識別子ではありません", "menus.editorContext": "エディターのコンテキスト メニュー", + "menus.editorTabContext": "エディターのタブのコンテキスト メニュー", "menus.editorTitle": "エディターのタイトル メニュー", "menus.explorerContext": "エクスプローラーのコンテキスト メニュー", "missing.altCommand": "メニュー項目が、'commands' セクションで定義されていない alt コマンド `{0}` を参照しています。", diff --git a/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json b/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json index acc62b8f8a0..0cb19ee230b 100644 --- a/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "差分エディターを開きます。引数として 2 つのファイル パスを渡す必要があります。", "disableExtensions": "インストールされたすべての拡張機能を無効にします。", + "disableGPU": "GPU ハードウェア アクセラレータを無効にします。", "extensionHomePath": "拡張機能のルート パスを設定します。", "goto": "指定の行と列のパスのファイルを開きます (パスに :line[:column] を追加します)。", "gotoValidation": "`--goto` モードの引数は `FILE(:LINE(:COLUMN))` の形式にする必要があります。", @@ -19,6 +20,7 @@ "paths": "パス", "performance": "'Developer: Startup Performance' コマンドを有効にして開始します。", "reuseWindow": "最後のアクティブ ウィンドウにファイルまたはフォルダーを強制的に開きます。", + "showVersions": "--list-extension の使用時に、インストール済みの拡張機能のバージョンを表示します。", "uninstallExtension": "拡張機能をアンインストールします。", "usage": "使用法", "userDataDir": "ユーザー データを保持するディレクトリを指定します。ルートで実行している場合に役立ちます。", diff --git a/i18n/jpn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/jpn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index ea25859b0cb..67427ecd518 100644 --- a/i18n/jpn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/jpn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "プロパティ `{0}` は必須で、型 `string` でなければなりません", "extensionDescription.version": "プロパティ `{0}` は必須で、型 `string` でなければなりません", "vscode.extension.activationEvents": "VS Code 拡張機能のアクティブ化イベント。", + "vscode.extension.badges": "Marketplace の拡張機能ページのサイドバーに表示されるバッジの配列。", + "vscode.extension.badges.description": "バッジの説明。", + "vscode.extension.badges.href": "バッジのリンク。", + "vscode.extension.badges.url": "バッジのイメージ URL。", "vscode.extension.categories": "VS Code ギャラリーで拡張機能の分類に使用されるカテゴリ。", "vscode.extension.contributes": "このパッケージで表される VS Code 拡張機能のすべてのコントリビューション。", "vscode.extension.displayName": "VS Code ギャラリーで使用される拡張機能の表示名。", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "VS Code マーケットプレースで使用されるバナー。", "vscode.extension.galleryBanner.color": "VS Code マーケットプレース ページ ヘッダー上のバナーの色。", "vscode.extension.galleryBanner.theme": "バナーで使用されるフォントの配色テーマ。", + "vscode.extension.icon": "128x128 ピクセルのアイコンへのパス。", + "vscode.extension.preview": "Marketplace で Preview としてフラグを付けられる拡張機能を設定します。", "vscode.extension.publisher": "VS Code 拡張機能の公開元。", "vscode.extension.scripts.prepublish": "パッケージが VS Code 拡張機能として公開される前に実行されるスクリプト。" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/jpn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 852ef9c657b..4faa6069b27 100644 --- a/i18n/jpn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/jpn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "サイドバーの位置の切り替え", + "toggleLocation": "サイド バーの位置の切り替え", "view": "表示" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/jpn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index a822a6a41e8..fbe21ef959a 100644 --- a/i18n/jpn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/jpn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "閉じる", "focusPanel": "パネルにフォーカスする", + "toggleMaximizedPanel": "最大化されるパネルの切り替え", "togglePanel": "パネルの切り替え", "view": "表示" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/jpn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 32286ec9e8d..6924623e72d 100644 --- a/i18n/jpn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/jpn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "'Enter' を押して入力を確認するか 'Escape' を押して取り消します", "inputModeEntryDescription": "{0} ('Enter' を押して確認するか 'Escape' を押して取り消します)", "noResultsFound1": "一致する項目はありません", - "quickOpenInput": "'?' と入力すると、ここで実行できる処理に関するヘルプが表示されます" + "pickHistory": "履歴から削除するエディター エントリを選ぶ", + "quickOpenInput": "'?' と入力すると、ここで実行できる処理に関するヘルプが表示されます", + "removeFromEditorHistory": "エディター履歴から削除する" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json index 30d9036c633..052b3aa305a 100644 --- a/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "フォルダーを閉じる", "closeMessages": "通知メッセージを閉じる", "closeWindow": "ウィンドウを閉じる", + "current": "現在のウィンドウ", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "ファイル", "folders": "フォルダー", diff --git a/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json index 636d711be6f..dbcaeffe724 100644 --- a/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "全画面表示モードで終了した場合に、ウィンドウを全画面表示モードに復元するかどうかを制御します。", "showEditorTabs": "開いているエディターをタブに表示するかどうかを制御します。", "showIcons": "開いているエディターをアイコンで表示するかどうかを制御します。これには、アイコンのテーマを有効にする必要もあります。", + "sideBarLocation": "サイド バーの位置を制御します。ワークベンチの左右のいずれかに表示できます。", + "statusBarVisibility": "ワークベンチの下部にステータス バーを表示するかどうかを制御します。", "updateChannel": "更新チャネルから自動更新を受信するかどうかを構成します。変更後に再起動が必要です。", "updateConfigurationTitle": "更新", "view": "表示", diff --git a/i18n/jpn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 1eb2f579f92..98145681fce 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "行 {0} に対するブレークポイント条件を入力します。この条件が true の場合のみプログラムはこの位置で停止します。Enter を押して受け入れるか Esc を押して取り消します。", - "breakpointWidgetPlaceholder": "行 {0} のブレークポイントは、この条件が true の場合のみ停止します。'Enter' を押して受け入れるか 'Esc' を押して取り消します。" + "breakpointWidgetAriaLabel": "この条件が true の場合にのみプログラムはこの位置で停止します。Enter を押して受け入れるか、Esc を押して取り消します。", + "breakpointWidgetExpressionPlaceholder": "式が true と評価される場合にブレークする", + "breakpointWidgetHitCountAriaLabel": "ヒット カウントが満たされる場合にのみプログラムはこの位置で停止します。Enter を押して受け入れるか、Esc を押して取り消します。", + "breakpointWidgetHitCountPlaceholder": "ヒット カウント条件が満たされる場合にブレークする", + "expression": "式", + "hitCount": "ヒット カウント" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 297349b1068..c13ac24cecb 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "ブレークポイントのアクティブ化", - "addConditionalBreakpoint": "条件付きブレークポイントの追加", + "addConditionalBreakpoint": "条件付きブレークポイントの追加...", "addFunctionBreakpoint": "関数ブレークポイントの追加", "addToWatchExpressions": "ウォッチに追加", "addWatchExpression": "式の追加", "clearRepl": "コンソールのクリア", - "conditionalBreakpointEditorAction": "デバッグ: 条件付きブレークポイント", + "conditionalBreakpointEditorAction": "デバッグ: 条件付きブレークポイントの追加...", "continueDebug": "続行", "deactivateBreakpoints": "ブレークポイントの非アクティブ化", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "デバッグ コンソールにフォーカスを移動", "disableAllBreakpoints": "すべてのブレークポイントを無効にする", "disconnectDebug": "切断", - "editConditionalBreakpoint": "ブレークポイントの編集", + "editConditionalBreakpoint": "ブレークポイントの編集...", "enableAllBreakpoints": "すべてのブレークポイントを有効にする", "launchJsonNeedsConfigurtion": "'launch.json' を構成または修正してください", "openLaunchJson": "{0} を開く", diff --git a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 835bc121d31..0264044f7b6 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "拡張子にかかわらず、すべてのファイルに対してブレークポイントを設定できるようにします。", "debug": "デバッグ", "debugCategory": "デバッグ", + "debugConfigurationTitle": "デバッグ", "debugErrorEditor": "デバッグ エラー", "debugPanel": "デバッグ コンソール", "launchConfigDoesNotExist": "起動の構成 '{0}' がありません。", + "openExplorerOnEnd": "デバッグ セッションの終わりに Explorer ビューレットを自動的に開きます。", "toggleDebugPanel": "デバッグ コンソール", "toggleDebugViewlet": "デバッグの表示", "view": "表示" diff --git a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 43b82df465c..3a727cada4a 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "actions.repl.acceptInput": "REPL 反映入力", + "actions.repl.acceptInput": "REPL での入力を反映", "actions.repl.historyNext": "次の履歴", "actions.repl.historyPrevious": "前の履歴", - "replAriaLabel": "対話型評価環境パネル" + "replAriaLabel": "Read Eval Print Loop パネル" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 4ebddbd1196..bbde47113a1 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "クリックして従う (Ctrl を押しながらクリックすると横に開きます)", "fileLinkMac": "クリックして従う (Cmd を押しながらクリックすると横に開きます)", - "replExpressionAriaLabel": "式 {0} に値 {1} があります、対話型評価環境、デバッグ", - "replKeyValueOutputAriaLabel": "出力変数 {0} に値 {1} があります、対話型評価環境、デバッグ", - "replValueOutputAriaLabel": "{0}、対話型評価環境、デバッグ", - "replVariableAriaLabel": "変数 {0} に値 {1} があります、対話型評価環境、デバッグ", + "replExpressionAriaLabel": "式 {0} に値 {1} があります、Read Eval Print Loop、デバッグ", + "replKeyValueOutputAriaLabel": "出力変数 {0} に値 {1} があります、Read Eval Print Loop、デバッグ", + "replValueOutputAriaLabel": "{0}、Read Eval Print Loop、デバッグ", + "replVariableAriaLabel": "変数 {0} に値 {1} があります、Read Eval Print Loop、デバッグ", "stateCapture": "最初の評価からオブジェクトの状態がキャプチャされます" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 864e3320a62..6c0a15c128a 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "'launch.json' ファイルを '.vscode' フォルダー ({0}) 内に作成できません。", - "app.launch.json.configurations": "構成の一覧。新しい構成を追加したり、既存の構成を編集したります。", + "app.launch.json.configurations": "構成の一覧。IntelliSense を使用して、新しい構成を追加したり、既存の構成を編集したります。", "app.launch.json.title": "起動", "app.launch.json.version": "このファイル形式のバージョン。", "debugNoType": "デバッグ アダプター 'type' は省略不可で、型 'string' でなければなりません。", "duplicateDebuggerType": "デバッグの種類 '{0}' は既に登録されており、属性 '{1}' があります、属性 '{1}' は無視されます。", - "interactiveVariableNotFound": "アダプター {0} は、起動構成で指定されている変数 {1} を反映していません。", "selectDebug": "環境の選択", "vscode.extension.contributes.breakpoints": "ブレークポイントを提供します。", "vscode.extension.contributes.breakpoints.language": "この言語でブレークポイントを許可します。", diff --git a/i18n/jpn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json index caa0afc5bb7..a9c21e02b42 100644 --- a/i18n/jpn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json @@ -5,8 +5,8 @@ // Do not edit this file. It is machine generated. { "emmetConfigurationTitle": "Emmet", - "emmetExclude": "Emmet の省略形を展開すべきでない言語の配列。", + "emmetExclude": "emmet 省略記法を展開すべきでない言語の配列。", "emmetPreferences": "Emmet の一部のアクションやリゾルバーの動作の変更に使用される設定。", "emmetSyntaxProfiles": "指定した構文に対してプロファイルを定義するか、特定の規則がある独自のプロファイルをご使用ください。", - "triggerExpansionOnTab": "これをオンにすると、TAB キーを押したときに Emmet の省略形が展開されます。" + "triggerExpansionOnTab": "これをオンにすると、TAB キーを押したときに emmet 省略記法が展開されます." } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..44fd3bef985 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "開く", + "extensions.openSide": "横に並べて開く" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 0c041168f06..86d92a2c5c3 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "名前", "debuggers": "デバッガー ({0})", "default": "既定", + "dependencies": "依存関係", "description": "説明", "details": "詳細", + "extension id": "拡張機能の識別子", "file extensions": "ファイル拡張子", "grammar": "文章校正", + "install count": "インストール数", "keyboard shortcuts": "キーボード ショートカット(&&K)", "language id": "ID", "language name": "名前", "languages": "言語 ({0})", "license": "ライセンス", "menuContexts": "メニュー コンテキスト", + "name": "拡張機能名", "noChangelog": "使用可能な CHANGELOG はありません。", "noReadme": "利用できる README はありません。", + "publisher": "発行者名", + "rating": "評価", "setting name": "名前", "settings": "設定 ({0})", "snippets": "スニペット", diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index c49c36e3901..418b45f7b5f 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "無効な拡張機能の構成", + "disableWorkspaceExtensions": "無効な拡張機能の構成 (ワークスペース)", "extension": "拡張機能", "extensions": "拡張機能", "extensionsAutoUpdate": "拡張機能を自動的に更新します", diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 11eac847684..c0df2e4ce1e 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "推奨事項はワークスペース フォルダーでのみ利用可能です。", "OpenExtensionsFile.failed": "'.vscode' ファルダー ({0}) 内に 'extensions.json' ファイルを作成できません。", + "OpenGlobalExtensionsStorageFile.failed": "'{0}' フォルダー ({1}) 内に 'extensions.json' ファイルを作成できませんでした。", "builtin": "ビルトイン", "clearExtensionsInput": "拡張機能の入力のクリア", - "configureWorkspaceRecommendedExtensions": "ワークスペースのおすすめの拡張機能を構成する", + "configureWorkspaceRecommendedExtensions": "お勧めの拡張機能の構成 (ワークスペース)", "deleteSure": "'{0}' をアンインストールしてもよろしいですか?", "enableAction": "有効", "installAction": "インストール", @@ -19,6 +20,7 @@ "postUninstallMessage": "'{0}' は正常にアンインストールされました。非アクティブ化するには再起動してください。", "restart": "この拡張機能を有効にするには、VS Code のこのウィンドウを再起動する必要があります。\n\n続行しますか?", "restartNow": "今すぐ再起動", + "showDisabledExtensions": "無効な拡張機能の表示", "showInstalledExtensions": "インストール済みの拡張機能の表示", "showOutdatedExtensions": "古くなった拡張機能の表示", "showPopularExtensions": "人気の拡張機能の表示", diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index ad5da97400f..459dfed879d 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "予期される形式 '${publisher}.${name}'。例: 'vscode.csharp'。", "app.extensions.json.recommendations": "拡張機能のおすすめ候補の一覧。拡張機能の ID は常に '${publisher}.${name}' です。例: 'vscode.csharp'。", - "app.extensions.json.title": "拡張機能" + "app.extensions.json.title": "拡張機能", + "app.extensionsstorage.json.disabled": "無効な拡張機能の一覧。拡張機能の識別子は常に '${publisher}.${name}' です。たとえば、'vscode.csharp' です。", + "app.extensionsstorage.json.title": "拡張機能の記憶域" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index abb7047ea7f..19a423115cd 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "並べ替え順序: ↑", "descending": "並べ替え順序: ↓", "extensions": "拡張機能", + "no extensions found": "拡張機能が見つかりません", "outdatedExtensions": "{0} 古くなった拡張機能", "searchExtensions": "Marketplace で拡張機能を検索する", "sort by installs": "並べ替え: インストール数", diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index c3f8eab1ec6..749fad85a91 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "拡張機能", - "extensionsInstalling": "拡張機能 ({0} 個をインストール中...)", - "multipleIssues": "拡張機能 ({0} 個の問題)", - "multipleUpdates": "拡張機能 ({0} 個の更新プログラムが利用可能)", - "oneIssue": "拡張機能 (1 つの問題)", - "oneUpdate": "拡張機能 (1 つの更新プログラムが利用可能)" + "active": "アクティブ", + "disabled": "無効", + "disabledWorkspace": "無効 (ワークスペース)" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 88f5a51be64..92a8416066d 100644 --- a/i18n/jpn/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "横に並べて開く", "pasteFile": "貼り付け", "permDelete": "完全に削除", + "pickHistory": "比較するエディター履歴エントリを選ぶ", "refresh": "最新の情報に更新", "refreshExplorer": "エクスプローラーを最新表示する", "rename": "名前変更", diff --git a/i18n/jpn/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/git/browser/gitActions.i18n.json index d4834f3cd33..e91ec262f83 100644 --- a/i18n/jpn/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Git リモートで認証が失敗しました。", + "cancel": "キャンセル", "cleanChangesLabel": "変更を取り除く(&&C)", "commit": "Commit", "commitAll": "すべてコミット", @@ -22,16 +23,21 @@ "confirmUndoMessage": "変更をすべて取り除いてもよろしいですか?", "dirtyTreeCheckout": "チェック アウトできません。まず作業をコミットまたはステージングしてください。", "dirtyTreePull": "プルできません。まず作業をコミットまたはステージングしてください。", + "do you want to continue": "続行しますか?", "init": "初期化", "irreversible": "このアクションは元に戻すことができません。", + "never again": "OK、今後は表示しない", + "ok": "OK", "openChange": "変更を開く", "openFile": "ファイルを開く", "publish": "公開", "publishPickMessage": "リモートを選んで、ブランチ '{0}' を次に公開します:", + "pushToRemote": "プッシュ先...", + "pushToRemotePickMessage": "リモートを選んで、ブランチ '{0}' を次にプッシュします:", "refresh": "最新の情報に更新", "stageAllChanges": "すべてステージング", "stageChanges": "ステージ", - "sureSync": "Git リポジトリを同期しますか?", + "sync is unpredictable": "このアクションはコミットを '{0}' との間でプッシュしたりプルしたりします。", "undoAllChanges": "すべて取り除く", "undoChanges": "取り除く", "undoLastCommit": "前回のコミットを元に戻す", diff --git a/i18n/jpn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/jpn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..1030fc85a7a --- /dev/null +++ b/i18n/jpn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "コピー" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json index 4bc26eecf73..86ee4186a5b 100644 --- a/i18n/jpn/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "neverAgain": "次回から表示しない", + "neverAgain": "今後は表示しない", "remindLater": "後で通知する", "surveyQuestion": "短いフィードバック アンケートにご協力をお願いできますか?", "takeSurvey": "アンケートの実施" diff --git a/i18n/jpn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index cb00cb26d94..d483f50bc67 100644 --- a/i18n/jpn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "検索でファイルとフォルダーを除外するために glob パターンを構成します。files.exclude 設定からすべての glob パターンを継承します。", "exclude.boolean": "ファイル パスの照合基準となる glob パターン。これを true または false に設定すると、パターンがそれぞれ有効/無効になります。", "exclude.when": "一致するファイルの兄弟を追加的に検査します。一致するファイル名の変数として $(basename) を使用します。", + "findInFiles": "フォルダーを指定して検索", "findInFolder": "フォルダー内を検索", "name": "検索", "openAnythingHandlerDescription": "ファイルに移動する", "openSymbolDescriptionNormal": "ワークスペース内のシンボルへ移動", "search.quickOpen.includeSymbols": "グローバル シンボル検索の結果を、Quick Open の結果ファイルに含めるように構成します。", "searchConfigurationTitle": "検索", + "showSearchViewlet": "検索の表示", "showTriggerActions": "ワークスペース内のシンボルへ移動...", "view": "表示" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 2131cf85b74..8ee63e10ec4 100644 --- a/i18n/jpn/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "削除", "file.replaceAll.label": "すべて置換", "findInFolder": "フォルダー内を検索", - "focusNextInputbox": "次の入力ボックスにフォーカス", - "focusPreviousInputbox": "前の入力ボックスにフォーカス", + "focusNextInputBox": "次の入力ボックスにフォーカス", + "focusPreviousInputBox": "前の入力ボックスにフォーカス", "match.replace.label": "置換", "nextSearchTerm": "次の検索語句を表示", "previousSearchTerm": "前の検索語句を表示", - "replaceInFiles": "複数のファイルで置換", - "showSearchViewlet": "検索の表示" + "replaceInFiles": "複数のファイルで置換" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 49607f9f131..97619d13033 100644 --- a/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "起動したプロセスは既に存在しません。タスクを起動したバックグラウンド タスクが VS コードで終了すると、プロセスが孤立することがあります。", "TestAction.label": "テスト タスクの実行", "manyMarkers": "99+", + "problems": "問題", "taskCommands": "タスクの実行", "tasks": "タスク", "tasksCategory": "タスク" diff --git a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 2499e1dc106..95e5ea3526a 100644 --- a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "端末が Windows で使用するシェルのパス。Windows に付属のシェル (cmd、PowerShell、または Bash on Ubuntu) を使用する場合、64 ビット バージョンを使用するには、C:WindowsSystem32 ではなく、C:Windowssysnative を選びます。", "terminal.integrated.shellArgs.linux": "Linux 端末で使用するコマンド ライン引数。", "terminal.integrated.shellArgs.osx": "OS X 端末で使用するコマンド ライン引数。", + "terminal.integrated.shellArgs.windows": "Windows ターミナル上の場合に使用されるコマンド ライン引数。", "terminalCategory": "端末", "terminalIntegratedConfigurationTitle": "統合端末", "viewCategory": "表示" diff --git a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index d4dee2eaa7e..f69420b3b93 100644 --- a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "アクティブな端末で選択したテキストを実行", "workbench.action.terminal.scrollDown": "下にスクロール (行)", "workbench.action.terminal.scrollDownPage": "スクロール ダウン (ページ)", + "workbench.action.terminal.scrollToBottom": "一番下にスクロール", + "workbench.action.terminal.scrollToTop": "一番上にスクロール", "workbench.action.terminal.scrollUp": "上にスクロール (行)", "workbench.action.terminal.scrollUpPage": "スクロール アップ (ページ)", "workbench.action.terminal.switchTerminalInstance": "スイッチ端末インスタンス", diff --git a/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 22ad19287bd..c092dbd7301 100644 --- a/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,11 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "閉じる", - "insiderBuilds": "Insider ビルドがデイリー ビルドになります!", + "insiderBuilds": "Insider ビルドが毎日リリースされます。", "license": "ライセンスの閲覧", "licenseChanged": "ライセンス条項が変更されました。内容をご確認ください。", - "neverShowAgain": "次回から表示しない", + "neverShowAgain": "今後は表示しない", "read the release notes": "{0} v{1} へようこそ! リリース ノートを確認しますか?", "readmore": "詳細を参照", "release notes": "リリース ノート" diff --git a/i18n/jpn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/jpn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..87f446dc568 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "カーソルの追加 (上/下)", + "watermark.moveLines": "行の移動 (上/下)", + "watermark.quickOpen": "ファイルに移動する", + "watermark.showCommands": "コマンド パレット", + "watermark.toggleTerminal": "端末の切り替え", + "watermark.unboundCommand": "バインドなし" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..7509143aae8 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "拡張機能ホストが予期せずに終了しました。回復するには、ウィンドウを再度読み込んでください。", + "extensionHostProcess.error": "拡張機能ホストからのエラー: {0}", + "extensionHostProcess.startupFail": "拡張機能ホストが 10 秒以内に開始されませんでした。問題が発生している可能性があります。", + "extensionHostProcess.startupFailDebug": "拡張機能ホストが 10 秒以内に開始されませんでした。先頭行で停止している可能性があり、続行するにはデバッガーが必要です。", + "extensionUnderDevelopment": "開発の拡張機能を {0} に読み込んでいます", + "overwritingExtension": "拡張機能 {0} を {1} で上書きしています。" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/jpn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index b4d335a7eeb..558cca1df2e 100644 --- a/i18n/jpn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/jpn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": ".NET Framework 4.5 をダウンロードします", "netVersionError": "Microsoft .NET Framework 4.5 が必要です。リンクに移動してインストールしてください。", + "neverShowAgain": "今後は表示しない", "trashFailed": "'{0}' をごみ箱に移動できませんでした" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/jpn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..30a1eddb584 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "'{0}' の保存に失敗しました: {1}", + "saveFileFirst": "ファイルがダーティです。まず保存してから、別のエンコードで再度開いてください。" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/jpn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..86f4a1b1788 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "すべてのファイル", + "cancel": "キャンセル", + "dontSave": "保存しない(&&N)", + "moreFile": "...1 つの追加ファイルが表示されていません", + "moreFiles": "...{0} 個の追加ファイルが表示されていません", + "noExt": "拡張機能なし", + "save": "保存(&&S)", + "saveAll": "すべて保存(&&S)", + "saveChangesDetail": "保存しないと変更内容が失われます。", + "saveChangesMessage": "{0} に加えた変更を保存しますか?", + "saveChangesMessages": "次の {0} ファイルに対する変更を保存しますか?" +} \ No newline at end of file diff --git a/i18n/kor/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/kor/extensions/typescript/out/typescriptServiceClient.i18n.json index db6371d7deb..aa1c3718e0f 100644 --- a/i18n/kor/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/kor/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "작업 영역 설정 'typescript.tsdk'를 {0}(으)로 업데이트했습니다.", "use": "작업 영역({0}) 사용", "useBundled": "번들({0}) 사용", - "versionMismatch": "전역으로 설치된 tsc 컴파일러({0})와 VS Code의 언어 서비스({1}) 간 버전 불일치가 발견되었습니다. 따라서 일관되지 않은 컴파일 오류가 발생할 수 있습니다.", + "versionMismatch": "버전이 일치하지 않습니다. 전역 tsc({0})가 VS 코드의 언어 서비스({1})와 다릅니다. 일관되지 않은 컴파일 오류가 발생할 수 있습니다.", "versionNumber.custom": "사용자 지정" } \ No newline at end of file diff --git a/i18n/kor/extensions/typescript/package.i18n.json b/i18n/kor/extensions/typescript/package.i18n.json index bce1152cca8..3d6c7281829 100644 --- a/i18n/kor/extensions/typescript/package.i18n.json +++ b/i18n/kor/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "쉼표 구분 기호 뒤에 오는 공백 처리를 정의합니다.", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "익명 함수의 function 키워드 뒤에 오는 공백 처리를 정의합니다.", "format.insertSpaceAfterKeywordsInControlFlowStatements": "제어 흐름 문의 키워드 뒤에 오는 공백 처리를 정의합니다.", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "JSX 식의 여는 중괄호 뒤와 닫는 중괄호 앞의 공백 처리를 정의합니다. TypeScript 2.0.6 이상이 필요합니다.", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "비어 있지 않은 여는 대괄호 뒤와 닫는 대괄호 앞에 오는 공백 처리를 정의합니다.", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "비어 있지 않은 여는 괄호 뒤와 닫는 괄호 앞에 오는 공백 처리를 정의합니다.", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "템플릿 문자열의 여는 중괄호 뒤와 닫는 중괄호 앞의 공백 처리를 정의합니다. TypeScript 2.0.6 이상이 필요합니다.", "format.insertSpaceAfterSemicolonInForStatements": " for 문에서 세미콜론 뒤에 오는 공백 처리를 정의합니다.", "format.insertSpaceBeforeAndAfterBinaryOperators": "이항 연산자 뒤에 오는 공백 처리를 정의합니다.", "format.placeOpenBraceOnNewLineForControlBlocks": "제어 블록의 새 줄에 여는 중괄호를 넣을지 정의합니다.", @@ -18,6 +20,7 @@ "javascript.validate.enable": "JavaScript 유효성 검사 사용/사용 안 함", "typescript.check.tscVersion": "전역 설치 TypeScript 컴파일러(예: tsc)가 사용된 TypeScript 언어 서비스와 다른지 확인하세요.", "typescript.check.workspaceVersion": "TypeScript 버전을 작업 영역에서 사용할 수 있는지 확인하세요.", + "typescript.experimentalAutomaticTypeAcquisition": "자동 형식 인식을 사용하도록 설정합니다. TypeScript 2.0.6 이상이 필요하며 변경 후 다시 시작해야 합니다.", "typescript.reloadProjects.title": "TypeScript 프로젝트 다시 로드", "typescript.tsdk.desc": "사용할 tsserver 및 lib*.d.ts 파일이 들어 있는 폴더 경로를 지정합니다.", "typescript.tsdk_version.desc": "tsserver의 버전을 지정합니다. tsserver가 npm을 사용하여 설치되지 않은 경우에만 필요합니다.", diff --git a/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json index cf596842217..168dde02a5e 100644 --- a/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "글꼴 크기(픽셀)를 제어합니다.", "fontWeight": "글꼴 두께를 제어합니다.", "formatOnType": "입력 후 편집기에서 자동으로 줄의 서식을 지정할지 여부를 제어합니다.", + "glyphMargin": "편집기에서 세로 문자 모양 여백을 렌더링할지 여부를 제어합니다. 문자 모양 여백은 주로 디버깅에 사용됩니다.", "hideCursorInOverviewRuler": "커서가 개요 눈금자에서 가려져야 하는지 여부를 제어합니다.", "ignoreTrimWhitespace": "diff 편집기에서 선행 공백 또는 후행 공백 변경을 diffs로 표시할지 여부를 제어합니다.", "insertSpaces": " 키를 누를 때 공백을 삽입합니다. `editor.detectIndentation`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.", @@ -28,7 +29,7 @@ "overviewRulerLanes": "개요 눈금자에서 동일한 위치에 표시될 수 있는 장식 수를 제어합니다.", "parameterHints": "매개 변수 힌트를 사용하도록 설정합니다.", "quickSuggestions": "입력하는 동안 빠른 제안을 표시할지 여부를 제어합니다.", - "quickSuggestionsDelay": "빠른 제안을 표시할 지연 시간(밀리초)을 제어합니다.", + "quickSuggestionsDelay": "빠른 제안을 표시할 지연 시간(ms)을 제어합니다.", "renderControlCharacters": "편집기에서 제어 문자를 렌더링할지를 제어합니다.", "renderIndentGuides": "편집기에서 들여쓰기 가이드를 렌더링할지를 제어합니다.", "renderLineHighlight": "편집기가 현재 줄 강조 표시를 렌더링하는지 여부를 제어합니다.", @@ -40,7 +41,9 @@ "selectionHighlight": "편집기에서 선택 항목과 유사한 일치 항목을 강조 표시할지 여부를 제어합니다.", "sideBySide": "diff 편집기에서 diff를 나란히 표시할지 인라인으로 표시할지 여부를 제어합니다.", "snippetSuggestions": "코드 조각이 다른 추천과 함께 표시되는지 여부 및 정렬 방법을 제어합니다.", - "stablePeek": "해당 콘텐츠를 두 번 클릭하거나 Esc 키를 누르더라도 미리 보기 편집기를 열린 상태로 유지합니다.", + "stablePeek": "해당 콘텐츠를 두 번 클릭하거나 키를 누르더라도 Peek 편집기를 열린 상태로 유지합니다.", + "suggestFontSize": "제안 위젯의 글꼴 크기", + "suggestLineHeight": "제안 위젯의 줄 높이", "suggestOnTriggerCharacters": "트리거 문자를 입력할 때 제안을 자동으로 표시할지 여부를 제어합니다.", "tabCompletion": "접두사가 일치하는 경우 코드 조각을 삽입합니다. 'quickSuggestions'를 사용하지 않을 때 가장 잘 작동합니다.", "tabSize": "탭 한 개에 해당하는 공백 수입니다. `editor.detectIndentation`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.", diff --git a/i18n/kor/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/kor/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index dc81c90dc00..2094e80e9f3 100644 --- a/i18n/kor/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/kor/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "측면에서 정의 열기", "actions.previewDecl.label": "정의 피킹(Peeking)", "meta.title": " – 정의 {0}개", - "multipleResults": "발견된 {0} 정의를 보려면 클릭하세요." + "multipleResults": "{0}개 정의를 표시하려면 클릭하세요." } \ No newline at end of file diff --git a/i18n/kor/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/kor/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 1b3f572f3e0..70e90be680c 100644 --- a/i18n/kor/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/kor/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "수정 사항 표시", + "quickFixWithKb": "수정 사항 표시({0})", "quickfix.trigger.label": "빠른 수정" } \ No newline at end of file diff --git a/i18n/kor/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/kor/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 23defdcd329..ee860687c51 100644 --- a/i18n/kor/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/kor/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "메뉴 항목이 동일한 명령을 기본값과 alt 명령으로 참조합니다.", "menuId.invalid": "`{0}`은(는) 유효한 메뉴 식별자가 아닙니다.", "menus.editorContext": "편집기 상황에 맞는 메뉴", + "menus.editorTabContext": "편집기 탭 상황에 맞는 메뉴", "menus.editorTitle": "편집기 제목 메뉴", "menus.explorerContext": "파일 탐색기 상황에 맞는 메뉴", "missing.altCommand": "메뉴 항목이 '명령' 섹션에 정의되지 않은 alt 명령 `{0}`을(를) 참조합니다.", diff --git a/i18n/kor/src/vs/platform/environment/node/argv.i18n.json b/i18n/kor/src/vs/platform/environment/node/argv.i18n.json index c64f8c1846f..39e8a481c74 100644 --- a/i18n/kor/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/kor/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "diff 편집기를 엽니다. 인수로 두 개의 파일 경로를 전달해야 합니다.", "disableExtensions": "설치된 모든 확장을 사용하지 않도록 설정합니다.", + "disableGPU": "GPU 하드웨어 가속을 사용하지 않도록 설정합니다.", "extensionHomePath": "확장의 루트 경로를 설정합니다.", "goto": "줄과 열에 있는 경로의 파일을 엽니다(경로에 :line[:column] 추가).", "gotoValidation": "`--goto` 모드에서 인수는 `FILE(:LINE(:COLUMN))` 형식이어야 합니다.", @@ -19,6 +20,7 @@ "paths": "경로", "performance": "'Developer: Startup Performance' 명령을 사용하여 시작합니다.", "reuseWindow": "마지막 활성 창에서 파일 또는 폴더를 강제로 엽니다.", + "showVersions": "--list-extension을 사용할 경우 설치된 확장의 버전을 표시합니다.", "uninstallExtension": "확장을 제거합니다.", "usage": "사용법", "userDataDir": "사용자 데이터가 저장되는 디렉터리를 지정합니다(루트로 실행할 경우 유용함).", diff --git a/i18n/kor/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/kor/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index c2f0cbb36be..660a9006bea 100644 --- a/i18n/kor/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/kor/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "속성 `{0}`은(는) 필수이며 `string` 형식이어야 합니다.", "extensionDescription.version": "속성 `{0}`은(는) 필수이며 `string` 형식이어야 합니다.", "vscode.extension.activationEvents": "VS Code 확장에 대한 활성화 이벤트입니다.", + "vscode.extension.badges": "마켓플레이스 확장 페이지의 사이드바에 표시할 배지의 배열입니다.", + "vscode.extension.badges.description": "배지 설명입니다.", + "vscode.extension.badges.href": "배지 링크입니다.", + "vscode.extension.badges.url": "배지 이미지 URL입니다.", "vscode.extension.categories": "확장을 분류하기 위해 VS Code 갤러리에서 사용하는 범주입니다.", "vscode.extension.contributes": "이 패키지에 표시된 VS Code 확장의 전체 기여입니다.", "vscode.extension.displayName": "VS Code 갤러리에 사용되는 확장의 표시 이름입니다.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "VS Code 마켓플레이스에 사용되는 배너입니다.", "vscode.extension.galleryBanner.color": "VS Code 마켓플레이스 페이지 머리글의 배너 색상입니다.", "vscode.extension.galleryBanner.theme": "배너에 사용되는 글꼴의 색상 테마입니다.", + "vscode.extension.icon": "128x128 픽셀 아이콘의 경로입니다.", + "vscode.extension.preview": "마켓플레이스에서 Preview로 플래그 지정할 확장을 설정합니다.", "vscode.extension.publisher": "VS Code 확장의 게시자입니다.", "vscode.extension.scripts.prepublish": "패키지가 VS Code 확장 형태로 게시되기 전에 스크립트가 실행되었습니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/kor/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index fc3c936fefc..2ad17264baf 100644 --- a/i18n/kor/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/kor/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "사이드바 위치 설정/해제", + "toggleLocation": "사이드바 위치 설정/해제", "view": "보기" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/kor/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index d6f1a2cc975..2fbd5cf970e 100644 --- a/i18n/kor/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/kor/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "닫기", "focusPanel": "패널로 포커스 이동", + "toggleMaximizedPanel": "최대화된 패널 설정/해제", "togglePanel": "패널 설정/해제", "view": "보기" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/kor/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 1f0ae65ec62..229115ff9f4 100644 --- a/i18n/kor/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/kor/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "입력을 확인하려면 'Enter' 키를 누르고, 취소하려면 'Esc' 키를 누르세요.", "inputModeEntryDescription": "{0}(확인하려면 'Enter' 키를 누르고, 취소하려면 'Escape' 키를 누름)", "noResultsFound1": "결과 없음", - "quickOpenInput": "'?'를 입력하면 여기에서 수행할 수 있는 작업에 대한 도움말을 확인할 수 있습니다." + "pickHistory": "기록에서 제거할 편집기 항목 선택", + "quickOpenInput": "'?'를 입력하면 여기에서 수행할 수 있는 작업에 대한 도움말을 확인할 수 있습니다.", + "removeFromEditorHistory": "편집기 기록에서 제거" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/kor/src/vs/workbench/electron-browser/actions.i18n.json index 768514c6e9f..ef9aa936d3b 100644 --- a/i18n/kor/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/kor/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "폴더 닫기", "closeMessages": "알림 메시지 닫기", "closeWindow": "창 닫기", + "current": "현재 창", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "파일", "folders": "폴더", diff --git a/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json index b6881fe503c..7d8003ba320 100644 --- a/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "창이 전체 화면 모드에서 종료된 경우 창을 전체 화면 모드로 복원할지 여부를 제어합니다.", "showEditorTabs": "열려 있는 편집기를 탭에서 표시할지 여부를 제어합니다.", "showIcons": "열린 편집기를 아이콘과 함께 표시할지 여부를 제어합니다. 이를 위해서는 아이콘 테마도 사용하도록 설정해야 합니다.", + "sideBarLocation": "사이드바의 위치를 제어합니다. 워크벤치의 왼쪽이나 오른쪽에 표시될 수 있습니다.", + "statusBarVisibility": "워크벤치 아래쪽에서 상태 표시줄의 표시 유형을 제어합니다.", "updateChannel": "업데이트 채널에서 자동 업데이트를 받을지 여부를 구성합니다. 변경 후 다시 시작해야 합니다.", "updateConfigurationTitle": "업데이트", "view": "보기", diff --git a/i18n/kor/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 1267f9cbb45..519f74af648 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "{0} 줄에 중단점 조건을 입력합니다. 이 조건이 true인 경우에만 프로그램이 중지됩니다. 수락하려면 Enter 키를 누르고, 취소하려면 Esc 키를 누르세요.", - "breakpointWidgetPlaceholder": "{0} 줄의 중단점은 이 조건이 true인 경우에만 중지됩니다. 수락하려면 'Enter' 키를 누르고, 취소하려면 'esc' 키를 누르세요." + "breakpointWidgetAriaLabel": "이 조건이 true인 경우에만 프로그램이 여기서 중지됩니다. 수락하려면 키를 누르고, 취소하려면 키를 누르세요.", + "breakpointWidgetExpressionPlaceholder": "식이 true로 계산될 경우 중단", + "breakpointWidgetHitCountAriaLabel": "적중 횟수가 충족되는 경우에만 프로그램이 여기서 중지됩니다. 수락하려면 키를 누르고, 취소하려면 키를 누르세요.", + "breakpointWidgetHitCountPlaceholder": "적중 횟수 조건이 충족될 경우 중단", + "expression": "식", + "hitCount": "적중 횟수" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index fbc8af5c76a..97e70d80fea 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "중단점 활성화", - "addConditionalBreakpoint": "조건부 중단점 추가", + "addConditionalBreakpoint": "조건부 중단점 추가...", "addFunctionBreakpoint": "함수 중단점 추가", "addToWatchExpressions": "조사식에 추가", "addWatchExpression": "식 추가", "clearRepl": "콘솔 지우기", - "conditionalBreakpointEditorAction": "디버그: 조건부 중단점", + "conditionalBreakpointEditorAction": "디버그: 조건부 중단점 추가...", "continueDebug": "계속", "deactivateBreakpoints": "중단점 비활성화", "debugActionLabelAndKeybinding": "{0}({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "포커스 디버그 콘솔", "disableAllBreakpoints": "모든 중단점 해제", "disconnectDebug": "연결 끊기", - "editConditionalBreakpoint": "중단점 편집", + "editConditionalBreakpoint": "중단점 편집...", "enableAllBreakpoints": "모든 중단점 설정", "launchJsonNeedsConfigurtion": "'launch.json' 구성 또는 수정", "openLaunchJson": "{0} 열기", diff --git a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index c6d612c178f..c92508b7198 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "확장명에 관계없이 모든 파일에 대한 중단점을 설정할 수 있습니다.", "debug": "디버그", "debugCategory": "디버그", + "debugConfigurationTitle": "디버그", "debugErrorEditor": "디버그 오류", "debugPanel": "디버그 콘솔", "launchConfigDoesNotExist": "시작 구성 '{0}'이(가) 없습니다.", + "openExplorerOnEnd": "디버그 세션 끝에 탐색기 뷰렛을 자동으로 엽니다.", "toggleDebugPanel": "디버그 콘솔", "toggleDebugViewlet": "디버그 표시", "view": "보기" diff --git a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index eaa06eac948..c4165e7cf36 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "REPL 입력 수락", "actions.repl.historyNext": "기록 다음", "actions.repl.historyPrevious": "기록 이전", - "replAriaLabel": "읽기 평가 인쇄 루프 패널" + "replAriaLabel": "read–eval–print loop 패널" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 0a2c74e3cb8..9494821fa79 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "클릭하여 이동(측면에서 열려면 Ctrl 키를 누르고 클릭)", "fileLinkMac": "클릭하여 이동(측면에서 열려면 Cmd 키를 누르고 클릭)", - "replExpressionAriaLabel": "{0} 식에 {1} 값이 있습니다. 읽기 평가 인쇄 루프, 디버그", - "replKeyValueOutputAriaLabel": "출력 변수 {0}에 값 {1}이(가) 있습니다. 읽기 평가 인쇄 루프, 디버그", - "replValueOutputAriaLabel": "{0}, 읽기 평가 인쇄 루프, 디버그", - "replVariableAriaLabel": "{0} 변수에 {1} 값이 있습니다. 읽기 평가 인쇄 루프, 디버그", + "replExpressionAriaLabel": "{0} 식에 {1} 값이 있습니다. read–eval–print loop, 디버그", + "replKeyValueOutputAriaLabel": "출력 변수 {0}에 값 {1}이(가) 있습니다. read–eval–print loop, 디버그", + "replValueOutputAriaLabel": "{0}, read–eval–print loop, 디버그", + "replVariableAriaLabel": "{0} 변수에 {1} 값이 있습니다. read–eval–print loop, 디버그", "stateCapture": "개체 상태는 첫 번재 평가에서 캡처됩니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index fa8bbdb468a..923b2c8d9b9 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "'.vscode' 폴더({0}) 내에 'launch.json' 파일을 만들 수 없습니다.", - "app.launch.json.configurations": "구성 목록입니다. 새 구성을 추가하거나 기존 구성을 편집합니다.", + "app.launch.json.configurations": "구성 목록입니다. IntelliSense를 사용하여 새 구성을 추가하거나 기존 구성을 편집합니다.", "app.launch.json.title": "시작", "app.launch.json.version": "이 파일 형식의 버전입니다.", "debugNoType": "디버그 어댑터 '형식'은 생략할 수 없으며 '문자열' 형식이어야 합니다.", "duplicateDebuggerType": "디버그 형식 '{0}'은(는) 이미 등록되어 있고 '{1}' 특성을 포함합니다. '{1}' 특성을 무시합니다.", - "interactiveVariableNotFound": "{0} 어댑터가 시작 구성에 지정된 {1} 변수에 영향을 주지 않습니다.", "selectDebug": "환경 선택", "vscode.extension.contributes.breakpoints": "중단점을 적용합니다.", "vscode.extension.contributes.breakpoints.language": "이 언어에 대해 중단점을 허용합니다.", diff --git a/i18n/kor/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json b/i18n/kor/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json index dfb3611ad08..03ce239d162 100644 --- a/i18n/kor/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json @@ -6,7 +6,7 @@ { "console.title": "VS Code 콘솔", "linux.term.failed": "'{0}'에서 실패했습니다(종료 코드: {1}).", - "mac.terminal.script.failed": "스크립트 '{0}'에 실패했습니다(종료 코드: {1}).", + "mac.terminal.script.failed": "스크립트 '{0}'이(가) 실패했습니다(종료 코드: {1}).", "mac.terminal.type.not.supported": "'{0}'이(가) 지원되지 않습니다.", "press.any.key": "계속하려면 아무 키나 누르세요." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..4d3827236e1 --- /dev/null +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "열기", + "extensions.openSide": "측면에서 열기" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index e1d48e2d069..3e679294389 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "이름", "debuggers": "디버거({0})", "default": "기본값", + "dependencies": "종속성", "description": "설명", "details": "세부 정보", + "extension id": "확장 ID", "file extensions": "파일 확장명", "grammar": "문법", + "install count": "설치 수", "keyboard shortcuts": "바로 가기 키(&&K)", "language id": "ID", "language name": "이름", "languages": "언어({0})", "license": "라이선스", "menuContexts": "메뉴 컨텍스트", + "name": "확장 이름", "noChangelog": "CHANGELOG를 사용할 수 없습니다.", "noReadme": "사용 가능한 추가 정보가 없습니다.", + "publisher": "게시자 이름", + "rating": "등급", "setting name": "이름", "settings": "설정({0})", "snippets": "코드 조각", diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 41ce54245d5..8f1e87990aa 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "사용할 수 없는 확장 구성", + "disableWorkspaceExtensions": "사용할 수 없는 확장 구성(작업 영역)", "extension": "확장", "extensions": "확장", "extensionsAutoUpdate": "자동으로 확장 업데이트", diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 10cd2c2d7ab..33d5f7f1ebd 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "권장 사항은 작업 영역 폴더에서만 사용할 수 있습니다.", "OpenExtensionsFile.failed": "'.vscode' 폴더 내에 'extensions.json' 파일을 만들 수 없습니다({0}).", + "OpenGlobalExtensionsStorageFile.failed": "'{0}' 폴더 내에 'extensions.json' 파일을 만들 수 없습니다({1}).", "builtin": "기본 제공", "clearExtensionsInput": "확장 입력 지우기", - "configureWorkspaceRecommendedExtensions": "작업 영역 권장 확장 구성", + "configureWorkspaceRecommendedExtensions": "권장 확장 구성(작업 영역)", "deleteSure": "'{0}'을(를) 제거할까요?", "enableAction": "사용", "installAction": "설치", @@ -19,6 +20,7 @@ "postUninstallMessage": "'{0}'이(가) 제거되었습니다. 비활성화하려면 다시 시작하세요.", "restart": "이 확장을 사용하도록 설정하려면 이 VS Code 창을 다시 시작해야 합니다.\n\n계속할까요?", "restartNow": "지금 다시 시작", + "showDisabledExtensions": "사용할 수 없는 확장 표시", "showInstalledExtensions": "설치된 확장 표시", "showOutdatedExtensions": "만료된 확장 표시", "showPopularExtensions": "자주 사용되는 확장 표시", diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index 711ef1cb13d..9437ca8c75f 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "필요한 형식은 '${publisher}.${name}'입니다. 예: 'vscode.csharp'", "app.extensions.json.recommendations": "확장 권장 목록입니다. 확장의 식별자는 항상 '${publisher}.${name}'입니다. 예: 'vscode.csharp'", - "app.extensions.json.title": "확장" + "app.extensions.json.title": "확장", + "app.extensionsstorage.json.disabled": "사용할 수 없는 확장 목록입니다. 확장 ID는 항상 '${publisher}.${name}'입니다(예: 'vscode.csharp').", + "app.extensionsstorage.json.title": "확장 저장소" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 69c4e337b87..642bed7480e 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "정렬 순서: ↑", "descending": "정렬 순서: ↓", "extensions": "확장", + "no extensions found": "확장을 찾을 수 없습니다.", "outdatedExtensions": "{0}개의 만료된 확장", "searchExtensions": "마켓플레이스에서 확장 검색", "sort by installs": "정렬 기준: 설치 수", diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 487b664d371..cccc3f78e93 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "확장", - "extensionsInstalling": "확장({0} 설치 중...)", - "multipleIssues": "확장(문제 {0}개)", - "multipleUpdates": "확장(업데이트 {0}개 사용 가능)", - "oneIssue": "확장(문제 1개)", - "oneUpdate": "확장(업데이트 1개 사용 가능)" + "active": "활성", + "disabled": "사용 안 함", + "disabledWorkspace": "사용 안 함(작업 영역)" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/kor/src/vs/workbench/parts/files/browser/fileActions.i18n.json index d6cc263e989..e6ec699abf0 100644 --- a/i18n/kor/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "측면에서 열기", "pasteFile": "붙여넣기", "permDelete": "영구히 삭제", + "pickHistory": "비교할 편집기 기록 항목 선택", "refresh": "새로 고침", "refreshExplorer": "탐색기 새로 고침", "rename": "이름 바꾸기", diff --git a/i18n/kor/src/vs/workbench/parts/files/browser/files.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/files/browser/files.contribution.i18n.json index e08b48c62b2..8906eb00764 100644 --- a/i18n/kor/src/vs/workbench/parts/files/browser/files.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/files/browser/files.contribution.i18n.json @@ -7,7 +7,7 @@ "associations": "파일과 언어의 연결을 구성하세요(예: \"*.extension\": \"html\"). 이러한 구성은 설치된 언어의 기본 연결보다 우선 순위가 높습니다.", "autoReveal": "탐색기에서 파일을 열 때 자동으로 표시할지를 제어합니다.", "autoSave": "더티 파일 자동 저장을 제어합니다. 허용되는 값은 \"{0}\", \"{1}\", \"{2}\"(편집기가 포커스를 잃음), \"{3}\"(창이 포커스를 잃음)입니다. \"{4}\"(으)로 설정하는 경우 \"files.autoSaveDelay\"에서 지연을 구성할 수 있습니다.", - "autoSaveDelay": "더티 파일을 자동으로 저장할 때까지의 지연(밀리초)을 제어합니다. \"files.autoSave\"를 \"{0}\"(으)로 설정한 경우에만 적용됩니다.", + "autoSaveDelay": "더티 파일을 자동으로 저장할 때까지의 지연(ms)을 제어합니다. \"files.autoSave\"를 \"{0}\"(으)로 설정한 경우에만 적용됩니다.", "binaryFileEditor": "이진 파일 편집기", "dynamicHeight": "열려 있는 편집기 섹션의 높이가 요소 수에 따라 동적으로 조정되는지 여부를 제어합니다.", "enableDragAndDrop": "탐색기에서 끌어서 놓기를 통한 파일 및 폴더 이동을 허용하는지를 제어합니다.", diff --git a/i18n/kor/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/kor/src/vs/workbench/parts/git/browser/gitActions.i18n.json index a6923e9caf4..38b69396dca 100644 --- a/i18n/kor/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "원격 git에 대한 인증이 실패했습니다.", + "cancel": "취소", "cleanChangesLabel": "변경 내용 정리(&&C)", "commit": "Commit", "commitAll": "모두 커밋", @@ -22,16 +23,21 @@ "confirmUndoMessage": "모든 변경 내용을 정리할까요?", "dirtyTreeCheckout": "체크 아웃할 수 없습니다. 먼저 작업을 커밋하거나 스테이지하세요.", "dirtyTreePull": "끌어올 수 없습니다. 먼저 작업을 커밋하거나 스테이지하세요.", + "do you want to continue": "계속하시겠습니까?", "init": "Init", "irreversible": "이 작업은 취소할 수 없습니다.", + "never again": "다시 표시 안 함", + "ok": "확인", "openChange": "변경 내용 열기", "openFile": "파일 열기", "publish": "게시", "publishPickMessage": "'{0}' 분기를 다음에 게시하려면 원격을 선택합니다.", + "pushToRemote": "푸시 대상...", + "pushToRemotePickMessage": "'{0}' 분기를 푸시할 원격 선택:", "refresh": "새로 고침", "stageAllChanges": "모두 스테이징", "stageChanges": "단계", - "sureSync": "Git 리포지토리를 동기화할까요?", + "sync is unpredictable": "이 작업은 '{0}' 간에 커밋을 푸시하고 풀합니다.", "undoAllChanges": "모두 정리", "undoChanges": "정리", "undoLastCommit": "마지막 커밋 실행 취소", diff --git a/i18n/kor/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/kor/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..0b93c67b9af --- /dev/null +++ b/i18n/kor/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "복사" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index faea574508e..3afca0dab12 100644 --- a/i18n/kor/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "검색에서 파일 및 폴더를 제외하도록 GLOB 패턴을 구성합니다. files.exclude 설정에서 모든 GLOB 패턴을 상속합니다.", "exclude.boolean": "파일 경로를 일치시킬 GLOB 패턴입니다. 패턴을 사용하거나 사용하지 않도록 설정하려면 true 또는 false로 설정하세요.", "exclude.when": "일치하는 파일의 형제에 대한 추가 검사입니다. $(basename)을 일치하는 파일 이름에 대한 변수로 사용하세요.", + "findInFiles": "파일에서 찾기", "findInFolder": "폴더에서 찾기", "name": "검색", "openAnythingHandlerDescription": "파일로 이동", "openSymbolDescriptionNormal": "작업 영역에서 기호로 이동", "search.quickOpen.includeSymbols": "Quick Open에 대한 파일 결과에 전역 기호 검색 결과를 포함하도록 구성합니다.", "searchConfigurationTitle": "검색", + "showSearchViewlet": "검색 표시", "showTriggerActions": "작업 영역에서 기호로 이동...", "view": "보기" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/kor/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 5255c68dab4..cc18ba59d47 100644 --- a/i18n/kor/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "제거", "file.replaceAll.label": "모두 바꾸기", "findInFolder": "폴더에서 찾기", - "focusNextInputbox": "다음 입력 상자에 포커스", - "focusPreviousInputbox": "이전 입력 상자에 포커스", + "focusNextInputBox": "다음 입력 상자에 포커스", + "focusPreviousInputBox": "이전 입력 상자에 포커스", "match.replace.label": "바꾸기", "nextSearchTerm": "다음 검색어 표시", "previousSearchTerm": "이전 검색어 표시", - "replaceInFiles": "파일에서 바꾸기", - "showSearchViewlet": "검색 표시" + "replaceInFiles": "파일에서 바꾸기" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 4da307212c1..de4f6be4a32 100644 --- a/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "시작된 프로세스가 더 이상 존재하지 않습니다. 작업에서 생성된, VS 코드를 끝내는 백그라운드 작업이 분리된 프로세스가 될 수 있습니다.", "TestAction.label": "테스트 작업 실행", "manyMarkers": "99+", + "problems": "문제", "taskCommands": "작업 실행", "tasks": "작업", "tasksCategory": "작업" diff --git a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index a7dc9e51f78..99b8a051924 100644 --- a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "터미널이 Windows에서 사용하는 셸의 경로입니다. Windows와 함께 제공되는 셸을 사용하는 경우(cmd, PowerShell 또는 Ubuntu의 Bash) 64비트 버전을 사용하려면 C:WindowsSystem32보다 C:Windowssysnative가 더 좋습니다.", "terminal.integrated.shellArgs.linux": "Linux 터미널에 있을 때 사용할 명령줄 인수입니다.", "terminal.integrated.shellArgs.osx": "OS X 터미널에 있을 때 사용할 명령줄 인수입니다.", + "terminal.integrated.shellArgs.windows": "Windows 터미널에 있을 때 사용할 명령줄 인수입니다.", "terminalCategory": "터미널", "terminalIntegratedConfigurationTitle": "통합 터미널", "viewCategory": "보기" diff --git a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index ebb5508db13..4090e5f95c3 100644 --- a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "활성 터미널에서 선택한 텍스트 실행", "workbench.action.terminal.scrollDown": "아래로 스크롤(줄)", "workbench.action.terminal.scrollDownPage": "아래로 스크롤(페이지)", + "workbench.action.terminal.scrollToBottom": "맨 아래로 스크롤", + "workbench.action.terminal.scrollToTop": "맨 위로 스크롤", "workbench.action.terminal.scrollUp": "위로 스크롤(줄)", "workbench.action.terminal.scrollUpPage": "위로 스크롤(페이지)", "workbench.action.terminal.switchTerminalInstance": "터미널 인스턴스 전환", diff --git a/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 2151b2d6d69..b1dbf23ce44 100644 --- a/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "닫기", - "insiderBuilds": "참가자 빌드가 일일 빌드가 되고 있습니다!", + "insiderBuilds": "참가자 빌드가 매일 릴리스됩니다.", "license": "라이선스 읽기", "licenseChanged": "사용 조건이 변경되었습니다. 자세히 읽어보세요.", "neverShowAgain": "다시 표시 안 함", diff --git a/i18n/kor/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/kor/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..b3745b0b87b --- /dev/null +++ b/i18n/kor/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "위/아래에 커서 추가", + "watermark.moveLines": "위/아래로 줄 이동", + "watermark.quickOpen": "파일로 이동", + "watermark.showCommands": "명령 팔레트", + "watermark.toggleTerminal": "터미널 설정/해제", + "watermark.unboundCommand": "바인딩 안 됨" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..7bcb80b79c2 --- /dev/null +++ b/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "확장 호스트가 예기치 않게 종료되었습니다. 복구하려면 창을 다시 로드하세요.", + "extensionHostProcess.error": "확장 호스트에서 오류 발생: {0}", + "extensionHostProcess.startupFail": "확장 호스트가 10초 이내에 시작되지 않았습니다. 문제가 발생했을 수 있습니다.", + "extensionHostProcess.startupFailDebug": "확장 호스트가 10초 내에 시작되지 않았습니다. 첫 번째 줄에서 중지되었을 수 있습니다. 계속하려면 디버거가 필요합니다.", + "extensionUnderDevelopment": "{0}에서 개발 확장 로드 중", + "overwritingExtension": "확장 {0}을(를) {1}(으)로 덮어쓰는 중입니다." +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/kor/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 27bfccc410d..5f1a7a442f8 100644 --- a/i18n/kor/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/kor/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": ".NET Framework 4.5 다운로드", "netVersionError": "Microsoft .NET Framework 4.5가 필요합니다. 설치하려면 링크를 클릭하세요.", + "neverShowAgain": "다시 표시 안 함", "trashFailed": "'{0}'을(를) 휴지통으로 이동하지 못함" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/kor/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..33cd2f6b233 --- /dev/null +++ b/i18n/kor/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "'{0}'을(를) 저장하지 못했습니다. {1}", + "saveFileFirst": "더티 파일입니다. 다른 인코딩을 사용하여 파일을 다시 열기 전에 파일을 저장하세요." +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/kor/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..3b1be48a0a7 --- /dev/null +++ b/i18n/kor/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "모든 파일", + "cancel": "취소", + "dontSave": "저장 안 함(&&N)", + "moreFile": "...1개의 추가 파일이 표시되지 않음", + "moreFiles": "...{0}개의 추가 파일이 표시되지 않음", + "noExt": "확장 없음", + "save": "저장(&&S)", + "saveAll": "모두 저장(&&S)", + "saveChangesDetail": "변경 내용을 저장하지 않은 경우 변경 내용이 손실됩니다.", + "saveChangesMessage": "{0}에 대한 변경 내용을 저장할까요?", + "saveChangesMessages": "다음 {0}개 파일에 대한 변경 내용을 저장할까요?" +} \ No newline at end of file diff --git a/i18n/rus/extensions/css/client/out/cssMain.i18n.json b/i18n/rus/extensions/css/client/out/cssMain.i18n.json index b37bc7356b8..73454bf8b97 100644 --- a/i18n/rus/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/rus/extensions/css/client/out/cssMain.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "cssserver.name": "Сервер языка CSS" + "cssserver.name": "Языковой сервер CSS" } \ No newline at end of file diff --git a/i18n/rus/extensions/html/client/out/htmlMain.i18n.json b/i18n/rus/extensions/html/client/out/htmlMain.i18n.json index 6289dec383f..364064582bf 100644 --- a/i18n/rus/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/rus/extensions/html/client/out/htmlMain.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "htmlserver.name": "Сервер языка HTML" + "htmlserver.name": "Языковой сервер HTML" } \ No newline at end of file diff --git a/i18n/rus/extensions/json/client/out/jsonMain.i18n.json b/i18n/rus/extensions/json/client/out/jsonMain.i18n.json index 6ec87a7201d..666d0c168d2 100644 --- a/i18n/rus/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/rus/extensions/json/client/out/jsonMain.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "jsonserver.name": "Сервер языка JSON" + "jsonserver.name": "Языковой сервер JSON" } \ No newline at end of file diff --git a/i18n/rus/extensions/php/package.i18n.json b/i18n/rus/extensions/php/package.i18n.json index ca682fc194e..8c37098ad38 100644 --- a/i18n/rus/extensions/php/package.i18n.json +++ b/i18n/rus/extensions/php/package.i18n.json @@ -7,5 +7,5 @@ "configuration.title": "PHP", "configuration.validate.enable": "Включена ли проверка PHP.", "configuration.validate.executablePath": "Указывает на исполняемый файл PHP.", - "configuration.validate.run": "Запускается ли Linter при сохранении или в типе." + "configuration.validate.run": "Запускается ли анализатор кода при сохранении или при печати." } \ No newline at end of file diff --git a/i18n/rus/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/rus/extensions/typescript/out/typescriptServiceClient.i18n.json index b4613d0a872..ebe3cd49761 100644 --- a/i18n/rus/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/rus/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -11,7 +11,7 @@ "moreInformation": "Дополнительные сведения", "neverCheckLocalVesion": "Никогда не проверять версию рабочей области.", "noServerFound": "Путь \"{0}\" не указывает на допустимый файл программы установки tsserver. Возможности языка TypeScript будут отключены.", - "serverCouldNotBeStarted": "Не удалось запустить сервер языка TypeScript. Сообщение об ошибке: {0}", + "serverCouldNotBeStarted": "Не удалось запустить языковой сервер TypeScript. Сообщение об ошибке: \"{0}\".", "serverDied": "Служба языка Typescript пять раз непредвиденно завершила работу за последние пять минут. Отправьте отчет об ошибке.", "serverDiedAfterStart": "Языковая служба TypeScript пять раз завершила работу сразу после запуска. Служба не будет перезапущена. Отправьте отчет об ошибке.", "updateGlobalWorkspaceCheck": "Значение параметра пользователя \"typescript.check.workspaceVersion\" изменено на false.", @@ -20,6 +20,6 @@ "updatedtsdk": "Значение параметра рабочей области \"typescript.tsdk\" изменено на {0}.", "use": "Использовать рабочую область ({0})", "useBundled": "Использовать в рамках пакета ({0})", - "versionMismatch": "Обнаружено несоответствие версий глобально установленного компилятора tsc ({0}) и службы языка VS Code ({1}). Это может привести к ошибкам согласованности компиляции.", + "versionMismatch": "Обнаружено несоответствие глобального tsc ({0}) и службы языка VS Code ({1}). Это может привести к ошибкам согласованности компиляции.", "versionNumber.custom": "пользовательский" } \ No newline at end of file diff --git a/i18n/rus/extensions/typescript/package.i18n.json b/i18n/rus/extensions/typescript/package.i18n.json index 7f3c01d3778..0289fe7a66a 100644 --- a/i18n/rus/extensions/typescript/package.i18n.json +++ b/i18n/rus/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Определяет метод обработки пробелов после разделителя-запятой", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Определяет метод обработки пробелов после ключевого слова анонимной функции", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Определяет метод обработки пробелов после ключевых слов в операторе потока управления", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Определяет метод обработки пробелов после открытия и до закрытия скобок выражения JSX. Требуется TypeScript 2.0.6 или более поздней версии.", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Определяет метод обработки пробелов после открытия и до закрытия непустых квадратных скобок", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Определяет метод обработки пробелов после открытия и до закрытия непустых круглых скобок", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Определяет метод обработки пробелов после открытия и до закрытия скобок в строке шаблона. Требуется TypeScript 2.0.6 или более поздней версии.", "format.insertSpaceAfterSemicolonInForStatements": " Определяет метод обработки пробелов после точки с запятой в операторе for", "format.insertSpaceBeforeAndAfterBinaryOperators": "Определяет метод обработки пробелов после двоичного оператора", "format.placeOpenBraceOnNewLineForControlBlocks": "Определяет, помещается ли открывающая фигурная скобка в новую строку для управляющих блоков", @@ -18,6 +20,7 @@ "javascript.validate.enable": "Включить или отключить проверку JavaScript", "typescript.check.tscVersion": "Проверка отличия компилятора TypeScript глобальной установки (например, tsc) от используемой языковой службы TypeScript.", "typescript.check.workspaceVersion": "Проверка наличия версии TypeScript в рабочей области", + "typescript.experimentalAutomaticTypeAcquisition": "Включить автоматическое получение типа. Требуется TypeScript 2.0.6 или более поздней версии и перезапуск после внесения изменений.", "typescript.reloadProjects.title": "Перезагрузка проекта TypeScript", "typescript.tsdk.desc": "Указывает путь к папке, содержащей файлы tsserver и lib*.d.ts, которые необходимо использовать.", "typescript.tsdk_version.desc": "Указывает версию tsserver. Требуется, только если tsserver не установлен с помощью npm.", diff --git a/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json index 0cc5a43f46a..3142a472988 100644 --- a/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Управляет размером шрифта в пикселях.", "fontWeight": "Управляет насыщенностью шрифта.", "formatOnType": "Управляет параметром, определяющим, должен ли редактор автоматически форматировать строку после ввода.", + "glyphMargin": "Управляет отображением вертикальных полей глифа в редакторе. Поля глифа в основном используются для отладки.", "hideCursorInOverviewRuler": "Управляет скрытием курсора в обзорной линейке.", "ignoreTrimWhitespace": "Определяет, должен ли редактор несовпадений трактовать несовпадения символов-разделителей как различия.", "insertSpaces": "Вставлять пробелы при нажатии клавиши TAB. Эта настройка переопределяется на основании содержимого файла, когда включен параметр \"editor.detectIndentation\".", @@ -40,7 +41,9 @@ "selectionHighlight": "Определяет, будет ли редактор выделять фрагменты, совпадающие с выделенным текстом.", "sideBySide": "Определяет, как редактор несовпадений отображает отличия: рядом или в тексте.", "snippetSuggestions": "Управляет отображением фрагментов вместе с другими предложениями и их сортировкой.", - "stablePeek": "Оставлять просматривающие редакторы открытыми, даже если дважды щелкнуто их содержимое или нажата клавиша ESC.", + "stablePeek": "Оставлять быстрые редакторы открытыми, даже если дважды щелкнуто их содержимое или нажата клавиша ESC.", + "suggestFontSize": "Размер шрифта мини-приложения предложений", + "suggestLineHeight": "Высота строки мини-приложения с предложениями", "suggestOnTriggerCharacters": "Определяет, должны ли при вводе триггерных символов автоматически отображаться предложения.", "tabCompletion": "Вставка фрагментов при совпадении их префиксов. Функция работает оптимально, если параметр \"quickSuggestions\" отключен.", "tabSize": "Число пробелов в табуляции. Эта настройка переопределяется на основании содержимого файла, когда включен параметр \"editor.detectIndentation\".", diff --git a/i18n/rus/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/rus/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index f8360af4669..b6652a9a5ad 100644 --- a/i18n/rus/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/rus/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Открыть определение сбоку", "actions.previewDecl.label": "Показать определение", "meta.title": " — определения {0}", - "multipleResults": "Щелкните, чтобы отобразить найденные определения ({0})." + "multipleResults": "Щелкните, чтобы отобразить определения ({0})." } \ No newline at end of file diff --git a/i18n/rus/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/rus/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index ca37061159b..cc4d4187e72 100644 --- a/i18n/rus/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/rus/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Показать исправления", + "quickFixWithKb": "Показать исправления ({0})", "quickfix.trigger.label": "Быстрое исправление" } \ No newline at end of file diff --git a/i18n/rus/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/rus/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 8081de0bff6..485caa87c1c 100644 --- a/i18n/rus/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/rus/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "Элемент меню ссылается на одну и ту же команду как команду по умолчанию и альтернативную команду", "menuId.invalid": "\"{0}\" не является допустимым идентификатором меню", "menus.editorContext": "Контекстное меню редактора", + "menus.editorTabContext": "Контекстное меню вкладок редактора", "menus.editorTitle": "Главное меню редактора", "menus.explorerContext": "Контекстное меню проводника", "missing.altCommand": "Элемент меню ссылается на альтернативную команду \"{0}\", которая не определена в разделе commands.", diff --git a/i18n/rus/src/vs/platform/environment/node/argv.i18n.json b/i18n/rus/src/vs/platform/environment/node/argv.i18n.json index 084442ebd56..2212d994001 100644 --- a/i18n/rus/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/rus/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Открыть редактор несовпадений. Требуется указать два пути к файлам в качестве аргументов.", "disableExtensions": "Отключить все установленные расширения.", + "disableGPU": "Отключить аппаратное ускорение GPU.", "extensionHomePath": "Задайте корневой путь для расширений.", "goto": "Открыть файл по пути, указанному в определенной строке и столбце (требуется добавить :line[:column] к пути).", "gotoValidation": "Аргументы в режиме \"--goto\" должны быть в формате \"ФАЙЛ(:СТРОКА(:СТОЛБЕЦ))\".", @@ -19,6 +20,7 @@ "paths": "пути", "performance": "Запустите с включенной командой \"Developer: Startup Performance\".", "reuseWindow": "Принудительно открыть файл или папку в последнем активном окне.", + "showVersions": "Показать версии установленных расширений при указании параметра --list-extension.", "uninstallExtension": "Удаляет расширение.", "usage": "Использование", "userDataDir": "Указывает каталог, в котором хранятся данные пользователей, используется в случае выполнения от имени привилегированного пользователя.", diff --git a/i18n/rus/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/rus/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 6fe310be69a..0200bc29633 100644 --- a/i18n/rus/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/rus/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "свойство \"{0}\" является обязательным и должно иметь тип string", "extensionDescription.version": "свойство \"{0}\" является обязательным и должно иметь тип string", "vscode.extension.activationEvents": "События активации для расширения кода VS Code.", + "vscode.extension.badges": "Массив эмблем, отображаемых на боковой панели страницы расширения Marketplace.", + "vscode.extension.badges.description": "Описание эмблемы.", + "vscode.extension.badges.href": "Ссылка на эмблему.", + "vscode.extension.badges.url": "URL-адрес изображения эмблемы.", "vscode.extension.categories": "Категории, используемые коллекцией VS Code для классификации расширения.", "vscode.extension.contributes": "Все публикации расширения VS Code, представленные этим пакетом.", "vscode.extension.displayName": "Отображаемое имя расширения, используемого в коллекции VS Code.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Баннер, используемый в магазине VS Code.", "vscode.extension.galleryBanner.color": "Цвет баннера в заголовке страницы магазина VS Code.", "vscode.extension.galleryBanner.theme": "Цветовая тема для шрифта, используемого в баннере.", + "vscode.extension.icon": "Путь к значку размером 128 x 128 пикселей.", + "vscode.extension.preview": "Добавляет метку \"Предварительная версия\" для расширения в Marketplace.", "vscode.extension.publisher": "Издатель расширения VS Code.", "vscode.extension.scripts.prepublish": "Скрипт, выполняемый перед публикацией пакета в качестве расширения VS Code." } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/rus/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 355c2c06960..3e03b98e62c 100644 --- a/i18n/rus/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/rus/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Изменить положение боковой панели", + "toggleLocation": "Расположение боковой панели", "view": "Просмотреть" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/rus/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 9b37ee42db3..9c2156c6eec 100644 --- a/i18n/rus/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/rus/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Закрыть", "focusPanel": "Фокус на панель", + "toggleMaximizedPanel": "Развернутая панель", "togglePanel": "Панель", "view": "Просмотреть" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/rus/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 7a244bcbbd5..125c25e6fd2 100644 --- a/i18n/rus/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/rus/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Нажмите клавишу ВВОД, чтобы подтвердить введенные данные, или ESCAPE для отмены", "inputModeEntryDescription": "{0} (нажмите клавишу ВВОД, чтобы подтвердить введенные данные, или ESCAPE для отмены)", "noResultsFound1": "Результаты не найдены", - "quickOpenInput": "Введите \"?\", чтобы узнать, какие отсюда можно выполнить действия" + "pickHistory": "Выбор записи редактора, удаляемой из журнала", + "quickOpenInput": "Введите \"?\", чтобы узнать, какие отсюда можно выполнить действия", + "removeFromEditorHistory": "Удалить из журнала редакторов" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/rus/src/vs/workbench/electron-browser/actions.i18n.json index f3d78737543..f16cd1677c2 100644 --- a/i18n/rus/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/rus/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Закрыть папку", "closeMessages": "Закрыть уведомления", "closeWindow": "Закрыть окно", + "current": "Текущее окно", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "файлы", "folders": "папки", diff --git a/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json index 1b90b61b061..9dd76bfcb12 100644 --- a/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "Определяет, должно ли окно восстанавливаться в полноэкранном режиме, если оно было закрыто в полноэкранном режиме.", "showEditorTabs": "Определяет, должны ли открытые редакторы отображаться на вкладках или нет.", "showIcons": "Определяет, должны ли открытые редакторы отображаться со значком. Требует включить тему значков.", + "sideBarLocation": "Определяет расположение боковой панели: слева или справа от рабочего места.", + "statusBarVisibility": "Управляет видимостью строки состояния в нижней части рабочего места.", "updateChannel": "Настройте канал обновления, по которому вы будете получать обновления. После изменения значения необходим перезапуск.", "updateConfigurationTitle": "Обновить", "view": "Просмотреть", diff --git a/i18n/rus/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 803057b3720..8b54650d608 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Введите условие точки останова для строки {0}. Выполнение программы прервется в этом месте, только если условие выполнится. Нажмите клавишу ВВОД для принятия или ESCAPE для отмены.", - "breakpointWidgetPlaceholder": "Точка останова в строке {0} сработает, только если это условие выполнится. Нажмите клавишу ВВОД для принятия или ESCAPE для отмены." + "breakpointWidgetAriaLabel": "Выполнение программы прервется в этом месте, только если условие выполнится. Нажмите клавишу ВВОД для принятия или ESC для отмены.", + "breakpointWidgetExpressionPlaceholder": "Выполнить прерывание, если выражение равно \"True\"", + "breakpointWidgetHitCountAriaLabel": "Выполнение программы прервется в этом месте, только если достигнуто определенное количество обращений. Нажмите клавишу ВВОД для принятия или ESC для отмены.", + "breakpointWidgetHitCountPlaceholder": "Выполнить прерывание при определенном количестве обращений", + "expression": "Выражение", + "hitCount": "Количество обращений" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 682b27f58c6..411c89a8ecf 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Активировать точки останова", - "addConditionalBreakpoint": "Добавить условную точку останова", + "addConditionalBreakpoint": "Добавить условную точку останова…", "addFunctionBreakpoint": "Добавить точку останова в функции", "addToWatchExpressions": "Добавить контрольное значение", "addWatchExpression": "Добавить выражение", "clearRepl": "Очистить консоль", - "conditionalBreakpointEditorAction": "Отладка: условная точка останова", + "conditionalBreakpointEditorAction": "Отладка: добавить условную точку останова…", "continueDebug": "Продолжить", "deactivateBreakpoints": "Отключить точки останова", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "Фокус консоли отладки", "disableAllBreakpoints": "Отключить все точки останова", "disconnectDebug": "Отключить", - "editConditionalBreakpoint": "Изменить точку останова", + "editConditionalBreakpoint": "Изменить точку останова…", "enableAllBreakpoints": "Включить все точки останова", "launchJsonNeedsConfigurtion": "Настройте или исправьте \"launch.json\"", "openLaunchJson": "Открыть {0}", diff --git a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 39b22caa7ea..28e05215d6d 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Разрешает задание точки останова для всех файлов с любым расширением.", "debug": "Отладка", "debugCategory": "Отладка", + "debugConfigurationTitle": "Отладка", "debugErrorEditor": "Ошибка при отладке", "debugPanel": "Консоль отладки", "launchConfigDoesNotExist": "Конфигурация запуска \"{0}\" не существует.", + "openExplorerOnEnd": "Автоматически открывать мини-приложение просмотра проводника по завершении сеанса отладки.", "toggleDebugPanel": "Консоль отладки", "toggleDebugViewlet": "Показать отладочные сведения", "view": "Просмотреть" diff --git a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index ae2dad9cdde..6191c714b81 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "Прием входных данных REPL", "actions.repl.historyNext": "Журнал — далее", "actions.repl.historyPrevious": "Журнал — назад", - "replAriaLabel": "Панель цикла чтение-вычисление-печать" + "replAriaLabel": "Панель read–eval–print loop" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index cdea422c316..0c33a4ae7d1 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "Щелкните, чтобы отслеживать (чтобы открыть сбоку экрана, щелкните, удерживая клавишу CTRL)", "fileLinkMac": "Щелкните, чтобы отслеживать (чтобы открыть сбоку экрана, щелкните, удерживая клавишу CMD)", - "replExpressionAriaLabel": "Выражение {0} имеет значение {1}, цикл чтение-вычисление-печать, отладка", - "replKeyValueOutputAriaLabel": "Выходная переменная {0} имеет значение {1}, цикл чтение-вычисление-печать, отладка", - "replValueOutputAriaLabel": "{0}, цикл чтение-вычисление-печать, отладка", - "replVariableAriaLabel": "Переменная {0} имеет значение {1}, цикл чтение-вычисление-печать, отладка", + "replExpressionAriaLabel": "Выражение \"{0}\" имеет значение \"{1}\", read–eval–print loop, отладка", + "replKeyValueOutputAriaLabel": "Выходная переменная \"{0}\" имеет значение \"{1}\", read–eval–print loop, отладка", + "replValueOutputAriaLabel": "{0}, read–eval–print loop, отладка", + "replVariableAriaLabel": "Переменная \"{0}\" имеет значение \"{1}\", read–eval–print loop, отладка", "stateCapture": "Состояние объекта записывается после первого вычисления" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 2535f287bea..73afc840e5f 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "Не удается создать файл launch.json в папке .vscode ({0}).", - "app.launch.json.configurations": "Список конфигураций. Добавьте новые конфигурации или измените существующие.", + "app.launch.json.configurations": "Список конфигураций. Добавьте новые конфигурации или измените существующие с помощью IntelliSense.", "app.launch.json.title": "Запустить", "app.launch.json.version": "Версия этого формата файла.", "debugNoType": "Параметр type адаптера отладки не может быть опущен и должен иметь тип string.", "duplicateDebuggerType": "Тип отладки \"{0}\" уже зарегистрирован и имеет атрибут \"{1}\". Атрибут \"{1}\" игнорируется.", - "interactiveVariableNotFound": "Адаптер {0} не передает переменную {1}, указанную в конфигурации запуска.", "selectDebug": "Выбор среды", "vscode.extension.contributes.breakpoints": "Добавляет точки останова.", "vscode.extension.contributes.breakpoints.language": "Разрешить точки останова для этого языка.", diff --git a/i18n/rus/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json b/i18n/rus/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json index 3b1b50558d5..863eeb647d6 100644 --- a/i18n/rus/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json @@ -6,7 +6,7 @@ { "console.title": "Консоль VS Code", "linux.term.failed": "Сбой \"{0}\" с кодом выхода {1}", - "mac.terminal.script.failed": "сбой скрипта \"{0}\" с кодом выхода {1}", + "mac.terminal.script.failed": "Сбой скрипта \"{0}\" с кодом выхода {1}", "mac.terminal.type.not.supported": "\"{0}\" не поддерживается", "press.any.key": "Для продолжения нажмите любую клавишу..." } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..eed745d8286 --- /dev/null +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Открыть", + "extensions.openSide": "Открыть сбоку" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index eb6248b2597..a2d0d731c1b 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Имя", "debuggers": "Отладчики ({0})", "default": "По умолчанию", + "dependencies": "Зависимости", "description": "Описание", "details": "Подробности", + "extension id": "Идентификатор расширений", "file extensions": "Расширения файлов", "grammar": "Грамматика", + "install count": "Число установок", "keyboard shortcuts": "&&Сочетания клавиш", "language id": "Идентификатор", "language name": "Имя", "languages": "Языки ({0})", "license": "Лицензия", "menuContexts": "Контексты меню", + "name": "Имя расширения", "noChangelog": "Журнал изменений недоступен.", "noReadme": "Файл сведений недоступен.", + "publisher": "Имя издателя", + "rating": "Оценка", "setting name": "Имя", "settings": "Параметры ({0})", "snippets": "Фрагменты", diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index dbab8fd69d6..6a4aa00b176 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Настроить отключенные расширения", + "disableWorkspaceExtensions": "Настроить отключенные расширения (рабочая область)", "extension": "Расширение", "extensions": "Расширения", "extensionsAutoUpdate": "Автоматически обновлять расширения", diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 85b021b5aff..1f7b7c4a951 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Рекомендации доступны только для папки рабочей области.", "OpenExtensionsFile.failed": "Не удается создать файл \"extensions.json\" в папке \".vscode\" ({0}).", + "OpenGlobalExtensionsStorageFile.failed": "Не удалось создать файл \"extensions.json\" внутри папки \"{0}\" ({1}).", "builtin": "Встроенное", "clearExtensionsInput": "Очистить входные данные расширений", - "configureWorkspaceRecommendedExtensions": "Настроить рекомендуемые расширения рабочей области", + "configureWorkspaceRecommendedExtensions": "Настроить рекомендуемые расширения (рабочая область)", "deleteSure": "Действительно удалить \"{0}\"?", "enableAction": "Включить", "installAction": "Установить", @@ -19,6 +20,7 @@ "postUninstallMessage": "Расширение \"{0}\" было успешно удалено. Чтобы отключить его, выполните перезапуск.", "restart": "Чтобы включить это расширение, необходимо перезапустить это окно VS Code.\n\nПродолжить?", "restartNow": "Перезагрузка", + "showDisabledExtensions": "Показать отключенные расширения", "showInstalledExtensions": "Показать установленные расширения", "showOutdatedExtensions": "Показать устаревшие расширения", "showPopularExtensions": "Показать популярные расширения", diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index 63efc9d476b..aaecf6bb680 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Ожидается формат \"${publisher}.${name}\". Пример: \"vscode.csharp\".", "app.extensions.json.recommendations": "Список рекомендаций по расширениям. Идентификатор расширения — всегда \"${publisher}.${name}\". Например, \"vscode.csharp\".", - "app.extensions.json.title": "Расширения" + "app.extensions.json.title": "Расширения", + "app.extensionsstorage.json.disabled": "Список отключенных расширений. Идентификатор расширения всегда имеет вид \"${publisher}.${name}\". Например, \"vscode.csharp\".", + "app.extensionsstorage.json.title": "Хранилище расширений" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index f0a6342e535..010060dfcac 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Порядок сортировки: ↑", "descending": "Порядок сортировки: ↓", "extensions": "Расширения", + "no extensions found": "Расширений не найдено.", "outdatedExtensions": "Устаревшие расширения: {0}", "searchExtensions": "Поиск расширений в Marketplace", "sort by installs": "Сортировать по: числу установок", diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 77f59908655..6e3d9e9f1fa 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Расширения", - "extensionsInstalling": "Расширения (установка {0}...)", - "multipleIssues": "Расширения (ошибок: {0})", - "multipleUpdates": "Расширения (доступно обновлений: {0})", - "oneIssue": "Расширения (1 ошибка)", - "oneUpdate": "Расширения (1 обновление доступно)" + "active": "Активный", + "disabled": "Отключено", + "disabledWorkspace": "Отключено (рабочая область)" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/rus/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 4611660b058..39dde64e6f7 100644 --- a/i18n/rus/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Открыть сбоку", "pasteFile": "Вставить", "permDelete": "Удалить навсегда", + "pickHistory": "Выберите запись журнала редактора для сравнения", "refresh": "Обновить", "refreshExplorer": "Обновить окно проводника", "rename": "Переименовать", diff --git a/i18n/rus/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/rus/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 4c2169e7727..8ca28de0f81 100644 --- a/i18n/rus/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Сбой аутентификации для команды git remote.", + "cancel": "Отмена", "cleanChangesLabel": "&&Отменить изменения", "commit": "Commit", "commitAll": "Зафиксировать все", @@ -22,16 +23,21 @@ "confirmUndoMessage": "Действительно отменить все изменения?", "dirtyTreeCheckout": "Не удается извлечь. Сначала нужно зафиксировать работу или промежуточно сохранить ее.", "dirtyTreePull": "Не удается запросить. Сначала нужно зафиксировать работу или промежуточно сохранить ее.", + "do you want to continue": "Вы действительно хотите продолжить?", "init": "Инициализация", "irreversible": "Это действие необратимо!", + "never again": "ОК, больше не показывать", + "ok": "ОК", "openChange": "Открыть изменение", "openFile": "Открыть файл", "publish": "Опубликовать", "publishPickMessage": "Выберите удаленный сервер, на котором нужно опубликовать ветвь \"{0}\":", + "pushToRemote": "Отправить в:", + "pushToRemotePickMessage": "Выберите удаленный компьютер, на который следует отправить ветвь \"{0}\":", "refresh": "Обновить", "stageAllChanges": "Промежуточно сохранить все", "stageChanges": "Промежуточно сохранить", - "sureSync": "Вы действительно хотите синхронизировать репозиторий Git?", + "sync is unpredictable": "Это действие отправляет фиксации в \"{0}\" и извлекает их из этого расположения.", "undoAllChanges": "Очистить все", "undoChanges": "Очистить", "undoLastCommit": "Отменить последнюю фиксацию", diff --git a/i18n/rus/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/rus/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..7db022be87e --- /dev/null +++ b/i18n/rus/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Копировать" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index c4382108754..fb1fd11b3c3 100644 --- a/i18n/rus/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Настройте стандартные маски для исключения файлов и папок при поиске. Все стандартные маски наследуются от параметра file.exclude.", "exclude.boolean": "Стандартная маска, соответствующая путям к файлам. Задайте значение true или false, чтобы включить или отключить маску.", "exclude.when": "Дополнительная проверка элементов того же уровня соответствующего файла. Используйте $(basename) в качестве переменной для соответствующего имени файла.", + "findInFiles": "Найти в файлах", "findInFolder": "Найти в папке", "name": "Поиск", "openAnythingHandlerDescription": "Перейти к файлу", "openSymbolDescriptionNormal": "Перейти к символу в рабочей области", "search.quickOpen.includeSymbols": "Настройте для включения результатов поиска глобальных символов в файлы по запросу для Quick Open.", "searchConfigurationTitle": "Поиск", + "showSearchViewlet": "Показать средство поиска", "showTriggerActions": "Перейти к символу в рабочей области...", "view": "Просмотреть" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/rus/src/vs/workbench/parts/search/browser/searchActions.i18n.json index aeabb850335..922dfed53bd 100644 --- a/i18n/rus/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "Удалить", "file.replaceAll.label": "Заменить все", "findInFolder": "Найти в папке", - "focusNextInputbox": "Фокус на следующем поле ввода", - "focusPreviousInputbox": "Фокус на предыдущем поле ввода", + "focusNextInputBox": "Фокус на следующем поле ввода", + "focusPreviousInputBox": "Фокус на предыдущем поле ввода", "match.replace.label": "Заменить", "nextSearchTerm": "Показать следующее условие поиска", "previousSearchTerm": "Показать предыдущее условие поиска", - "replaceInFiles": "Заменить в файлах", - "showSearchViewlet": "Показать средство поиска" + "replaceInFiles": "Заменить в файлах" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 8517082e135..ba592584cdd 100644 --- a/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "Запущенный процесс больше не существует. Если задача породила фоновые задачи, выход из Visual Studio Code может привести к появлению потерянных процессов.", "TestAction.label": "Выполнить задачу тестирования", "manyMarkers": "99+", + "problems": "Проблемы", "taskCommands": "Выполнить задачу", "tasks": "Задачи", "tasksCategory": "Задачи" diff --git a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 679d3092995..28e793eb978 100644 --- a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Путь оболочки, который используется терминалом в Windows. При работе с оболочкой, поставляемой с Windows (cmd, PowerShell или Bash на Ubuntu), укажите C:Windowssysnative вместо C:WindowsSystem32 для использования 64-разрядных версий.", "terminal.integrated.shellArgs.linux": "Аргументы командной строки, которые следует использовать в терминале Linux.", "terminal.integrated.shellArgs.osx": "Аргументы командной строки, которые следует использовать в терминале OS X.", + "terminal.integrated.shellArgs.windows": "Аргументы командной строки, используемые в терминале Windows.", "terminalCategory": "Терминал", "terminalIntegratedConfigurationTitle": "Интегрированный терминал", "viewCategory": "Просмотреть" diff --git a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index dc48db788dc..a89a7f0b89d 100644 --- a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Запуск выбранного текста в активном терминале", "workbench.action.terminal.scrollDown": "Прокрутка вниз (построчно)", "workbench.action.terminal.scrollDownPage": "Прокрутить вниз (страницу)", + "workbench.action.terminal.scrollToBottom": "Прокрутить до нижней границы", + "workbench.action.terminal.scrollToTop": "Прокрутить до верхней границы", "workbench.action.terminal.scrollUp": "Прокрутка вверх (построчно)", "workbench.action.terminal.scrollUpPage": "Прокрутить вверх (страницу)", "workbench.action.terminal.switchTerminalInstance": "Переключить экземпляр терминала", diff --git a/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index c83ca9ad76a..1290f89f61e 100644 --- a/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Закрыть", - "insiderBuilds": "Сборки для участников программы становятся ежедневными.", + "insiderBuilds": "Ежедневные сборки и выпуски для участников программы предварительной оценки.", "license": "Прочитать лицензию", "licenseChanged": "Условия использования лицензии изменились, ознакомьтесь с ними.", "neverShowAgain": "Больше не показывать", diff --git a/i18n/rus/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/rus/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..14c6f89e3d7 --- /dev/null +++ b/i18n/rus/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Добавить курсоры выше или ниже", + "watermark.moveLines": "Переместить строки вверх или вниз", + "watermark.quickOpen": "Перейти к файлу", + "watermark.showCommands": "Палитра команд", + "watermark.toggleTerminal": "Терминал", + "watermark.unboundCommand": "свободный" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..b52005d448d --- /dev/null +++ b/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "Хост-процесс для расширений неожиданно завершил работу. Загрузите окно повторно для восстановления.", + "extensionHostProcess.error": "Ошибка в хост-процессе для расширений: {0}", + "extensionHostProcess.startupFail": "Хост-процесс для расширений не запустился спустя 10 секунд. Возможно, произошла ошибка.", + "extensionHostProcess.startupFailDebug": "Хост-процесс для расширений не был запущен в течение 10 секунд. Возможно, он был остановлен в первой строке, а для продолжения требуется отладчик.", + "extensionUnderDevelopment": "Идет загрузка расширения разработки в {0}", + "overwritingExtension": "Идет перезапись расширения {0} на {1}." +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/rus/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index ad63249b21e..95cd3070f32 100644 --- a/i18n/rus/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/rus/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "Скачать .NET Framework 4.5", "netVersionError": "Требуется платформа Microsoft .NET Framework 4.5. Нажмите ссылку, чтобы установить ее.", + "neverShowAgain": "Больше не показывать", "trashFailed": "Не удалось переместить \"{0}\" в корзину." } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/rus/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..267824f87b1 --- /dev/null +++ b/i18n/rus/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "Не удалось сохранить \"{0}\": {1}", + "saveFileFirst": "Файл изменен. Сохраните его, прежде чем открыть его вновь в другой кодировке." +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/rus/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..fd66681718e --- /dev/null +++ b/i18n/rus/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Все файлы", + "cancel": "Отмена", + "dontSave": "&&Не сохранять", + "moreFile": "...1 дополнительный файл не показан", + "moreFiles": "...не показано дополнительных файлов: {0}", + "noExt": "Нет расширений", + "save": "&&Сохранить", + "saveAll": "&&Сохранить все", + "saveChangesDetail": "Если не сохранить изменения, они будут утеряны.", + "saveChangesMessage": "Сохранить изменения, внесенные в {0}?", + "saveChangesMessages": "Сохранить изменения в указанных файлах ({0})?" +} \ No newline at end of file From 8236d1e992d2135dea63ed1c8fb9b124bf596e8a Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:02:53 +0200 Subject: [PATCH 167/242] debug: simplify transition to running state --- src/vs/workbench/parts/debug/common/debugModel.ts | 2 +- .../parts/debug/electron-browser/debugService.ts | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 57b109ce050..87b3ef7ccff 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -490,7 +490,7 @@ export class Process implements debug.IProcess { } public getId(): string { - return this._session.getId();; + return this._session.getId(); } public rawUpdate(data: debug.IRawModelUpdate): void { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 458df9ad131..1ddf8591d22 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -904,19 +904,8 @@ export class DebugService implements debug.IDebugService { private transitionToRunningState(session: RawDebugSession, threadId?: number): void { this.model.clearThreads(session.getId(), false, threadId); - - // TODO@Isidor remove this mess - // Get a top stack frame of a stopped thread if there is any. - const process = this.model.getProcesses().filter(p => p.getId() === session.getId()).pop(); - const stoppedThread = process && process.getAllThreads().filter(t => t.stopped).pop(); - const callStack = stoppedThread ? stoppedThread.getCachedCallStack() : null; - const stackFrameToFocus = callStack && callStack.length > 0 ? callStack[0] : null; - - if (!stoppedThread && process) { - this.setStateAndEmit(session.getId(), process.session.requestType === debug.SessionRequestType.LAUNCH_NO_DEBUG ? debug.State.RunningNoDebug : debug.State.Running); - } - - this.setFocusedStackFrameAndEvaluate(stackFrameToFocus).done(null, errors.onUnexpectedError); + this.setStateAndEmit(session.getId(), session.requestType === debug.SessionRequestType.LAUNCH_NO_DEBUG ? debug.State.RunningNoDebug : debug.State.Running); + this.setFocusedStackFrameAndEvaluate(null).done(null, errors.onUnexpectedError); } private getDebugStringEditorInput(process: debug.IProcess, source: Source, value: string, mtype: string): DebugStringEditorInput { From 79134b57be2ffe18590f86a3d7d62c447f7a5ed1 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:15:15 +0200 Subject: [PATCH 168/242] debug: polish and simplify debugConfigurationManager --- .../parts/debug/browser/debugActionItems.ts | 28 +++--- src/vs/workbench/parts/debug/common/debug.ts | 4 - .../debug/node/debugConfigurationManager.ts | 92 ++++++++----------- 3 files changed, 52 insertions(+), 72 deletions(-) diff --git a/src/vs/workbench/parts/debug/browser/debugActionItems.ts b/src/vs/workbench/parts/debug/browser/debugActionItems.ts index ab5c261e4fe..b3b310f7a87 100644 --- a/src/vs/workbench/parts/debug/browser/debugActionItems.ts +++ b/src/vs/workbench/parts/debug/browser/debugActionItems.ts @@ -9,14 +9,14 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { IAction } from 'vs/base/common/actions'; import { SelectActionItem } from 'vs/base/browser/ui/actionbar/actionbar'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { IDebugService, State } from 'vs/workbench/parts/debug/common/debug'; +import { IDebugService, State, IGlobalConfig } from 'vs/workbench/parts/debug/common/debug'; export class DebugSelectActionItem extends SelectActionItem { constructor( action: IAction, @IDebugService private debugService: IDebugService, - @IConfigurationService configurationService: IConfigurationService + @IConfigurationService private configurationService: IConfigurationService ) { super(null, action, [], -1); @@ -38,20 +38,18 @@ export class DebugSelectActionItem extends SelectActionItem { } private updateOptions(changeDebugConfiguration: boolean): TPromise { - const configurationManager = this.debugService.getConfigurationManager(); - return configurationManager.loadLaunchConfig().then(config => { - if (!config || !config.configurations || config.configurations.length === 0) { - this.setOptions([nls.localize('noConfigurations', "No Configurations")], 0); - return changeDebugConfiguration ? this.actionRunner.run(this._action, null) : null; - } + const config = this.configurationService.getConfiguration('launch'); + if (!config || !config.configurations || config.configurations.length === 0) { + this.setOptions([nls.localize('noConfigurations', "No Configurations")], 0); + return changeDebugConfiguration ? this.actionRunner.run(this._action, null) : TPromise.as(null); + } - const configurationNames = config.configurations.filter(cfg => !!cfg.name).map(cfg => cfg.name); - const selected = configurationNames.indexOf(this.debugService.getViewModel().selectedConfigurationName); - this.setOptions(configurationNames, selected); + const configurationNames = config.configurations.filter(cfg => !!cfg.name).map(cfg => cfg.name); + const selected = configurationNames.indexOf(this.debugService.getViewModel().selectedConfigurationName); + this.setOptions(configurationNames, selected); - if (changeDebugConfiguration) { - return this.actionRunner.run(this._action, this.getSelected()); - } - }); + if (changeDebugConfiguration) { + return this.actionRunner.run(this._action, this.getSelected()); + } } } diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 5d3a43932da..c97d8d042dc 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -72,7 +72,6 @@ export enum SessionRequestType { } export interface ISession { - // TODO@Isidor consider removing this - feels ugly requestType: SessionRequestType; stackTrace(args: DebugProtocol.StackTraceArguments): TPromise; scopes(args: DebugProtocol.ScopesArguments): TPromise; @@ -350,9 +349,6 @@ export interface IConfigurationManager { */ openConfigFile(sideBySide: boolean): TPromise; - // TODO@Isidor remove this from the interface - loadLaunchConfig(): TPromise; - /** * Returns true if breakpoints can be set for a given editor model. Depends on mode. */ diff --git a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts index a0591247eca..bd416b8ca79 100644 --- a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts @@ -8,7 +8,6 @@ import { TPromise } from 'vs/base/common/winjs.base'; import strings = require('vs/base/common/strings'); import types = require('vs/base/common/types'); import { isLinux, isMacintosh, isWindows } from 'vs/base/common/platform'; -import Event, { Emitter } from 'vs/base/common/event'; import objects = require('vs/base/common/objects'); import uri from 'vs/base/common/uri'; import { Schemas } from 'vs/base/common/network'; @@ -169,7 +168,6 @@ jsonRegistry.registerSchema(schemaId, schema); export class ConfigurationManager implements debug.IConfigurationManager { private adapters: Adapter[]; private allModeIdsForBreakpoints: { [key: string]: boolean }; - private _onDidConfigurationChange: Emitter; constructor( @IWorkspaceContextService private contextService: IWorkspaceContextService, @@ -181,7 +179,6 @@ export class ConfigurationManager implements debug.IConfigurationManager { @IConfigurationResolverService private configurationResolverService: IConfigurationResolverService, @IInstantiationService private instantiationService: IInstantiationService ) { - this._onDidConfigurationChange = new Emitter(); this.adapters = []; this.registerListeners(); this.allModeIdsForBreakpoints = {}; @@ -243,63 +240,56 @@ export class ConfigurationManager implements debug.IConfigurationManager { }); } - public get onDidConfigurationChange(): Event { - return this._onDidConfigurationChange.event; - } - public getAdapter(type: string): Adapter { return this.adapters.filter(adapter => strings.equalsIgnoreCase(adapter.type, type)).pop(); } public getConfiguration(nameOrConfig: string | debug.IConfig): TPromise { - return this.loadLaunchConfig().then(config => { - let result: debug.IConfig = null; - if (types.isObject(nameOrConfig)) { - result = objects.deepClone(nameOrConfig) as debug.IConfig; - } else { - if (!config || !config.configurations) { - return result; - } - // if the configuration name is not set yet, take the first launch config (can happen if debug viewlet has not been opened yet). - const filtered = config.configurations.filter(cfg => cfg.name === nameOrConfig); + const config = this.configurationService.getConfiguration('launch'); - result = filtered.length === 1 ? filtered[0] : config.configurations[0]; - result = objects.deepClone(result); - if (config && result) { - result.debugServer = config.debugServer; - } + let result: debug.IConfig = null; + if (types.isObject(nameOrConfig)) { + result = objects.deepClone(nameOrConfig) as debug.IConfig; + } else { + if (!config || !config.configurations) { + return TPromise.as(null); } + // if the configuration name is not set yet, take the first launch config (can happen if debug viewlet has not been opened yet). + const filtered = config.configurations.filter(cfg => cfg.name === nameOrConfig); - if (result) { - // Set operating system specific properties #1873 - if (isWindows && result.windows) { - Object.keys(result.windows).forEach(key => { - result[key] = result.windows[key]; - }); - } - if (isMacintosh && result.osx) { - Object.keys(result.osx).forEach(key => { - result[key] = result.osx[key]; - }); - } - if (isLinux && result.linux) { - Object.keys(result.linux).forEach(key => { - result[key] = result.linux[key]; - }); - } + result = filtered.length === 1 ? filtered[0] : config.configurations[0]; + result = objects.deepClone(result); + if (config && result) { + result.debugServer = config.debugServer; + } + } - // massage configuration attributes - append workspace path to relatvie paths, substitute variables in paths. - Object.keys(result).forEach(key => { - result[key] = this.configurationResolverService.resolveAny(result[key]); + if (result) { + // Set operating system specific properties #1873 + if (isWindows && result.windows) { + Object.keys(result.windows).forEach(key => { + result[key] = result.windows[key]; }); - - const adapter = this.getAdapter(result.type); - return this.configurationResolverService.resolveInteractiveVariables(result, adapter ? adapter.variables : null); } - }).then(result => { - this._onDidConfigurationChange.fire(result); - return result; - }); + if (isMacintosh && result.osx) { + Object.keys(result.osx).forEach(key => { + result[key] = result.osx[key]; + }); + } + if (isLinux && result.linux) { + Object.keys(result.linux).forEach(key => { + result[key] = result.linux[key]; + }); + } + + // massage configuration attributes - append workspace path to relatvie paths, substitute variables in paths. + Object.keys(result).forEach(key => { + result[key] = this.configurationResolverService.resolveAny(result[key]); + }); + + const adapter = this.getAdapter(result.type); + return this.configurationResolverService.resolveInteractiveVariables(result, adapter ? adapter.variables : null); + } } public openConfigFile(sideBySide: boolean): TPromise { @@ -348,8 +338,4 @@ export class ConfigurationManager implements debug.IConfigurationManager { return !!this.allModeIdsForBreakpoints[modeId]; } - - public loadLaunchConfig(): TPromise { - return TPromise.as(this.configurationService.getConfiguration('launch')); - } } From 1b8d31f29fe0ba4adfba7098dad782347799270c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 12:29:58 +0200 Subject: [PATCH 169/242] fix telemetry event for save participants --- .../api/node/mainThreadSaveParticipant.ts | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts index fcee60aee33..2eab8be139a 100644 --- a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts +++ b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts @@ -22,7 +22,13 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel'; import { ExtHostContext, ExtHostDocumentSaveParticipantShape } from './extHost.protocol'; -class TrimWhitespaceParticipant implements ISaveParticipant { +interface INamedSaveParticpant extends ISaveParticipant { + readonly name: string; +} + +class TrimWhitespaceParticipant implements INamedSaveParticpant { + + readonly name = 'TrimWhitespaceParticipant'; constructor( @IConfigurationService private configurationService: IConfigurationService, @@ -76,7 +82,9 @@ class TrimWhitespaceParticipant implements ISaveParticipant { } } -class FormatOnSaveParticipant implements ISaveParticipant { +class FormatOnSaveParticipant implements INamedSaveParticpant { + + readonly name = 'FormatOnSaveParticipant'; constructor( @ICodeEditorService private _editorService: ICodeEditorService, @@ -159,10 +167,12 @@ class FormatOnSaveParticipant implements ISaveParticipant { } } -class ExtHostSaveParticipant implements ISaveParticipant { +class ExtHostSaveParticipant implements INamedSaveParticpant { private _proxy: ExtHostDocumentSaveParticipantShape; + readonly name = 'ExtHostSaveParticipant'; + constructor( @IThreadService threadService: IThreadService) { this._proxy = threadService.get(ExtHostContext.ExtHostDocumentSaveParticipant); } @@ -181,7 +191,7 @@ class ExtHostSaveParticipant implements ISaveParticipant { // The save participant can change a model before its saved to support various scenarios like trimming trailing whitespace export class SaveParticipant implements ISaveParticipant { - private _saveParticipants: ISaveParticipant[]; + private _saveParticipants: INamedSaveParticpant[]; constructor( @ITelemetryService private _telemetryService: ITelemetryService, @@ -204,7 +214,7 @@ export class SaveParticipant implements ISaveParticipant { const promiseFactory = this._saveParticipants.map(p => () => { - const {name} = Object.getPrototypeOf(p).constructor; + const {name} = p; const t1 = Date.now(); return TPromise.as(p.participate(model, env)).then(() => { @@ -216,7 +226,7 @@ export class SaveParticipant implements ISaveParticipant { }); return sequence(promiseFactory).then(() => { - this._telemetryService.publicLog('saveParticipantTimes', stats); + this._telemetryService.publicLog('saveParticipantStats', stats); }); } } From b4272b6ccc60c94d534bc69279ff3f165429f700 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:30:02 +0200 Subject: [PATCH 170/242] debug: fix loadMoreStackFrames scenario fixes #14614 --- .../parts/debug/electron-browser/debugViewer.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts index 69fc9bea6be..f242c03a8cb 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts @@ -212,8 +212,12 @@ export class BaseDebugController extends treedefaults.DefaultController { // call stack -class ThreadAndProcessIds { +class ThreadAndProcessIds implements debug.ITreeElement { constructor(public processId: string, public threadId: number) { } + + public getId(): string { + return `${this.processId}:${this.threadId}`; + } } export class CallStackController extends BaseDebugController { @@ -340,9 +344,6 @@ export class CallStackActionProvider implements renderer.IActionProvider { export class CallStackDataSource implements tree.IDataSource { public getId(tree: tree.ITree, element: any): string { - if (typeof element === 'number') { - return element.toString(); - } if (typeof element === 'string') { return element; } From 3146507ffde7a9a957397f2a77a5f59ff8b3eede Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:26:17 +0200 Subject: [PATCH 171/242] debug: support debugServer per configuration fixes #13783 --- src/vs/workbench/parts/debug/node/debugAdapter.ts | 4 ++++ .../parts/debug/node/debugConfigurationManager.ts | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/debug/node/debugAdapter.ts b/src/vs/workbench/parts/debug/node/debugAdapter.ts index 8dee37ee896..a43bc0507cd 100644 --- a/src/vs/workbench/parts/debug/node/debugAdapter.ts +++ b/src/vs/workbench/parts/debug/node/debugAdapter.ts @@ -142,6 +142,10 @@ export class Adapter { enum: [request], description: nls.localize('debugRequest', "Request type of configuration. Can be \"launch\" or \"attach\"."), }; + properties.debugServer = { + type: 'number', + description: nls.localize('debugServer', "For debug extension development only: if a port is specified VS Code tries to connect to a debug adapter running in server mode") + }; properties.configurationNames = { type: 'array', default: [], diff --git a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts index bd416b8ca79..a1b3462306d 100644 --- a/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/node/debugConfigurationManager.ts @@ -158,7 +158,12 @@ const schema: IJSONSchema = { 'type': 'object', oneOf: [] } - } + }, + // TODO@Isidor remove support for this in December + debugServer: { + type: 'number', + description: nls.localize('app.launch.json.debugServer', "DEPRECATED: please move debugServer inside a configuration.") + }, } }; @@ -259,7 +264,7 @@ export class ConfigurationManager implements debug.IConfigurationManager { result = filtered.length === 1 ? filtered[0] : config.configurations[0]; result = objects.deepClone(result); - if (config && result) { + if (config && result && config.debugServer) { result.debugServer = config.debugServer; } } From e8d2c37d0a3fd6e9f652646b433d373c923b6bb1 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:43:52 +0200 Subject: [PATCH 172/242] debugActionItems: polish --- .../parts/debug/browser/debugActionItems.ts | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/vs/workbench/parts/debug/browser/debugActionItems.ts b/src/vs/workbench/parts/debug/browser/debugActionItems.ts index b3b310f7a87..1dacaa28e1a 100644 --- a/src/vs/workbench/parts/debug/browser/debugActionItems.ts +++ b/src/vs/workbench/parts/debug/browser/debugActionItems.ts @@ -5,7 +5,6 @@ import nls = require('vs/nls'); import errors = require('vs/base/common/errors'); -import { TPromise } from 'vs/base/common/winjs.base'; import { IAction } from 'vs/base/common/actions'; import { SelectActionItem } from 'vs/base/browser/ui/actionbar/actionbar'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -21,10 +20,10 @@ export class DebugSelectActionItem extends SelectActionItem { super(null, action, [], -1); this.toDispose.push(configurationService.onDidUpdateConfiguration(e => { - this.updateOptions(true).done(null, errors.onUnexpectedError); + this.updateOptions(true); })); this.toDispose.push(this.debugService.getViewModel().onDidSelectConfigurationName(name => { - this.updateOptions(false).done(null, errors.onUnexpectedError); + this.updateOptions(false); })); this.toDispose.push(this.debugService.onDidChangeState(() => { this.enabled = this.debugService.state === State.Inactive; @@ -33,23 +32,22 @@ export class DebugSelectActionItem extends SelectActionItem { public render(container: HTMLElement): void { super.render(container); - this.updateOptions(true).done(null, errors.onUnexpectedError); + this.updateOptions(true); this.enabled = this.debugService.state === State.Inactive; } - private updateOptions(changeDebugConfiguration: boolean): TPromise { + private updateOptions(changeDebugConfiguration: boolean): void { const config = this.configurationService.getConfiguration('launch'); if (!config || !config.configurations || config.configurations.length === 0) { this.setOptions([nls.localize('noConfigurations', "No Configurations")], 0); - return changeDebugConfiguration ? this.actionRunner.run(this._action, null) : TPromise.as(null); + } else { + const configurationNames = config.configurations.filter(cfg => !!cfg.name).map(cfg => cfg.name); + const selected = configurationNames.indexOf(this.debugService.getViewModel().selectedConfigurationName); + this.setOptions(configurationNames, selected); } - const configurationNames = config.configurations.filter(cfg => !!cfg.name).map(cfg => cfg.name); - const selected = configurationNames.indexOf(this.debugService.getViewModel().selectedConfigurationName); - this.setOptions(configurationNames, selected); - if (changeDebugConfiguration) { - return this.actionRunner.run(this._action, this.getSelected()); + this.actionRunner.run(this._action, this.getSelected()).done(null, errors.onUnexpectedError); } } } From 1d2d5e089a8261ebb6ad6dfb2e847e5aa1c16f9d Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:55:15 +0200 Subject: [PATCH 173/242] debug: fix issue with not passing outFiles #14655 --- src/vs/workbench/parts/debug/common/debug.ts | 1 + src/vs/workbench/parts/debug/electron-browser/debugService.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 5d3a43932da..a51d53c7940 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -303,6 +303,7 @@ export interface IExtHostConfig extends IEnvConfig { port?: number; sourceMaps?: boolean; outDir?: string; + outFiles?: string; } export interface IConfig extends IEnvConfig { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 458df9ad131..97139f3e5de 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -770,7 +770,7 @@ export class DebugService implements debug.IDebugService { request: 'attach', port, sourceMaps: configuration.sourceMaps, - outDir: configuration.outDir, + outFiles: configuration.outDir || configuration.outFiles, debugServer: configuration.debugServer }) ); From 1786dbb0c13f85137945e24700cd22275b380a49 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Fri, 28 Oct 2016 11:48:12 +0200 Subject: [PATCH 174/242] Merge in translations. --- .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 3 +++ .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../node/debugConfigurationManager.i18n.json | 3 +-- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 3 +++ .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 5 ++++- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 12 ++++++------ .../debug.contribution.i18n.json | 7 +++++-- .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../parts/debug/node/debugAdapter.i18n.json | 2 +- .../node/debugConfigurationManager.i18n.json | 3 +-- .../electron-browser/terminalService.i18n.json | 2 +- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 4 ++-- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 5 ++++- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../emmet/node/emmet.contribution.i18n.json | 4 ++-- .../electron-browser/terminalService.i18n.json | 2 +- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../electron-browser/terminalService.i18n.json | 2 +- .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ i18n/fra/extensions/php/package.i18n.json | 2 +- .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 3 +++ .../contrib/find/browser/findWidget.i18n.json | 2 +- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../parts/editor/titleControl.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 3 ++- .../main.contribution.i18n.json | 4 +++- .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../node/debugConfigurationManager.i18n.json | 3 +-- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 6 ++++-- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../browser/views/openEditorsViewer.i18n.json | 2 +- .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../nps.contribution.i18n.json | 2 +- .../browser/search.contribution.i18n.json | 6 ++++-- .../search/browser/searchActions.i18n.json | 9 ++++----- .../search/browser/searchViewlet.i18n.json | 2 +- .../search/browser/searchWidget.i18n.json | 4 ++-- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 5 ++--- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 5 ++++- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 5 ++++- .../debug/electron-browser/repl.i18n.json | 4 ++-- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 5 ++--- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 6 ++++-- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersWorkbenchContributions.i18n.json | 2 +- .../markersElectronContributions.i18n.json | 8 ++++++++ .../nps.contribution.i18n.json | 2 +- .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 5 ++--- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 3 +++ .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 4 ++-- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../emmet/node/emmet.contribution.i18n.json | 4 ++-- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../nps.contribution.i18n.json | 2 +- .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 5 ++--- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../out/typescriptServiceClient.i18n.json | 2 +- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 7 +++++-- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../electron-browser/terminalService.i18n.json | 2 +- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../files/browser/files.contribution.i18n.json | 2 +- .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ .../css/client/out/cssMain.i18n.json | 2 +- .../html/client/out/htmlMain.i18n.json | 2 +- .../json/client/out/jsonMain.i18n.json | 2 +- i18n/rus/extensions/php/package.i18n.json | 2 +- .../out/typescriptServiceClient.i18n.json | 4 ++-- .../extensions/typescript/package.i18n.json | 3 +++ .../common/config/commonEditorConfig.i18n.json | 5 ++++- .../browser/goToDeclaration.i18n.json | 2 +- .../quickFix/browser/quickFix.i18n.json | 2 ++ .../browser/menusExtensionPoint.i18n.json | 1 + .../platform/environment/node/argv.i18n.json | 2 ++ .../common/extensionsRegistry.i18n.json | 6 ++++++ .../actions/toggleSidebarPosition.i18n.json | 2 +- .../browser/parts/panel/panelPart.i18n.json | 1 + .../quickopen/quickOpenController.i18n.json | 4 +++- .../electron-browser/actions.i18n.json | 1 + .../main.contribution.i18n.json | 2 ++ .../debug/browser/breakpointWidget.i18n.json | 8 ++++++-- .../parts/debug/browser/debugActions.i18n.json | 6 +++--- .../debug.contribution.i18n.json | 3 +++ .../debug/electron-browser/repl.i18n.json | 2 +- .../electron-browser/replViewer.i18n.json | 8 ++++---- .../node/debugConfigurationManager.i18n.json | 3 +-- .../electron-browser/terminalService.i18n.json | 2 +- .../dependenciesViewer.i18n.json | 9 +++++++++ .../electron-browser/extensionEditor.i18n.json | 6 ++++++ .../extensions.contribution.i18n.json | 2 ++ .../extensionsActions.i18n.json | 4 +++- .../extensionsFileTemplate.i18n.json | 4 +++- .../extensionsViewlet.i18n.json | 1 + .../extensionsWidgets.i18n.json | 9 +++------ .../parts/files/browser/fileActions.i18n.json | 1 + .../parts/git/browser/gitActions.i18n.json | 8 +++++++- .../markersElectronContributions.i18n.json | 8 ++++++++ .../browser/search.contribution.i18n.json | 2 ++ .../search/browser/searchActions.i18n.json | 7 +++---- .../task.contribution.i18n.json | 1 + .../terminal.contribution.i18n.json | 1 + .../electron-browser/terminalActions.i18n.json | 2 ++ .../update.contribution.i18n.json | 3 +-- .../watermark/browser/watermark.i18n.json | 13 +++++++++++++ .../electron-browser/extensionHost.i18n.json | 13 +++++++++++++ .../electron-browser/fileService.i18n.json | 1 + .../common/textFileEditorModel.i18n.json | 9 +++++++++ .../electron-browser/textFileService.i18n.json | 18 ++++++++++++++++++ 380 files changed, 1412 insertions(+), 323 deletions(-) create mode 100644 i18n/chs/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/chs/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/chs/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/chs/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/chs/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/cht/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/cht/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/cht/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/cht/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/cht/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/deu/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/deu/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/deu/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/deu/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/deu/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/esn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/esn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/esn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/esn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/esn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/fra/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/fra/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/fra/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/fra/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/fra/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/ita/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/ita/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/ita/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/ita/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/ita/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/jpn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/kor/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/kor/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/kor/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/kor/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/kor/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json create mode 100644 i18n/rus/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json create mode 100644 i18n/rus/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json create mode 100644 i18n/rus/src/vs/workbench/parts/watermark/browser/watermark.i18n.json create mode 100644 i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json create mode 100644 i18n/rus/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json create mode 100644 i18n/rus/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json diff --git a/i18n/chs/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/chs/extensions/typescript/out/typescriptServiceClient.i18n.json index f8795792adf..ed0542dbc0d 100644 --- a/i18n/chs/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/chs/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "已将工作区设置 \"typescript.tsdk\" 更新为 {0}", "use": "使用工作区({0})", "useBundled": "捆绑使用({0})", - "versionMismatch": "检测到全局安装的 tsc 编译器({0})与 VS 代码语言服务({1})版本不匹配。这可能导致不一致的编译错误。", + "versionMismatch": "版本不匹配! 全局 tsc ({0}) != VS Code 的语言服务({1})。可能出现不一致的编译错误", "versionNumber.custom": "自定义" } \ No newline at end of file diff --git a/i18n/chs/extensions/typescript/package.i18n.json b/i18n/chs/extensions/typescript/package.i18n.json index d27d9710483..12014ffee91 100644 --- a/i18n/chs/extensions/typescript/package.i18n.json +++ b/i18n/chs/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "定义逗号分隔符后面的空格处理", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "定义匿名函数的函数关键字之后的空格处理", "format.insertSpaceAfterKeywordsInControlFlowStatements": "定义控制流语句中的关键字之后的空格处理", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "定义 JSX 表达式的左括号之后和右括号之前的空格处理。要求 TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "定义非空方括号的左括号之后和右括号之前的空格处理。", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "定义非空圆括号的左括号之后和右括号之前的空格处理。", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "定义模板字符串的左括号之后和右括号之前的空格处理。要求 TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": "在 For 语句中,定义分号之后的空格处理", "format.insertSpaceBeforeAndAfterBinaryOperators": "定义二进制运算符后面的空格处理", "format.placeOpenBraceOnNewLineForControlBlocks": "定义左大括号是否针对控制块而放置在新的一行", @@ -18,6 +20,7 @@ "javascript.validate.enable": "启用/禁用 JavaScript 验证", "typescript.check.tscVersion": "检查全局安装的 TypeScript 编译器(例如 tsc )是否不同于使用的 TypeScript 语言服务。", "typescript.check.workspaceVersion": "检查工作区中的 TypeScript 版本是否可用", + "typescript.experimentalAutomaticTypeAcquisition": "启用自动类型获取。要求 TypeScript >= 2.0.6,并需在对其进行更改后重启。", "typescript.reloadProjects.title": "重新加载 TypeScript 项目", "typescript.tsdk.desc": "指定包含要使用的 tsserver 和 lib*.d.ts 文件的文件夹路径。", "typescript.tsdk_version.desc": "指定 tsserver 的版本。仅在未使用 npm 安装 tsserver 时需要。", diff --git a/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json index 028bab0655d..4bbe233a52f 100644 --- a/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "以像素为单位控制字号。", "fontWeight": "控制字体粗细。", "formatOnType": "控制编辑器是否应在键入后自动设置行的格式", + "glyphMargin": "控制编辑器是否应呈现垂直字形边距。字形边距最常用于调试。", "hideCursorInOverviewRuler": "控制光标是否应隐藏在概述标尺中。", "ignoreTrimWhitespace": "控制差异编辑器是否将对前导空格或尾随空格的更改显示为差异", "insertSpaces": "按 \"Tab\" 时插入空格。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。", @@ -41,6 +42,8 @@ "sideBySide": "控制 Diff 编辑器以并排或内联形式显示差异", "snippetSuggestions": "控制是否将代码段与其他建议一起显示以及它们的排序方式。", "stablePeek": "即使在双击编辑器内容或按 Esc 键时,也要保持速览编辑器的打开状态。", + "suggestFontSize": "建议小组件的字号", + "suggestLineHeight": "建议小组件的行高", "suggestOnTriggerCharacters": "控制键入触发器字符时是否应自动显示建议", "tabCompletion": "当其前缀匹配时插入代码段。当 \"quickSuggestions\" 未启用时,效果最佳。", "tabSize": "一个制表符等于的空格数。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。", diff --git a/i18n/chs/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/chs/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 8e0fcfa47c1..21ffa461b97 100644 --- a/i18n/chs/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/chs/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "打开侧边的定义", "actions.previewDecl.label": "查看定义", "meta.title": " – {0} 定义", - "multipleResults": "单击此处显示找到的 {0} 个定义。" + "multipleResults": "单击显示 {0} 个定义。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/chs/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 8aacced2d57..f79fb43dd8d 100644 --- a/i18n/chs/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/chs/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "显示修补程序", + "quickFixWithKb": "显示修补程序({0})", "quickfix.trigger.label": "快速修复" } \ No newline at end of file diff --git a/i18n/chs/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/chs/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 89121e29f04..da0d158cb77 100644 --- a/i18n/chs/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/chs/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "菜单项引用与默认和 alt 命令相同的命令", "menuId.invalid": "“{0}”为无效菜单标识符", "menus.editorContext": "编辑器上下文菜单", + "menus.editorTabContext": "编辑器选项卡上下文菜单", "menus.editorTitle": "编辑器标题菜单", "menus.explorerContext": "文件资源管理器上下文菜单", "missing.altCommand": "菜单项引用未在“命令”部分进行定义的 alt 命令“{0}”。", diff --git a/i18n/chs/src/vs/platform/environment/node/argv.i18n.json b/i18n/chs/src/vs/platform/environment/node/argv.i18n.json index 8c175996d48..bab9183bee1 100644 --- a/i18n/chs/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/chs/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "打开差异编辑器。需要传递两个文件路径作为参数。", "disableExtensions": "禁用所有已安装的扩展。", + "disableGPU": "禁用 GPU 硬件加速。", "extensionHomePath": "设置扩展的根路径。", "goto": "在行和列处的路径打开文件(向路径添加 :line[:column])。", "gotoValidation": "\"--goto\" 模式中的参数格式应为 \"FILE(:LINE(:COLUMN))\"。", @@ -19,6 +20,7 @@ "paths": "路径", "performance": "通过启用 \"Developer: Startup Performance\" 命令开始。", "reuseWindow": "在上一活动窗口中强制打开文件或文件夹。", + "showVersions": "使用 --list-extension 时,显示已安装扩展的版本。", "uninstallExtension": "卸载扩展。", "usage": "使用情况", "userDataDir": "指定存放用户数据的目录,此目录在作为根运行时十分有用。", diff --git a/i18n/chs/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/chs/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 4311e5e960e..71a27b6c743 100644 --- a/i18n/chs/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/chs/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "属性“{0}”是必需的,其类型必须是“字符串”", "extensionDescription.version": "属性“{0}”是必需的,其类型必须是“字符串”", "vscode.extension.activationEvents": "VS Code 扩展的激活事件。", + "vscode.extension.badges": "在 Marketplace 的扩展页边栏中显示的徽章数组。", + "vscode.extension.badges.description": "徽章说明。", + "vscode.extension.badges.href": "徽章链接。", + "vscode.extension.badges.url": "徽章图像 URL。", "vscode.extension.categories": "VS Code 库用于对扩展进行分类的类别。", "vscode.extension.contributes": "由此包表示的 VS Code 扩展的所有贡献。", "vscode.extension.displayName": "VS Code 库中使用的扩展的显示名称。", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "VS Code 商城使用的横幅。", "vscode.extension.galleryBanner.color": "VS Code 商城页标题上的横幅颜色。", "vscode.extension.galleryBanner.theme": "横幅中使用的字体颜色主题。", + "vscode.extension.icon": "128 x 128 像素图标的路径。", + "vscode.extension.preview": "在 Marketplace 中设置扩展,将其标记为“预览”。", "vscode.extension.publisher": "VS Code 扩展的发布服务器。", "vscode.extension.scripts.prepublish": "包作为 VS Code 扩展发布前执行的脚本。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/chs/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 94d78da79ba..1893d29afa7 100644 --- a/i18n/chs/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/chs/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "切换侧边栏位置", + "toggleLocation": "切换边栏位置", "view": "查看" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/chs/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 838c84e0f05..07f1a99631c 100644 --- a/i18n/chs/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/chs/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "关闭", "focusPanel": "焦点集中到面板", + "toggleMaximizedPanel": "切换最大化面板", "togglePanel": "切换面板", "view": "查看" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/chs/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 99df4ee07c4..34b8a5b034c 100644 --- a/i18n/chs/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/chs/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "按 \"Enter\" 以确认或按 \"Esc\" 以取消", "inputModeEntryDescription": "{0} (按 \"Enter\" 以确认或按 \"Esc\" 以取消)", "noResultsFound1": "未找到结果", - "quickOpenInput": "键入 \"?\" 从此处获取有关可进行的操作的帮助" + "pickHistory": "选择要从历史记录中删除的编辑器项", + "quickOpenInput": "键入 \"?\" 从此处获取有关可进行的操作的帮助", + "removeFromEditorHistory": "从编辑器历史记录中删除" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json index 801a4f46e46..947c70e70b6 100644 --- a/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "关闭文件夹", "closeMessages": "关闭通知消息", "closeWindow": "关闭窗口", + "current": "当前窗口", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "文件", "folders": "文件夹", diff --git a/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json index cdfb5af1022..39a35853412 100644 --- a/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "如果窗口已退出全屏模式,控制其是否应还原为全屏模式。", "showEditorTabs": "控制打开的编辑器是否显示在选项卡中。", "showIcons": "控制打开的编辑器是否随图标一起显示。这还需启用图标主题。", + "sideBarLocation": "控制边栏的位置。它可显示在工作台的左侧或右侧。", + "statusBarVisibility": "控制工作台底部状态栏的可见性。", "updateChannel": "配置是否从更新通道接收自动更新。更改后需要重启。", "updateConfigurationTitle": "更新", "view": "查看", diff --git a/i18n/chs/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index e6ea7dbc283..529f855237a 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "为行 {0} 键入断点条件。只有当此条件为 true 时,程序才会在此处停止。按 Enter 以接受或按 Esc 以取消。", - "breakpointWidgetPlaceholder": "只有当此条件为 true 时行 {0} 上的断点才将停止。按 Enter 以接受或按 Esc 以取消。" + "breakpointWidgetAriaLabel": "如果此条件为 true,程序仅会在此处停止。按 Enter 接受或按 Esc 取消。", + "breakpointWidgetExpressionPlaceholder": "在表达式计算结果为 true 时中断", + "breakpointWidgetHitCountAriaLabel": "如果达到命中次数,程序仅会在此处停止。按 Enter 接受或按 Esc 取消。", + "breakpointWidgetHitCountPlaceholder": "在满足命中次数条件时中断", + "expression": "表达式", + "hitCount": "命中次数" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 9ee51063de6..cbdb10a1bed 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "激活断点", - "addConditionalBreakpoint": "添加条件断点", + "addConditionalBreakpoint": "添加条件断点...", "addFunctionBreakpoint": "添加函数断点", "addToWatchExpressions": "添加到监视", "addWatchExpression": "添加表达式", "clearRepl": "清除控制台", - "conditionalBreakpointEditorAction": "调试: 条件断点", + "conditionalBreakpointEditorAction": "调试: 添加条件断点...", "continueDebug": "继续", "deactivateBreakpoints": "停用断点", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "焦点调试控制台", "disableAllBreakpoints": "禁用所有断点", "disconnectDebug": "断开连接", - "editConditionalBreakpoint": "编辑断点", + "editConditionalBreakpoint": "编辑断点...", "enableAllBreakpoints": "启用所有断点", "launchJsonNeedsConfigurtion": "配置或修复 \"launch.json\"", "openLaunchJson": "打开 {0}", diff --git a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index e2ade66cdb2..b43b7f94756 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "允许为所有文件设置断点(不考虑扩展)。", "debug": "调试", "debugCategory": "调试", + "debugConfigurationTitle": "调试", "debugErrorEditor": "调试错误", "debugPanel": "调试控制台", "launchConfigDoesNotExist": "启动配置“{0}”不存在。", + "openExplorerOnEnd": "在调试会话结束时自动打开资源管理器 viewlet。", "toggleDebugPanel": "调试控制台", "toggleDebugViewlet": "显示调试", "view": "查看" diff --git a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 784d5dd4d09..4d463d54624 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "actions.repl.acceptInput": "REPL 接受输入", + "actions.repl.acceptInput": "接受 REPL 的输入", "actions.repl.historyNext": "下一个历史记录", "actions.repl.historyPrevious": "上一个历史记录", "replAriaLabel": "读取 Eval 打印循环面板" diff --git a/i18n/chs/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index ff8a48068cd..df054a1d9b2 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "无法在 \".vscode\" 文件夹({0})内创建 \"launch.json\" 文件。", - "app.launch.json.configurations": "配置列表。添加新配置或编辑现有配置。", + "app.launch.json.configurations": "配置列表。使用 IntelliSense 添加新配置或编辑现有配置。", "app.launch.json.title": "启动", "app.launch.json.version": "此文件格式的版本。", "debugNoType": "不可省略调试适配器“类型”,其类型必须是“字符串”。", "duplicateDebuggerType": "调试类型“{0}”已注册,且具有属性“{1}”,正在忽略属性“{1}”。", - "interactiveVariableNotFound": "适配器 {0} 不提供启动配置中指定的变量 {1}。", "selectDebug": "选择环境", "vscode.extension.contributes.breakpoints": "贡献断电。", "vscode.extension.contributes.breakpoints.language": "对此语言允许断点。", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..af827453cc3 --- /dev/null +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "打开", + "extensions.openSide": "打开到侧边" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index c5a065c9d7a..361137152b2 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "名称", "debuggers": "调试程序({0})", "default": "默认", + "dependencies": "依赖项", "description": "描述", "details": "详细信息", + "extension id": "扩展标识符", "file extensions": "文件扩展名", "grammar": "语法", + "install count": "安装计数", "keyboard shortcuts": "键盘快捷方式(&&K)", "language id": "ID", "language name": "名称", "languages": "语言({0})", "license": "许可证", "menuContexts": "菜单上下文", + "name": "扩展名", "noChangelog": "无可用的更改日志。", "noReadme": "无可用自述文件。", + "publisher": "发布服务器名称", + "rating": "评级", "setting name": "名称", "settings": "设置({0})", "snippets": "代码片段", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index c8ab852f61b..0174c84a7e7 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "配置已禁用的扩展", + "disableWorkspaceExtensions": "配置已禁用的扩展(工作区)", "extension": "扩展", "extensions": "扩展", "extensionsAutoUpdate": "自动更新扩展", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 07f81591464..51a9fd41e13 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "建议仅在工作区文件夹上可用。", "OpenExtensionsFile.failed": "无法在 \".vscode\" 文件夹({0})内创建 \"extensions.json\" 文件。", + "OpenGlobalExtensionsStorageFile.failed": "无法在“{0}”文件夹内创建 \"extensions.json\" 文件({1})。", "builtin": "内置", "clearExtensionsInput": "清除扩展输入", - "configureWorkspaceRecommendedExtensions": "配置工作区建议的扩展名", + "configureWorkspaceRecommendedExtensions": "配置建议的扩展(工作区)", "deleteSure": "是否确定要卸载“{0}”?", "enableAction": "启用", "installAction": "安装", @@ -19,6 +20,7 @@ "postUninstallMessage": "已成功卸载 {0}。请重启以停用它。 ", "restart": "若要启用此扩展,需要重启此 VS Code 窗口。\n\n是否继续?", "restartNow": "立即重启", + "showDisabledExtensions": "显示已禁用的扩展", "showInstalledExtensions": "显示已安装扩展", "showOutdatedExtensions": "显示过时扩展", "showPopularExtensions": "显示常用的扩展", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index b58becb16da..f9ed5da1bea 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "预期的格式 \"${publisher}.${name}\"。例如: \"vscode.csharp\"。", "app.extensions.json.recommendations": "扩展推荐项的列表。扩展的标识符始终为 \"${publisher}.${name}\"。例如 \"vscode.csharp\"。", - "app.extensions.json.title": "扩展" + "app.extensions.json.title": "扩展", + "app.extensionsstorage.json.disabled": "已禁用的扩展列表。扩展标识符始终是“${publisher}.${name}”。例如: \"vscode.csharp\"。", + "app.extensionsstorage.json.title": "扩展存储" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index eedaf81c41f..5c5d5411edb 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "排序顺序: ↑", "descending": "排序顺序: ↓", "extensions": "扩展", + "no extensions found": "找不到扩展。", "outdatedExtensions": "{0} 个过时的扩展", "searchExtensions": "在应用商店中搜索扩展", "sort by installs": "排序依据: 安装计数", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 1000da7559e..91e38c9c0ec 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "扩展", - "extensionsInstalling": "扩展(正在安装 {0}...)", - "multipleIssues": "扩展({0} 个问题)", - "multipleUpdates": "扩展({0} 个可用更新)", - "oneIssue": "扩展(1 个问题)", - "oneUpdate": "扩展(1 个可用更新)" + "active": "可用", + "disabled": "已禁用", + "disabledWorkspace": "已禁用(工作区)" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/chs/src/vs/workbench/parts/files/browser/fileActions.i18n.json index aff221b2b22..207f7500042 100644 --- a/i18n/chs/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "打开到侧边", "pasteFile": "粘贴", "permDelete": "永久删除", + "pickHistory": "选择要进行比较的编辑器历史记录项", "refresh": "刷新", "refreshExplorer": "刷新资源管理器", "rename": "重命名", diff --git a/i18n/chs/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/chs/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 298d8359482..30c9e13a74e 100644 --- a/i18n/chs/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "在 GIT 远程上进行身份验证失败。", + "cancel": "取消", "cleanChangesLabel": "清理更改(&&C)", "commit": "Commit", "commitAll": "全部提交", @@ -22,16 +23,21 @@ "confirmUndoMessage": "是否确定要清理所有更改?", "dirtyTreeCheckout": "无法签出。请首先提交你的工作或进行分段。", "dirtyTreePull": "无法请求。请首先提交你的工作或进行分段。", + "do you want to continue": "是否确定要继续?", "init": "初始化", "irreversible": "此操作不可逆!", + "never again": "好,永不再显示", + "ok": "确定", "openChange": "打开更改", "openFile": "打开文件", "publish": "发布", "publishPickMessage": "选取要将分支“{0}”发布到的远程:", + "pushToRemote": "推送到...", + "pushToRemotePickMessage": "选择将分支“{0}”推送到的远程位置:", "refresh": "刷新", "stageAllChanges": "全部暂存", "stageChanges": "暂存", - "sureSync": "是否确定要同步你的 Git 存储库?", + "sync is unpredictable": "此操作会在“{0}”来回推送和拉取提交。", "undoAllChanges": "全部清理", "undoChanges": "清理", "undoLastCommit": "撤消上次提交", diff --git a/i18n/chs/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/chs/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..0de97ab3151 --- /dev/null +++ b/i18n/chs/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "复制" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 43af62a13b0..061c2a24045 100644 --- a/i18n/chs/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "配置 glob 模式以在搜索中排除文件和文件夹。从 files.exclude 设置中继承所有 glob 模式。", "exclude.boolean": "匹配文件路径所依据的 glob 模式。设置为 true 或 false 可启用或禁用该模式。", "exclude.when": "对匹配文件的同级文件的其他检查。使用 $(basename) 作为匹配文件名的变量。", + "findInFiles": "在文件中查找", "findInFolder": "在文件夹中查找", "name": "搜索", "openAnythingHandlerDescription": "转到文件", "openSymbolDescriptionNormal": "转到工作区中的符号", "search.quickOpen.includeSymbols": "配置为在 Quick Open 文件结果中包括全局符号搜索的结果。", "searchConfigurationTitle": "搜索", + "showSearchViewlet": "显示搜索", "showTriggerActions": "转到工作区中的符号...", "view": "查看" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json index a8d763dcfad..f2bddc47f34 100644 --- a/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "删除", "file.replaceAll.label": "全部替换", "findInFolder": "在文件夹中查找", - "focusNextInputbox": "聚焦下一个输入框", - "focusPreviousInputbox": "聚焦上一个输入框", + "focusNextInputBox": "聚焦下一个输入框", + "focusPreviousInputBox": "聚焦上一个输入框", "match.replace.label": "替换", "nextSearchTerm": "显示下一个搜索词", "previousSearchTerm": "显示上一个搜索词", - "replaceInFiles": "在文件中替换", - "showSearchViewlet": "显示搜索" + "replaceInFiles": "在文件中替换" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 2151ea7d4b6..a7d58050005 100644 --- a/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "启动的进程不再存在。如果任务衍生的后台任务退出 VS Code,则可能会导致出现孤立的进程。", "TestAction.label": "运行测试任务", "manyMarkers": "99+", + "problems": "问题", "taskCommands": "运行任务", "tasks": "任务", "tasksCategory": "任务" diff --git a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 360b6a4fadb..7cb1eee293f 100644 --- a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "终端在 Windows 上使用的 shell 的路径。使用随 Windows 一起提供的 shell 时(cmd、PowerShell 或 Ubuntu 上的 Bash),相对 C:WindowsSystem32,首选 C:Windowssysnative 以使用 64 位版本。", "terminal.integrated.shellArgs.linux": "在 Linux 终端上时要使用的命令行参数。", "terminal.integrated.shellArgs.osx": "在 OS X 终端上时要使用的命令行参数。", + "terminal.integrated.shellArgs.windows": "在 Windows 终端上时使用的命令行参数。", "terminalCategory": "终端", "terminalIntegratedConfigurationTitle": "集成终端", "viewCategory": "查看" diff --git a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 51c37b8b269..42ecf53f401 100644 --- a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "在活动终端运行所选文本", "workbench.action.terminal.scrollDown": "向下滚动(行)", "workbench.action.terminal.scrollDownPage": "向下滚动(页)", + "workbench.action.terminal.scrollToBottom": "滚动到底部", + "workbench.action.terminal.scrollToTop": "滚动到顶部", "workbench.action.terminal.scrollUp": "向上滚动(行)", "workbench.action.terminal.scrollUpPage": "向上滚动(页)", "workbench.action.terminal.switchTerminalInstance": "切换终端实例", diff --git a/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index c6259d0e494..787539d2d7f 100644 --- a/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "关闭", - "insiderBuilds": "会员版本将成为日常版本!", + "insiderBuilds": "日常会员版本和发布!", "license": "读取许可证", "licenseChanged": "我们的许可条款已更改,请检查它们。", "neverShowAgain": "不再显示", diff --git a/i18n/chs/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/chs/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..87fdd1af35f --- /dev/null +++ b/i18n/chs/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "添加上方/下方游标", + "watermark.moveLines": "上移/下移行", + "watermark.quickOpen": "转到文件", + "watermark.showCommands": "命令面板", + "watermark.toggleTerminal": "切换终端", + "watermark.unboundCommand": "未绑定" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..585bb2496cd --- /dev/null +++ b/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "扩展主机意外终止。请重新加载窗口以恢复。", + "extensionHostProcess.error": "扩展主机中的错误: {0}", + "extensionHostProcess.startupFail": "扩展主机未在 10 秒内启动,这可能是一个问题。", + "extensionHostProcess.startupFailDebug": "扩展未在 10 秒内启动,可能在第一行已停止,需要调试器才能继续。", + "extensionUnderDevelopment": "正在 {0} 处加载开发扩展", + "overwritingExtension": "使用 {1} 覆盖扩展 {0}。" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/chs/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 8f647527d64..ec34b956910 100644 --- a/i18n/chs/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/chs/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "下载 .NET Framework 4.5", "netVersionError": "需要 Microsoft .NET Framework 4.5。请访问链接安装它。", + "neverShowAgain": "不再显示", "trashFailed": "未能将“{0}”移动到垃圾桶" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/chs/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..b6bdc2f3cff --- /dev/null +++ b/i18n/chs/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "未能保存“{0}”: {1}", + "saveFileFirst": "文件已更新。请首先保存它,然后再通过另一个编码重新打开它。" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/chs/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..24038337393 --- /dev/null +++ b/i18n/chs/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "所有文件", + "cancel": "取消", + "dontSave": "不保存(&&N)", + "moreFile": "...1 个其他文件未显示", + "moreFiles": "...{0} 个其他文件未显示", + "noExt": "无扩展", + "save": "保存(&&S)", + "saveAll": "全部保存(&&S)", + "saveChangesDetail": "如果不保存,更改将丢失。", + "saveChangesMessage": "是否要保存对 {0} 的更改?", + "saveChangesMessages": "是否要保存对下列 {0} 个文件的更改?" +} \ No newline at end of file diff --git a/i18n/cht/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/cht/extensions/typescript/out/typescriptServiceClient.i18n.json index 6246b1ddb7a..598b3034a2c 100644 --- a/i18n/cht/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/cht/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "已將工作區設定 'typescript.tsdk' 更新為 {0}", "use": "使用工作區 ({0})", "useBundled": "使用套件組合 ({0})", - "versionMismatch": "偵測到全域安裝的 TSC 編譯器 ({0}) 和 VS Code 的語言服務 ({1}) 之間版本不符。這可能會導致編譯不一致的錯誤。", + "versionMismatch": "版本不符! 全域 TSC ({0}) != VS Code 的語言服務 ({1})。可能會發生編譯不一致的錯誤", "versionNumber.custom": "自訂" } \ No newline at end of file diff --git a/i18n/cht/extensions/typescript/package.i18n.json b/i18n/cht/extensions/typescript/package.i18n.json index 7e3fcc82df5..5d0c7a26fb5 100644 --- a/i18n/cht/extensions/typescript/package.i18n.json +++ b/i18n/cht/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "定義逗號分隔符號後的空格處理", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "定義匿名函式之函式關鍵字後的空格處理", "format.insertSpaceAfterKeywordsInControlFlowStatements": "定義控制流量陳述式內關鍵字後的空格處理", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "定義 JSX 運算式左括號與右括號間的空格處理。需要 TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "定義左中括弧與非空白右中括弧間的空格處理", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "定義左括弧與非空白右括弧間的空格處理", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "定義範本字串左括號與右括號間的空格處理。需要 TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": "定義 for 陳述式內分號後的空格處理", "format.insertSpaceBeforeAndAfterBinaryOperators": "定義二元運算子後的空格處理", "format.placeOpenBraceOnNewLineForControlBlocks": "定義是否將左大括弧放入控制區塊的新行", @@ -18,6 +20,7 @@ "javascript.validate.enable": "啟用 / 停用 JavaScript 驗證", "typescript.check.tscVersion": "請檢查全域安裝 TypeScript 編譯器 (例如 tsc) 是否不同於使用的 TypeScript 語言服務。", "typescript.check.workspaceVersion": "請檢查 TypeScript 版本是否可在工作區中使用", + "typescript.experimentalAutomaticTypeAcquisition": "啟用自動取得類型。需要 TypeScript >= 2.0.6,並在變更後重新啟動。", "typescript.reloadProjects.title": "重新載入 TypeScript 專案", "typescript.tsdk.desc": "指定資料夾路徑,其中包含要使用的 tsserver 和 lib*.d.ts 檔案。", "typescript.tsdk_version.desc": "指定 tsserver 版本。只有在未使用 npm 安裝 tsserver 時才需要。", diff --git a/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json index 72e6e57f71b..43e0a7cb1b1 100644 --- a/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "控制字型大小 (以像素為單位)。", "fontWeight": "控制字型寬度。", "formatOnType": "控制編輯器是否應在輸入一行後自動格式化", + "glyphMargin": "控制編輯器是否應轉譯垂直字符邊界。字符邊界最常用來進行偵錯。", "hideCursorInOverviewRuler": "控制游標是否應隱藏在概觀尺規中。", "ignoreTrimWhitespace": "控制 Diff 編輯器是否將開頭或尾端空白字元的變更顯示為差異", "insertSpaces": "在按 Tab 時插入空格。當 `editor.detectIndentation` 已開啟時,會根據檔案內容覆寫此設定。", @@ -41,6 +42,8 @@ "sideBySide": "控制 Diff 編輯器要並排或內嵌顯示差異", "snippetSuggestions": "控制程式碼片段是否隨其他建議顯示,以及其排序方式。", "stablePeek": "讓預覽編輯器在使用者按兩下其內容或點擊 Escape 時保持開啟。", + "suggestFontSize": "建議小工具的字型大小", + "suggestLineHeight": "建議小工具的行高", "suggestOnTriggerCharacters": "控制輸入觸發字元時,是否應自動顯示建議", "tabCompletion": "在前置詞相符時插入程式碼片段。最適用於未啟用 'quickSuggestions' 時。", "tabSize": "與 Tab 相等的空格數量。當 `editor.detectIndentation` 已開啟時,會根據檔案內容覆寫此設定。", diff --git a/i18n/cht/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/cht/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 24b671ff572..1ae6cc8c1cd 100644 --- a/i18n/cht/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/cht/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "在一側開啟定義", "actions.previewDecl.label": "預覽定義", "meta.title": " - {0} 個定義", - "multipleResults": "按一下以顯示找到的 {0} 個定義。" + "multipleResults": "按一下以顯示 {0} 項定義。" } \ No newline at end of file diff --git a/i18n/cht/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/cht/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index e838688b779..1d7ab69c3a9 100644 --- a/i18n/cht/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/cht/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "顯示修正", + "quickFixWithKb": "顯示修正 ({0})", "quickfix.trigger.label": "Quick Fix" } \ No newline at end of file diff --git a/i18n/cht/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/cht/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 27e1e60e268..6b4ca30dab6 100644 --- a/i18n/cht/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/cht/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "功能表項目參考了與預設相同的命令和替代命令", "menuId.invalid": "`{0}` 不是有效的功能表識別碼", "menus.editorContext": "編輯器操作功能表", + "menus.editorTabContext": "編輯器索引標籤操作功能表", "menus.editorTitle": "編輯器標題功能表", "menus.explorerContext": "檔案總管操作功能表", "missing.altCommand": "功能表項目參考了 'commands' 區段中未定義的替代命令 `{0}`。", diff --git a/i18n/cht/src/vs/platform/environment/node/argv.i18n.json b/i18n/cht/src/vs/platform/environment/node/argv.i18n.json index f846945c6b9..4d7fbf9f606 100644 --- a/i18n/cht/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/cht/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "開啟 Diff 編輯器。要求傳遞兩個檔案路徑作為引數。", "disableExtensions": "停用所有已安裝的擴充功能。", + "disableGPU": "停用 GPU 硬體加速。", "extensionHomePath": "設定擴充功能的根路徑。", "goto": "開啟位於行與欄中路徑的檔案 (將 :line[:column] 加入路徑中)。", "gotoValidation": "`--goto` 模式中的引數格式應為 `FILE(:LINE(:COLUMN))`。", @@ -19,6 +20,7 @@ "paths": "路徑", "performance": "在已啟用 'Developer: Startup Performance' 命令的情況下開始。", "reuseWindow": "強制在最近使用的視窗中開啟檔案或資料夾。", + "showVersions": "使用 --list-extension 時,顯示安裝的擴充功能版本。", "uninstallExtension": "解除安裝擴充功能。", "usage": "使用方式", "userDataDir": "指定保留使用者資料的目錄,這在以根目錄身分執行時有用。", diff --git a/i18n/cht/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/cht/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index bce92cc8d95..9b60780a6f4 100644 --- a/i18n/cht/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/cht/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "屬性 '{0}' 為強制項目且必須屬於 `string` 類型", "extensionDescription.version": "屬性 '{0}' 為強制項目且必須屬於 `string` 類型", "vscode.extension.activationEvents": "VS Code 擴充功能的啟動事件。", + "vscode.extension.badges": "要顯示於 Marketplace 擴充頁面資訊看板的徽章陣列。", + "vscode.extension.badges.description": "徽章描述。", + "vscode.extension.badges.href": "徽章連結。", + "vscode.extension.badges.url": "徽章映像 URL。", "vscode.extension.categories": "VS Code 資源庫用來將擴充功能歸類的分類。", "vscode.extension.contributes": "此封裝所代表的所有 VS Code 擴充功能比重。", "vscode.extension.displayName": "VS Code 資源庫中使用的擴充功能顯示名稱。", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "用於 VS Code Marketplace 的橫幅。", "vscode.extension.galleryBanner.color": "VS Code Marketplace 頁首的橫幅色彩。", "vscode.extension.galleryBanner.theme": "橫幅中使用的字型色彩佈景主題。", + "vscode.extension.icon": "128 x 128 像素圖示的路徑。", + "vscode.extension.preview": "將延伸模組設為在 Marketplace 中標幟為 [預覽]。", "vscode.extension.publisher": "VS Code 擴充功能的發行者。", "vscode.extension.scripts.prepublish": "在封裝作為 VS Code 擴充功能發行前所執行的指令碼。" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/cht/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 577cc0ceead..08df7a29ce5 100644 --- a/i18n/cht/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/cht/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "切換提要欄位位置", + "toggleLocation": "切換提要欄位位置", "view": "檢視" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/cht/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 4758d9ed0dc..6fafd26f66a 100644 --- a/i18n/cht/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/cht/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "關閉", "focusPanel": "將焦點移至面板", + "toggleMaximizedPanel": "切換最大化面板", "togglePanel": "切換面板", "view": "檢視" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/cht/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index cd395a65caa..d16c7b60767 100644 --- a/i18n/cht/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/cht/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "按 'Enter' 鍵確認您的輸入或按 'Esc' 鍵取消", "inputModeEntryDescription": "{0} (按 'Enter' 鍵確認或按 'Esc' 鍵取消)", "noResultsFound1": "找不到結果", - "quickOpenInput": "輸入 '?' 即可取得相關說明來了解您可以在這裡執行的動作" + "pickHistory": "選取編輯器輸入即可從歷程記錄移除", + "quickOpenInput": "輸入 '?' 即可取得相關說明來了解您可以在這裡執行的動作", + "removeFromEditorHistory": "從編輯器記錄中移除" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json index f78a2761ed5..02317dd707b 100644 --- a/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "關閉資料夾", "closeMessages": "關閉通知訊息", "closeWindow": "關閉視窗", + "current": "目前視窗", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "檔案", "folders": "資料夾", diff --git a/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json index ca52e9d67ca..2cb4d92cdf1 100644 --- a/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "控制當視窗在全螢幕模式下結束後,下次是否仍以全螢幕模式開啟。", "showEditorTabs": "控制已開啟的編輯器是否應顯示在索引標籤中。", "showIcons": "控制開啟的編輯器是否搭配圖示顯示。這需要同時啟用圖示佈景主題。", + "sideBarLocation": "控制項資訊看板的位置。可顯示於 Workbench 的左方或右方。", + "statusBarVisibility": "控制 Workbench 底端狀態列的可視性。", "updateChannel": "設定是否要從更新頻道接收自動更新。變更後需要重新啟動。", "updateConfigurationTitle": "更新", "view": "檢視", diff --git a/i18n/cht/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 199db8fb0e8..7b0c12ea2a0 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "輸入第 {0} 行的中斷點條件。程式只有在此條件為 True 時才會在此停止。請按 Enter 鍵接受,或按 Esc 鍵取消。", - "breakpointWidgetPlaceholder": "第 {0} 行的中斷點只有在此條件為 True 時才會停止。請按 'Enter' 鍵接受或按 'Esc' 鍵取消。" + "breakpointWidgetAriaLabel": "程式只有在此條件為 true 時才會在此停止。請按 Enter 鍵接受,或按 Esc 鍵取消。", + "breakpointWidgetExpressionPlaceholder": "運算式評估為 true 時中斷", + "breakpointWidgetHitCountAriaLabel": "程式只會在符合叫用次數時於此處停止。按 Enter 鍵接受,或按 Escape 鍵取消。", + "breakpointWidgetHitCountPlaceholder": "符合叫用次數條件時中斷", + "expression": "運算式", + "hitCount": "叫用次數" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index b33c53bffbb..04a14b30539 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "啟動中斷點", - "addConditionalBreakpoint": "加入條件式中斷點", + "addConditionalBreakpoint": "新增條件中斷點...", "addFunctionBreakpoint": "加入函式中斷點", "addToWatchExpressions": "加入監看", "addWatchExpression": "加入運算式", "clearRepl": "清除主控台", - "conditionalBreakpointEditorAction": "偵錯: 條件式中斷點", + "conditionalBreakpointEditorAction": "偵錯: 新增條件中斷點...", "continueDebug": "繼續", "deactivateBreakpoints": "停用中斷點", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "焦點偵錯主控台", "disableAllBreakpoints": "停用所有中斷點", "disconnectDebug": "中斷連接", - "editConditionalBreakpoint": "編輯中斷點", + "editConditionalBreakpoint": "編輯中斷點...", "enableAllBreakpoints": "啟用所有中斷點", "launchJsonNeedsConfigurtion": "設定或修正 'launch.json'", "openLaunchJson": "開啟 {0}", diff --git a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 9604955e86b..ade6af21004 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "允許設定所有檔案的中斷點,無論延伸模組為何。", "debug": "偵錯", "debugCategory": "偵錯", + "debugConfigurationTitle": "偵錯", "debugErrorEditor": "對錯誤偵錯", "debugPanel": "偵錯主控台", "launchConfigDoesNotExist": "啟動設定 '{0}' 不存在。", + "openExplorerOnEnd": "自動於偵錯工作階段結束時開啟 Explorer Viewlet。", "toggleDebugPanel": "偵錯主控台", "toggleDebugViewlet": "顯示偵錯", "view": "檢視" diff --git a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 61c1c91f665..bcc5a8c1b14 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "REPL 接受輸入", "actions.repl.historyNext": "下一筆記錄", "actions.repl.historyPrevious": "上一筆記錄", - "replAriaLabel": "Read Eval Print Loop 面板" + "replAriaLabel": "「讀取、求值、輸出」迴圈面板" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 551aa8de48c..b6109cd4007 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "按一下以追蹤 (Ctrl + 按一下滑鼠左鍵開至側邊)", "fileLinkMac": "按一下以追蹤 (Cmd + 按一下滑鼠左鍵開至側邊)", - "replExpressionAriaLabel": "運算式 {0} 具有值 {1},Read Eval Print Loop,偵錯", - "replKeyValueOutputAriaLabel": "輸出變數 {0} 具有值 {1},Read Eval Print Loop,偵錯", - "replValueOutputAriaLabel": "{0},Read Eval Print Loop,偵錯", - "replVariableAriaLabel": "變數 {0} 具有值 {1},Read Eval Print Loop,偵錯", + "replExpressionAriaLabel": "運算式 {0} 具有值 {1},「讀取、求值、輸出」迴圈,偵錯", + "replKeyValueOutputAriaLabel": "輸出變數 {0} 具有值 {1},「讀取、求值、輸出」迴圈,偵錯", + "replValueOutputAriaLabel": "{0},「讀取、求值、輸出」迴圈,偵錯", + "replVariableAriaLabel": "變數 {0} 具有值 {1},「讀取、求值、輸出」迴圈,偵錯", "stateCapture": "第一次評估會擷取物件狀態" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 948cb25dfb4..70695dea674 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "無法在 '.vscode' 資料夾 ({0}) 中建立 'launch.json' 檔案。", - "app.launch.json.configurations": "組態清單。請加入新的組態或編輯現有的組態。", + "app.launch.json.configurations": "組態清單。請使用 IntelliSense 新增新的組態或編輯現有的組態。", "app.launch.json.title": "啟動", "app.launch.json.version": "此檔案格式的版本。", "debugNoType": "偵錯配接器 'type' 不能省略且必須屬於 'string' 類型。", "duplicateDebuggerType": "偵錯類型 '{0}' 已註冊並具有屬性 '{1}',即將略過屬性 '{1}'。", - "interactiveVariableNotFound": "配接器 {0} 未參與在啟動設定中指定的變數 {1}。", "selectDebug": "選取環境", "vscode.extension.contributes.breakpoints": "提供中斷點。", "vscode.extension.contributes.breakpoints.language": "允許此語言使用中斷點。", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..c1a74f1991c --- /dev/null +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "開啟", + "extensions.openSide": "開至側邊" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 396b167f9f0..fb55ea31bed 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "名稱", "debuggers": "偵錯工具 ({0})", "default": "預設", + "dependencies": "相依性", "description": "描述", "details": "詳細資料", + "extension id": "延伸模組識別碼", "file extensions": "副檔名", "grammar": "文法", + "install count": "安裝計數", "keyboard shortcuts": "鍵盤快速鍵(&&K)", "language id": "識別碼", "language name": "名稱", "languages": "語言 ({0})", "license": "授權", "menuContexts": "功能表內容", + "name": "延伸模組名稱", "noChangelog": "沒有可用的 CHANGELOG。", "noReadme": "沒有可用的讀我檔案。", + "publisher": "發行者名稱", + "rating": "評等", "setting name": "名稱", "settings": "設定 ({0})", "snippets": "程式碼片段", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 6edf893cce7..2186c16d3b7 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "設定停用的延伸模組", + "disableWorkspaceExtensions": "設定停用的延伸模組 (工作區)", "extension": "擴充功能", "extensions": "擴充功能", "extensionsAutoUpdate": "自動更新擴充功能", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 289223e3a67..52e04f418b7 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "只有在工作區資料夾中才能使用建議。", "OpenExtensionsFile.failed": "無法在 '.vscode' 資料夾 ({0}) 中建立 'extensions.json' 檔案。", + "OpenGlobalExtensionsStorageFile.failed": "無法在 '{0}' 資料夾中建立 'extensions.json' 檔案 ({1})。", "builtin": "內建", "clearExtensionsInput": "清除擴充功能輸入", - "configureWorkspaceRecommendedExtensions": "設定工作區的建議擴充功能", + "configureWorkspaceRecommendedExtensions": "設定建議的延伸模組 (工作區)", "deleteSure": "確定要解除安裝 '{0}' 嗎?", "enableAction": "啟用", "installAction": "安裝", @@ -19,6 +20,7 @@ "postUninstallMessage": "已成功將 '{0}' 解除安裝。請重新啟動加以停用。", "restart": "為了啟用此擴充功能,必須重新啟動此 VS Code 視窗。\n\n要繼續嗎?", "restartNow": "立即重新啟動", + "showDisabledExtensions": "顯示停用的延伸模組", "showInstalledExtensions": "顯示安裝的擴充功能", "showOutdatedExtensions": "顯示過期的擴充功能", "showPopularExtensions": "顯示熱門擴充功能", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index b8bf44db113..6ad1328fb88 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "格式應為 '${publisher}.${name}'。範例: 'vscode.csharp'。", "app.extensions.json.recommendations": "擴充功能的建議清單。擴充功能的識別碼一律為 '${publisher}.${name}'。例如: 'vscode.csharp'。", - "app.extensions.json.title": "擴充功能" + "app.extensions.json.title": "擴充功能", + "app.extensionsstorage.json.disabled": "停用的延伸模組清單。延伸模組的識別碼一律為 '${publisher}.${name}'。例如: 'vscode.csharp'。", + "app.extensionsstorage.json.title": "延伸模組儲存體" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 9169add056b..df68f20c818 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "排序依據: ↑", "descending": "排序依據: ↓", "extensions": "延伸模組", + "no extensions found": "找不到延伸模組。", "outdatedExtensions": "{0} 過期的擴充功能", "searchExtensions": "在 Marketplace 中搜尋擴充功能", "sort by installs": "排序依據: 安裝計數", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 36cd3bef87c..62947f4c498 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "延伸模組", - "extensionsInstalling": "擴充功能 (有 {0} 個正在安裝...)", - "multipleIssues": "擴充功能 (有 {0} 個問題)", - "multipleUpdates": "擴充功能 (有 {0} 項更新可用)", - "oneIssue": "擴充功能 (有 1 個問題)", - "oneUpdate": "擴充功能 (有 1 項更新可用)" + "active": "使用中", + "disabled": "已停用", + "disabledWorkspace": "停用 (工作區)" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/cht/src/vs/workbench/parts/files/browser/fileActions.i18n.json index e2d541b8bfe..b774e660390 100644 --- a/i18n/cht/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "開至側邊", "pasteFile": "貼上", "permDelete": "永久刪除", + "pickHistory": "選取編輯器歷程記錄輸入以相比較", "refresh": "重新整理", "refreshExplorer": "重新整理 Explorer", "rename": "重新命名", diff --git a/i18n/cht/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/cht/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 2ad01d4f64c..c664e21ce64 100644 --- a/i18n/cht/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Git 遠端的驗證失敗。", + "cancel": "取消", "cleanChangesLabel": "清除變更(&&C)", "commit": "Commit", "commitAll": "全部認可", @@ -22,16 +23,21 @@ "confirmUndoMessage": "確定要清除所有變更嗎?", "dirtyTreeCheckout": "無法簽出。請先認可或佈置您的工作。", "dirtyTreePull": "無法提取。請先認可或佈置您的工作。", + "do you want to continue": "確定要繼續嗎?", "init": "Init", "irreversible": "此動作無法回復!", + "never again": "確定,不要再顯示", + "ok": "確定", "openChange": "開啟變更", "openFile": "開啟檔案", "publish": "發行", "publishPickMessage": "挑選要發行分支 '{0}' 的目標遠端:", + "pushToRemote": "推送至...", + "pushToRemotePickMessage": "挑選遠端作為分支 '{0}' 的發送目標:", "refresh": "重新整理", "stageAllChanges": "全部分段", "stageChanges": "分段", - "sureSync": "確定要同步處理您的 GIT 存放庫嗎?", + "sync is unpredictable": "此動作會將認可發送至 '{0}' 及從中提取認可。", "undoAllChanges": "全部清除", "undoChanges": "清除", "undoLastCommit": "復原上次認可", diff --git a/i18n/cht/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/cht/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..48b44c3d443 --- /dev/null +++ b/i18n/cht/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "複製" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index d4ec9b97892..07286b5d05d 100644 --- a/i18n/cht/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "設定 Glob 模式,以排除不要搜尋的檔案及資料夾。請從 file.exclude 設定繼承所有的 Glob 模式。", "exclude.boolean": "要符合檔案路徑的 Glob 模式。設為 True 或 False 可啟用或停用模式。", "exclude.when": "在相符檔案同層級上額外的檢查。請使用 $(basename) 作為相符檔案名稱的變數。", + "findInFiles": "在檔案中尋找", "findInFolder": "在資料夾中尋找", "name": "搜尋", "openAnythingHandlerDescription": "前往檔案", "openSymbolDescriptionNormal": "前往工作區中的符號", "search.quickOpen.includeSymbols": "設定以將全域符號搜尋的結果納入 Quick Open 的檔案結果中。", "searchConfigurationTitle": "搜尋", + "showSearchViewlet": "顯示搜尋", "showTriggerActions": "前往工作區中的符號...", "view": "檢視" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 20f556a0367..1088dcd3312 100644 --- a/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "移除", "file.replaceAll.label": "全部取代", "findInFolder": "在資料夾中尋找", - "focusNextInputbox": "聚焦下一個輸入方塊", - "focusPreviousInputbox": "聚焦上一個輸入方塊", + "focusNextInputBox": "聚焦下一個輸入方塊", + "focusPreviousInputBox": "聚焦上一個輸入方塊", "match.replace.label": "取代", "nextSearchTerm": "顯示下一個搜尋字詞", "previousSearchTerm": "顯示上一個搜尋字詞", - "replaceInFiles": "檔案中取代", - "showSearchViewlet": "顯示搜尋" + "replaceInFiles": "檔案中取代" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 6b2b3592845..cdbd7899063 100644 --- a/i18n/cht/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "啟動的處理序已不存在。如果工作繁衍的背景工作結束,VS Code 可能會產生孤立的處理序。", "TestAction.label": "執行測試工作", "manyMarkers": "99+", + "problems": "問題", "taskCommands": "執行工作", "tasks": "工作", "tasksCategory": "工作" diff --git a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index a6e076b9d76..6eb687d5d39 100644 --- a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "終端機在 Windows 上使用的殼層路徑。使用隨附於 Windows 的殼層 (cmd、PowerShell 或 Bash on Ubuntu) 時,建議選擇 C:Windowssysnative 而非 C:WindowsSystem32,以使用 64 位元版本。", "terminal.integrated.shellArgs.linux": "在 Linux 終端機要使用的命令列引數。", "terminal.integrated.shellArgs.osx": "在 OS X 終端機要使用的命令列引數。", + "terminal.integrated.shellArgs.windows": "在 Windows 終端機上時要使用的命令列引數。", "terminalCategory": "終端機", "terminalIntegratedConfigurationTitle": "整合式終端機", "viewCategory": "檢視" diff --git a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 7b42baa191a..40425575747 100644 --- a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "在使用中的終端機執行選取的文字", "workbench.action.terminal.scrollDown": "向下捲動 (行)", "workbench.action.terminal.scrollDownPage": "向下捲動 (頁)", + "workbench.action.terminal.scrollToBottom": "捲動至底端", + "workbench.action.terminal.scrollToTop": "捲動至頂端", "workbench.action.terminal.scrollUp": "向上捲動 (行)", "workbench.action.terminal.scrollUpPage": "向上捲動 (頁)", "workbench.action.terminal.switchTerminalInstance": "切換終端機執行個體", diff --git a/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 99643d78f10..9d686ce07e6 100644 --- a/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "關閉", - "insiderBuilds": "測試人員組建將成為每日組建!", + "insiderBuilds": "每日都有測試人員組建及版本!", "license": "閱讀授權", "licenseChanged": "授權條款已有所變更,請仔細閱讀。", "neverShowAgain": "不要再顯示", diff --git a/i18n/cht/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/cht/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..abe65d7bcfe --- /dev/null +++ b/i18n/cht/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "在上方/下方新增資料指標", + "watermark.moveLines": "將行上移/下移", + "watermark.quickOpen": "前往檔案", + "watermark.showCommands": "命令選擇區", + "watermark.toggleTerminal": "切換終端機", + "watermark.unboundCommand": "未繫結" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..b65bdc64e16 --- /dev/null +++ b/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "延伸主機意外終止。請重新載入視窗以復原。", + "extensionHostProcess.error": "延伸主機發生錯誤: {0}", + "extensionHostProcess.startupFail": "延伸主機未在 10 秒內啟動,可能發生了問題。", + "extensionHostProcess.startupFailDebug": "延伸主機未於 10 秒內開始,可能在第一行就已停止,並需要偵錯工具才能繼續。", + "extensionUnderDevelopment": "正在載入位於 {0} 的開發延伸模組", + "overwritingExtension": "正在以 {1} 覆寫延伸模組 {0}。" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/cht/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index e6eaeccaa69..b138f9e69e6 100644 --- a/i18n/cht/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/cht/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "下載 .NET Framework 4.5", "netVersionError": "需要 Microsoft .NET Framework 4.5。請連入此連結進行安裝。", + "neverShowAgain": "不要再顯示", "trashFailed": "無法將 '{0}' 移動至垃圾" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/cht/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..6958e7db6e1 --- /dev/null +++ b/i18n/cht/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "無法儲存 '{0}': {1}", + "saveFileFirst": "檔案已變更。請先儲存,再以其他編碼重新開啟。" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/cht/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..3165b95a1c3 --- /dev/null +++ b/i18n/cht/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "所有檔案", + "cancel": "取消", + "dontSave": "不要儲存(&&N)", + "moreFile": "...另外 1 個檔案未顯示", + "moreFiles": "...另外 {0} 個檔案未顯示", + "noExt": "無擴充功能", + "save": "儲存(&&S)", + "saveAll": "全部儲存(&&S)", + "saveChangesDetail": "如果您不儲存變更,這些變更將會遺失。", + "saveChangesMessage": "要儲存對 {0} 所做的變更嗎?", + "saveChangesMessages": "要儲存對下列 {0} 個檔案所做的變更嗎?" +} \ No newline at end of file diff --git a/i18n/deu/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/deu/extensions/typescript/out/typescriptServiceClient.i18n.json index 2e4c2bfbb40..f32462f3af3 100644 --- a/i18n/deu/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/deu/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "Die Arbeitsbereicheinstellung \"typescript.tsdk\" wurde in {0} aktualisiert.", "use": "Arbeitsbereich verwenden ({0})", "useBundled": "Paket verwenden ({0})", - "versionMismatch": "Ein Versionskonflikt zwischen dem global installierten TSC-Compiler ({0}) und dem Sprachdienst von VS Code ({1}) wurde erkannt. Dies kann ggf. zu inkonsistenten Kompilierungsfehlern führen.", + "versionMismatch": "Versionskonflikt zwischen dem globalen TSC ({0}) und dem Sprachdienst von VS Code ({1}). Dies kann zu Kompilierungsfehlern aufgrund von Inkonsistenzen führen.", "versionNumber.custom": "benutzerdefiniert" } \ No newline at end of file diff --git a/i18n/deu/extensions/typescript/package.i18n.json b/i18n/deu/extensions/typescript/package.i18n.json index 62cba7ba325..6cf7e6a8dc7 100644 --- a/i18n/deu/extensions/typescript/package.i18n.json +++ b/i18n/deu/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Definiert die Verarbeitung von Leerzeichen nach einem Kommatrennzeichen.", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Definiert die Verarbeitung von Leerzeichen nach einem Funktionsschlüsselwort für anonyme Funktionen.", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Definiert die Verarbeitung von Leerzeichen nach Schlüsselwörtern in einer Flusssteuerungsanweisung.", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Definiert die Verarbeitung von Leerzeichen nach öffnenden und vor schließenden geschweiften Klammern für JSX-Ausdrücke. Erfordert TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Definiert die Verarbeitung von Leerzeichen nach dem Öffnen und vor dem Schließen einer nicht leeren eckigen Klammer.", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Definiert die Verarbeitung von Leerzeichen nach dem Öffnen und vor dem Schließen einer nicht leeren Klammer.", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Definiert die Verarbeitung von Leerzeichen nach öffnenden und vor schließenden geschweiften Klammern für Vorlagenzeichenfolgen. Erfordert TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": " Definiert die Verarbeitung von Leerzeichen nach einem Semikolon in einer for-Anweisung.", "format.insertSpaceBeforeAndAfterBinaryOperators": "Definiert die Verarbeitung von Leerzeichen nach einem binären Operator.", "format.placeOpenBraceOnNewLineForControlBlocks": "Definiert, ob eine öffnende geschweifte Klammer in eine neue Zeile für Kontrollblöcke eingefügt wird.", @@ -18,6 +20,7 @@ "javascript.validate.enable": "JavaScript-Überprüfung aktivieren/deaktivieren", "typescript.check.tscVersion": "Überprüfen, ob sich ein global installierter TypeScript-Compiler (z. B. tsc) vom verwendeten TypeScript-Sprachdienst unterscheidet.", "typescript.check.workspaceVersion": "Überprüfen, ob eine TypeScript-Version im Arbeitsbereich verfügbar ist", + "typescript.experimentalAutomaticTypeAcquisition": "Aktiviert die automatische Typerfassung. Erfordert TypeScript >= 2.0.6 und einen Neustart nach der Änderung.", "typescript.reloadProjects.title": "TypeScript-Projekt erneut laden", "typescript.tsdk.desc": "Gibt den Ordnerpfad mit den zu verwendenden tsserver- und lib*.d.ts-Dateien an.", "typescript.tsdk_version.desc": "Gibt die Version von tsserver an. Nur erforderlich, wenn der tsserver nicht mithilfe von npm installiert wird.", diff --git a/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json index 1f2d3da8f88..26038738af5 100644 --- a/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Steuert den Schriftgrad in Pixeln.", "fontWeight": "Steuert die Schriftbreite.", "formatOnType": "Steuert, ob der Editor Zeilen automatisch nach der Eingabe formatiert.", + "glyphMargin": "Steuert, ob der Editor den vertikalen Glyphenrand rendert. Der Glyphenrand wird hauptsächlich zum Debuggen verwendet.", "hideCursorInOverviewRuler": "Steuert die Sichtbarkeit des Cursors im Übersichtslineal.", "ignoreTrimWhitespace": "Steuert, ob der Diff-Editor Änderungen in führenden oder nachgestellten Leerzeichen als Diffs anzeigt.", "insertSpaces": "Fügt beim Drücken der TAB-TASTE Leerzeichen ein. Diese Einstellung wird basierend auf dem Inhalt der Datei überschrieben, wenn \"editor.detectIndentation\" aktiviert ist.", @@ -40,7 +41,9 @@ "selectionHighlight": "Steuert, ob der Editor der Auswahl ähnelnde Übereinstimmungen hervorheben soll.", "sideBySide": "Steuert, ob der Diff-Editor das Diff nebeneinander oder inline anzeigt.", "snippetSuggestions": "Steuert, ob Codeausschnitte mit anderen Vorschlägen angezeigt und wie diese sortiert werden.", - "stablePeek": "Vorschau-Editoren geöffnet lassen, auch wenn auf ihren Inhalt doppelgeklickt oder die ESC-TASTE gedrückt wird.", + "stablePeek": "Peek-Editoren geöffnet lassen, auch wenn auf ihren Inhalt doppelgeklickt oder die ESC-TASTE gedrückt wird.", + "suggestFontSize": "Schriftgröße für Vorschlagswidget", + "suggestLineHeight": "Zeilenhöhe für Vorschlagswidget", "suggestOnTriggerCharacters": "Steuert, ob Vorschläge automatisch bei der Eingabe von Triggerzeichen angezeigt werden.", "tabCompletion": "Fügt Codeausschnitte ein, wenn ihr Präfix übereinstimmt. Funktioniert am besten, wenn \"quickSuggestions\" nicht aktiviert sind.", "tabSize": "Die Anzahl der Leerzeichen, denen ein Tabstopp entspricht. Diese Einstellung wird basierend auf dem Inhalt der Datei überschrieben, wenn \"editor.detectIndentation\" aktiviert ist.", diff --git a/i18n/deu/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/deu/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 494852dbb2a..c3f08c29a5e 100644 --- a/i18n/deu/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/deu/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Definition an der Seite öffnen", "actions.previewDecl.label": "Peek-Definition", "meta.title": " – {0} Definitionen", - "multipleResults": "Klicken Sie, um die gefundenen {0}-Definitionen anzuzeigen." + "multipleResults": "Klicken Sie, um {0} Definitionen anzuzeigen." } \ No newline at end of file diff --git a/i18n/deu/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/deu/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index fe200125691..feb85add4a5 100644 --- a/i18n/deu/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/deu/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Korrekturen anzeigen", + "quickFixWithKb": "Korrekturen anzeigen ({0})", "quickfix.trigger.label": "Schnelle Problembehebung" } \ No newline at end of file diff --git a/i18n/deu/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/deu/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index caf2d856bcd..a4480c1b9c6 100644 --- a/i18n/deu/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/deu/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "Das Menüelement verweist auf den gleichen Befehl wie der Standard- und der Alternativbefehl.", "menuId.invalid": "\"{0}\" ist kein gültiger Menübezeichner.", "menus.editorContext": "Das Editor-Kontextmenü.", + "menus.editorTabContext": "Das Kontextmenü für die Editor-Registerkarten", "menus.editorTitle": "Das Editor-Titelmenü.", "menus.explorerContext": "Das Kontextmenü des Datei-Explorers.", "missing.altCommand": "Das Menüelement verweist auf einen Alternativbefehl \"{0}\", der im Abschnitt \"commands\" nicht definiert ist.", diff --git a/i18n/deu/src/vs/platform/environment/node/argv.i18n.json b/i18n/deu/src/vs/platform/environment/node/argv.i18n.json index 50930c84fb4..f398323032b 100644 --- a/i18n/deu/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/deu/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Öffnet einen Diff-Editor. Es müssen zwei Dateipfade als Argumente übergeben werden.", "disableExtensions": "Deaktiviert alle installierten Extensions.", + "disableGPU": "Deaktiviert die GPU-Hardwarebeschleunigung.", "extensionHomePath": "Legen Sie den Stammpfad für Extensions fest.", "goto": "Öffnet die Datei im Pfad in der Zeile und Spalte (fügen Sie dem Pfad \":line[:column]\" hinzu).", "gotoValidation": "Argumente im Modus \"--goto\" müssen im Format \"DATEI(:ZEILE(:SPALTE))\" vorliegen.", @@ -19,6 +20,7 @@ "paths": "Pfade", "performance": "Startet mit aktiviertem Befehl \"Developer: Startup Performance\".", "reuseWindow": "Erzwingt das Öffnen einer Datei oder eines Ordners im letzten aktiven Fenster.", + "showVersions": "Zeigt Versionen der installierten Erweiterungen an, wenn \"--list-extension\" verwendet wird.", "uninstallExtension": "Deinstalliert eine Extension.", "usage": "Verwendung", "userDataDir": "Gibt das Verzeichnis an, in dem Benutzerdaten gespeichert werden. Nützlich, wenn die Ausführung als \"root\" erfolgt.", diff --git a/i18n/deu/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/deu/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index e240c708c2d..db963c9a252 100644 --- a/i18n/deu/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/deu/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "Die Eigenschaft \"{0}\" ist erforderlich. Sie muss vom Typ \"string\" sein.", "extensionDescription.version": "Die Eigenschaft \"{0}\" ist erforderlich. Sie muss vom Typ \"string\" sein.", "vscode.extension.activationEvents": "Aktivierungsereignisse für die VS Code-Extension.", + "vscode.extension.badges": "Array aus Badges, die im Marketplace in der Seitenleiste auf der Seite mit den Erweiterungen angezeigt werden.", + "vscode.extension.badges.description": "Eine Beschreibung für den Badge.", + "vscode.extension.badges.href": "Der Link für den Badge.", + "vscode.extension.badges.url": "Die Bild-URL für den Badge.", "vscode.extension.categories": "Die vom VS Code-Katalog zum Kategorisieren der Extension verwendeten Kategorien.", "vscode.extension.contributes": "Alle Beiträge der VS Code-Extension, die durch dieses Paket dargestellt werden.", "vscode.extension.displayName": "Der Anzeigename für die Extension, der im VS Code-Katalog verwendet wird.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Das in VS Code Marketplace verwendete Banner.", "vscode.extension.galleryBanner.color": "Die Bannerfarbe für die Kopfzeile der VS Code Marketplace-Seite.", "vscode.extension.galleryBanner.theme": "Das Farbdesign für die Schriftart, die im Banner verwendet wird.", + "vscode.extension.icon": "Der Pfad zu einem 128x128-Pixel-Symbol.", + "vscode.extension.preview": "Legt die Erweiterung fest, die im Marketplace als Vorschau gekennzeichnet werden soll.", "vscode.extension.publisher": "Der Herausgeber der VS Code-Extension.", "vscode.extension.scripts.prepublish": "Ein Skript, das ausgeführt wird, bevor das Paket als VS Code-Extension veröffentlicht wird." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/deu/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index f695537e873..c676a1ca340 100644 --- a/i18n/deu/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/deu/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Randleistenposition umschalten", + "toggleLocation": "Position der Seitenleiste wechseln", "view": "Anzeigen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/deu/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index f5abca8c7b1..61172b0055b 100644 --- a/i18n/deu/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/deu/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Schließen", "focusPanel": "Fokus im Bereich", + "toggleMaximizedPanel": "Bereich maximieren/reduzieren", "togglePanel": "Bereich umschalten", "view": "Anzeigen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/deu/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 8943ebdc7ff..a2c853dae37 100644 --- a/i18n/deu/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/deu/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Drücken Sie die EINGABETASTE, um Ihre Eingabe zu bestätigen, oder ESC, um den Vorgang abzubrechen.", "inputModeEntryDescription": "{0} (Drücken Sie die EINGABETASTE zur Bestätigung oder ESC, um den Vorgang abzubrechen.)", "noResultsFound1": "Es wurden keine Ergebnisse gefunden.", - "quickOpenInput": "Geben Sie \"?\" ein, um Hilfe zu den Aktionen zu erhalten, die hier zur Verfügung stehen." + "pickHistory": "Editor-Eintrag auswählen, der aus dem Verlauf entfernt werden soll", + "quickOpenInput": "Geben Sie \"?\" ein, um Hilfe zu den Aktionen zu erhalten, die hier zur Verfügung stehen.", + "removeFromEditorHistory": "Aus Editor-Verlauf entfernen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/deu/src/vs/workbench/electron-browser/actions.i18n.json index b800d14eaf5..dc53804c8a0 100644 --- a/i18n/deu/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/deu/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Ordner schließen", "closeMessages": "Benachrichtigungs-E-Mail schließen", "closeWindow": "Fenster schließen", + "current": "Aktuelles Fenster", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "Dateien", "folders": "Ordner", diff --git a/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json index 74ff453055a..badc76cdc8c 100644 --- a/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "Steuert, ob ein Fenster im Vollbildmodus wiederhergestellt wird, wenn es im Vollbildmodus beendet wurde.", "showEditorTabs": "Steuert, ob geöffnete Editoren auf Registerkarten angezeigt werden sollen.", "showIcons": "Steuert, ob geöffnete Editoren mit einem Symbol angezeigt werden sollen. Hierzu muss auch ein Symboldesign aktiviert werden.", + "sideBarLocation": "Steuert die Position der Seitenleiste. Diese kann entweder links oder rechts von der Workbench angezeigt werden.", + "statusBarVisibility": "Steuert die Sichtbarkeit der Statusleiste im unteren Bereich der Workbench.", "updateChannel": "Konfiguriert, ob automatische Updates aus einem Updatekanal empfangen werden sollen. Erfordert einen Neustart nach der Änderung.", "updateConfigurationTitle": "Update", "view": "Anzeigen", diff --git a/i18n/deu/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 24782e5d6d7..d1e4d946b4d 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Geben Sie die Haltepunktbedingung für die Zeile {0} ein. Das Programm verwendet diesen Haltepunkt nur, wenn diese Bedingung erfüllt ist. Drücken Sie zum Akzeptieren die EINGABETASTE oder ESC, um den Vorgang abzubrechen.", - "breakpointWidgetPlaceholder": "Der Haltepunkt für die Zeile {0} wird nur verwendet, wenn diese Bedingung erfüllt ist. Drücken Sie zum Akzeptieren die EINGABETASTE oder ESC, um den Vorgang abzubrechen." + "breakpointWidgetAriaLabel": "Das Programm wird nur angehalten, wenn diese Bedingung erfüllt ist. Drücken Sie zum Akzeptieren die EINGABETASTE oder ESC, um den Vorgang abzubrechen.", + "breakpointWidgetExpressionPlaceholder": "Unterbrechen, wenn der Ausdruck als TRUE ausgewertet wird", + "breakpointWidgetHitCountAriaLabel": "Das Programm wird nur angehalten, wenn die Bedingung für die Trefferanzahl erfüllt ist. Drücken Sie zum Akzeptieren die EINGABETASTE oder ESC, um den Vorgang abzubrechen.", + "breakpointWidgetHitCountPlaceholder": "Unterbrechen, wenn die Bedingung für die Trefferanzahl erfüllt ist", + "expression": "Ausdruck", + "hitCount": "Trefferanzahl" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 0ee05615162..4e79dee8529 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,22 +5,22 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Haltepunkte aktivieren", - "addConditionalBreakpoint": "Bedingten Haltepunkt hinzufügen", + "addConditionalBreakpoint": "Bedingten Haltepunkt hinzufügen...", "addFunctionBreakpoint": "Funktionshaltepunkt hinzufügen", "addToWatchExpressions": "Zur Überwachung hinzufügen", "addWatchExpression": "Ausdruck hinzufügen", "clearRepl": "Konsole löschen", - "conditionalBreakpointEditorAction": "Debuggen: Bedingter Haltepunkt", + "conditionalBreakpointEditorAction": "Debuggen: Bedingten Haltepunkt hinzufügen...", "continueDebug": "Weiter", "deactivateBreakpoints": "Haltepunkte deaktivieren", "debugActionLabelAndKeybinding": "{0} ({1})", "debugAddToWatch": "Debuggen: Zur Überwachung hinzufügen", - "debugConsoleAction": "Debugkonsole", + "debugConsoleAction": "Debugging-Konsole", "debugEvaluate": "Debuggen: Auswerten", - "debugFocusConsole": "Focus-Debugkonsole", + "debugFocusConsole": "Focus-Debugging-Konsole", "disableAllBreakpoints": "Alle Haltepunkte deaktivieren", "disconnectDebug": "Trennen", - "editConditionalBreakpoint": "Haltepunkt bearbeiten", + "editConditionalBreakpoint": "Haltepunkt bearbeiten...", "enableAllBreakpoints": "Alle Haltepunkte aktivieren", "launchJsonNeedsConfigurtion": "Konfigurieren oder reparieren Sie \"launch.json\".", "openLaunchJson": "{0} öffnen", @@ -48,5 +48,5 @@ "stopDebug": "Beenden", "toggleBreakpointAction": "Debuggen: Haltepunkt umschalten", "toggleEnablement": "Haltepunkt aktivieren/deaktivieren", - "unreadOutput": "Neue Ausgabe in Debugkonsole" + "unreadOutput": "Neue Ausgabe in Debugging-Konsole" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index a7ac885bb1a..0d03c8ccd26 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,12 +4,15 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Ermöglicht das Festlegen von Haltepunkten für alle Dateien, unabhängig von der Erweiterung.", "debug": "Debuggen", "debugCategory": "Debuggen", + "debugConfigurationTitle": "Debuggen", "debugErrorEditor": "Debuggingfehler", - "debugPanel": "Debugkonsole", + "debugPanel": "Debugging-Konsole", "launchConfigDoesNotExist": "Die Startkonfiguration \"{0}\" ist nicht vorhanden.", - "toggleDebugPanel": "Debugkonsole", + "openExplorerOnEnd": "Hiermit wird am Ende einer Debugsitzung automatisch ein Explorer-Viewlet geöffnet.", + "toggleDebugPanel": "Debugging-Konsole", "toggleDebugViewlet": "Debuggen anzeigen", "view": "Anzeigen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 259cadbdd07..770be80d194 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "REPL-Eingaben akzeptieren", "actions.repl.historyNext": "Verlauf nächste", "actions.repl.historyPrevious": "Verlauf vorherige", - "replAriaLabel": "REPL-Bereich (Read Eval Print Loop)" + "replAriaLabel": "REPL-Bereich (Read Eval Print-Loop)" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 817f9ac994f..ebbfcb6507a 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "Zum Öffnen klicken (STRG+KLICKEN für seitliche Anzeige)", "fileLinkMac": "Zum Öffnen klicken (CMD+KLICKEN für seitliche Anzeige)", - "replExpressionAriaLabel": "Ausdruck {0} besitzt den Wert {1}, Read Eval Print Loop, Debuggen", - "replKeyValueOutputAriaLabel": "Ausgabevariable {0} besitzt den Wert {1}, Read Eval Print Loop, Debuggen", - "replValueOutputAriaLabel": "{0}, Read Eval Print Loop, Debuggen", - "replVariableAriaLabel": "Variable {0} besitzt den Wert {1}, Read Eval Print Loop, Debuggen", + "replExpressionAriaLabel": "Ausdruck {0} besitzt den Wert {1}, Read Eval Print-Loop, Debuggen", + "replKeyValueOutputAriaLabel": "Ausgabevariable {0} besitzt den Wert {1}, Read Eval Print-Loop, Debuggen", + "replValueOutputAriaLabel": "{0}, Read Eval Print-Loop, Debuggen", + "replVariableAriaLabel": "Variable {0} besitzt den Wert {1}, Read Eval Print-Loop, Debuggen", "stateCapture": "Der Objektstatus wird aus der ersten Auswertung erfasst." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/node/debugAdapter.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/node/debugAdapter.i18n.json index c6d03109a2c..af806fc345a 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/node/debugAdapter.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/node/debugAdapter.i18n.json @@ -11,6 +11,6 @@ "debugRequest": "Der Anforderungstyp der Konfiguration. Der Wert kann \"launch\" oder \"attach\" sein.", "debugType": "Der Typ der Konfiguration.", "debugWindowsConfiguration": "Windows-spezifische Startkonfigurationsattribute.", - "internalConsoleOptions": "Steuert das Verhalten der internen Debugkonsole.", + "internalConsoleOptions": "Steuert das Verhalten der internen Debugging-Konsole.", "relativePathsNotConverted": "Relative Pfade werden nicht mehr automatisch in absolute Pfade konvertiert. Verwenden Sie ggf. ${workspaceRoot} als Präfix." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index ab2c10d304b..88fd460c894 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "Die Datei \"launch.json\" kann nicht im Ordner \".vscode\" erstellt werden ({0}).", - "app.launch.json.configurations": "Die Liste der Konfigurationen. Fügen Sie neue Konfigurationen hinzu, oder bearbeiten Sie vorhandene Konfigurationen.", + "app.launch.json.configurations": "Die Liste der Konfigurationen. Fügen Sie neue Konfigurationen hinzu, oder bearbeiten Sie vorhandene Konfigurationen mit IntelliSense.", "app.launch.json.title": "Starten", "app.launch.json.version": "Die Version dieses Dateiformats.", "debugNoType": "Der \"type\" des Debugadapters kann nicht ausgelassen werden und muss vom Typ \"string\" sein.", "duplicateDebuggerType": "Der Debugtyp \"{0}\" ist bereits registriert und weist das Attribut \"{1}\" auf. Das Attribut \"{1}\" wird ignoriert.", - "interactiveVariableNotFound": "Der Adapter {0} trägt nicht die Variable \"{1}\" bei, die in der Startkonfiguration angegeben ist.", "selectDebug": "Umgebung auswählen", "vscode.extension.contributes.breakpoints": "Trägt Haltepunkte bei.", "vscode.extension.contributes.breakpoints.language": "Lässt Haltepunkte für diese Sprache zu.", diff --git a/i18n/deu/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json b/i18n/deu/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json index f5e708b3f9a..0bf26d42585 100644 --- a/i18n/deu/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "console.title": "VS Code-Konsole", - "linux.term.failed": "Fehler bei {0} mit Exitcode {1}.", + "linux.term.failed": "Fehler bei \"{0}\" mit Exitcode {1}.", "mac.terminal.script.failed": "Fehler bei Skript \"{0}\" mit Exitcode {1}.", "mac.terminal.type.not.supported": "\"{0}\" wird nicht unterstützt.", "press.any.key": "Drücken Sie eine beliebige Taste, um fortzufahren..." diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..251d931ab6c --- /dev/null +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Öffnen", + "extensions.openSide": "Zur Seite öffnen" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 6d56f6839b5..3e291faf06c 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Name", "debuggers": "Debugger ({0})", "default": "Standard", + "dependencies": "Abhängigkeiten", "description": "Beschreibung", "details": "Details", + "extension id": "Erweiterungsbezeichner", "file extensions": "Dateierweiterungen", "grammar": "Grammatik", + "install count": "Installationsanzahl", "keyboard shortcuts": "&&Tastenkombinationen", "language id": "ID", "language name": "Name", "languages": "Sprachen ({0})", "license": "Lizenz", "menuContexts": "Menükontexte", + "name": "Erweiterungsname", "noChangelog": "Es ist kein CHANGELOG verfügbar.", "noReadme": "Keine INFODATEI verfügbar.", + "publisher": "Name des Herausgebers", + "rating": "Bewertung", "setting name": "Name", "settings": "Einstellungen ({0})", "snippets": "Codeausschnitte", diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 19f165bde9b..62311f39408 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Deaktivierte Erweiterungen konfigurieren", + "disableWorkspaceExtensions": "Deaktivierte Erweiterungen konfigurieren (Arbeitsbereich)", "extension": "Extension", "extensions": "Extensions", "extensionsAutoUpdate": "Extensions automatisch aktualisieren", diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 84ad7655fa6..96c3fe30b55 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Empfehlungen sind nur für einen Arbeitsbereichsordner verfügbar.", "OpenExtensionsFile.failed": "Die Datei \"extensions.json\" kann nicht im Ordner \".vscode\" erstellt werden ({0}).", + "OpenGlobalExtensionsStorageFile.failed": "Die Datei \"extensions.json\" kann nicht im Ordner \"{0}\" ({1}) erstellt werden.", "builtin": "Integriert", "clearExtensionsInput": "Extensioneingabe löschen", - "configureWorkspaceRecommendedExtensions": "Für den Arbeitsbereich empfohlene Extensions konfigurieren", + "configureWorkspaceRecommendedExtensions": "Empfohlene Erweiterungen konfigurieren (Arbeitsbereich)", "deleteSure": "Möchten Sie \"{0}\" deinstallieren?", "enableAction": "Aktivieren", "installAction": "Installieren", @@ -19,6 +20,7 @@ "postUninstallMessage": "{0} wurde erfolgreich deinstalliert. Führen Sie zur Deaktivierung einen Neustart aus.", "restart": "Damit diese Extension aktiviert wird, muss dieses Fenster von VS Code neu gestartet werden.\n\nMöchten Sie fortfahren?", "restartNow": "Jetzt neu starten", + "showDisabledExtensions": "Deaktivierte Erweiterungen anzeigen", "showInstalledExtensions": "Installierte Extensions anzeigen", "showOutdatedExtensions": "Veraltete Extensions anzeigen", "showPopularExtensions": "Beliebte Extensions anzeigen", diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index 44395f28e60..f7704ebdf57 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Erwartetes Format: \"${publisher}.${name}\". Beispiel: \"vscode.csharp\".", "app.extensions.json.recommendations": "Liste der Erweiterungsempfehlungen. Der Bezeichner einer Erweiterung lautet immer \"${publisher}.${name}\". Beispiel: \"vscode.csharp\".", - "app.extensions.json.title": "Erweiterungen" + "app.extensions.json.title": "Erweiterungen", + "app.extensionsstorage.json.disabled": "Eine Liste der deaktivierten Erweiterungen. Der Bezeichner einer Erweiterung lautet immer \"${publisher}.${name}\". Beispiel: \"vscode.csharp\".", + "app.extensionsstorage.json.title": "Erweiterungsspeicher" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index c2e7b9fbbb1..44b4e90bd98 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Sortierreihenfolge: ↑", "descending": "Sortierreihenfolge: ↓", "extensions": "Extensions", + "no extensions found": "Es wurden keine Erweiterungen gefunden.", "outdatedExtensions": "{0} veraltete Extensions", "searchExtensions": "Nach Extensions in Marketplace suchen", "sort by installs": "Sortieren nach: Installationsanzahl", diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 933c99b1790..5dbf78c93f8 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Extensions", - "extensionsInstalling": "Extensions ({0} wird installiert...)", - "multipleIssues": "Extensions ({0} Probleme)", - "multipleUpdates": "Extensions ({0} Updates verfügbar)", - "oneIssue": "Extensions (1 Problem)", - "oneUpdate": "Extensions (1 Update verfügbar)" + "active": "Aktiv", + "disabled": "Deaktiviert", + "disabledWorkspace": "Deaktiviert (Arbeitsbereich)" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/deu/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 61754d788f8..633a4ee3935 100644 --- a/i18n/deu/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Zur Seite öffnen", "pasteFile": "Einfügen", "permDelete": "Endgültig löschen", + "pickHistory": "Editor-Verlaufseintrag für den Vergleich auswählen", "refresh": "Aktualisieren", "refreshExplorer": "Explorer aktualisieren", "rename": "Umbenennen", diff --git a/i18n/deu/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/deu/src/vs/workbench/parts/git/browser/gitActions.i18n.json index ade28505043..ed5b99b85d2 100644 --- a/i18n/deu/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Fehler bei der Authentifizierung für den Git-Remotespeicherort.", + "cancel": "Abbrechen", "cleanChangesLabel": "&&Änderungen bereinigen", "commit": "Commit", "commitAll": "Commit für alle ausführen", @@ -22,16 +23,21 @@ "confirmUndoMessage": "Möchten Sie alle Änderungen bereinigen?", "dirtyTreeCheckout": "Auschecken nicht möglich. Sie müssen Ihre Arbeit zunächst bestätigen oder bereitstellen.", "dirtyTreePull": "Pull nicht möglich. Sie müssen Ihre Arbeit zunächst bestätigen oder bereitstellen.", + "do you want to continue": "Möchten Sie fortfahren?", "init": "Init", "irreversible": "Diese Aktion kann nicht rückgängig gemacht werden.", + "never again": "OK, nicht mehr anzeigen", + "ok": "OK", "openChange": "Änderung öffnen", "openFile": "Datei öffnen", "publish": "Veröffentlichen", "publishPickMessage": "Remotespeicherort auswählen, an dem der Branch \"{0}\" veröffentlicht wird:", + "pushToRemote": "Push zu...", + "pushToRemotePickMessage": "Remoteauswahl zum Pushen des Branches \"{0}\":", "refresh": "Aktualisieren", "stageAllChanges": "Alle bereitstellen", "stageChanges": "Phase", - "sureSync": "Möchten Sie Ihr Git-Repository synchronisieren?", + "sync is unpredictable": "Mit dieser Aktion werden Commits per Push und Pull an und von \"{0}\" übertragen.", "undoAllChanges": "Alle bereinigen", "undoChanges": "Bereinigen", "undoLastCommit": "Letzten Commit rückgängig machen", diff --git a/i18n/deu/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/deu/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..e17b9389cf1 --- /dev/null +++ b/i18n/deu/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Kopieren" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 07eaf36be9f..ab0bf98629f 100644 --- a/i18n/deu/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Konfigurieren Sie Globmuster zum Ausschließen von Dateien und Ordnern in Suchvorgängen. Alle Globmuster werden von der files.exclude-Einstellung geerbt.", "exclude.boolean": "Das Globmuster, mit dem Dateipfade verglichen werden sollen. Legen Sie diesen Wert auf \"true\" oder \"false\" fest, um das Muster zu aktivieren bzw. zu deaktivieren.", "exclude.when": "Zusätzliche Überprüfung der gleichgeordneten Elemente einer übereinstimmenden Datei. Verwenden Sie \"$(basename)\" als Variable für den übereinstimmenden Dateinamen.", + "findInFiles": "In Dateien suchen", "findInFolder": "In Ordner suchen", "name": "Suchen", "openAnythingHandlerDescription": "Zu Datei wechseln", "openSymbolDescriptionNormal": "Zu Symbol im Arbeitsbereich wechseln", "search.quickOpen.includeSymbols": "Konfigurieren Sie diese Option, um Ergebnisse aus einer globalen Symbolsuche in die Dateiergebnisse für Quick Open einzuschließen.", "searchConfigurationTitle": "Suchen", + "showSearchViewlet": "Suche anzeigen", "showTriggerActions": "Zu Symbol im Arbeitsbereich wechseln...", "view": "Anzeigen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/deu/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 82444ba4e1b..92d7a2aa973 100644 --- a/i18n/deu/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "Entfernen", "file.replaceAll.label": "Alle ersetzen", "findInFolder": "In Ordner suchen", - "focusNextInputbox": "Fokus im nächsten Eingabefeld", - "focusPreviousInputbox": "Fokus im vorherigen Eingabefeld", + "focusNextInputBox": "Fokus im nächsten Eingabefeld", + "focusPreviousInputBox": "Fokus im vorherigen Eingabefeld", "match.replace.label": "Ersetzen", "nextSearchTerm": "Nächsten Suchbegriff anzeigen", "previousSearchTerm": "Vorherigen Suchbegriff anzeigen", - "replaceInFiles": "In Dateien ersetzen", - "showSearchViewlet": "Suche anzeigen" + "replaceInFiles": "In Dateien ersetzen" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 4a034fc1b90..937c64a154e 100644 --- a/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "Der gestartete Prozess ist nicht mehr vorhanden. Wenn der Task Hintergrundtasks erzeugt hat, kann das Beenden von VS Code ggf. zu verwaisten Prozessen führen.", "TestAction.label": "Testtask ausführen", "manyMarkers": "mehr als 99", + "problems": "Probleme", "taskCommands": "Task ausführen", "tasks": "Tasks", "tasksCategory": "Aufgaben" diff --git a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 8613a833589..7c61dc84b31 100644 --- a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Der Pfad der Shell, den das Terminal unter Windows verwendet. Wenn Shells aus dem Lieferumfang von Windows (cmd, PowerShell oder Bash für Ubuntu) verwendet werden, sollten Sie \"C:Windowssysnative\" dem Pfad \"C:WindowsSystem32\" vorziehen, um die 64-Bit-Versionen zu verwenden.", "terminal.integrated.shellArgs.linux": "Die Befehlszeilenargumente, die für das Linux-Terminal verwendet werden sollen.", "terminal.integrated.shellArgs.osx": "Die Befehlszeilenargumente, die für das OS X-Terminal verwendet werden sollen.", + "terminal.integrated.shellArgs.windows": "Die Befehlszeilenargumente, die im Windows-Terminal verwendet werden sollen.", "terminalCategory": "Terminal", "terminalIntegratedConfigurationTitle": "Integriertes Terminal", "viewCategory": "Anzeigen" diff --git a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 7d11d81c730..a6855568bef 100644 --- a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Ausgewählten Text im aktiven Terminal ausführen", "workbench.action.terminal.scrollDown": "Nach unten scrollen (Zeile)", "workbench.action.terminal.scrollDownPage": "Nach unten scrollen (Seite)", + "workbench.action.terminal.scrollToBottom": "Bildlauf nach unten", + "workbench.action.terminal.scrollToTop": "Bildlauf nach oben", "workbench.action.terminal.scrollUp": "Nach oben scrollen (Zeile)", "workbench.action.terminal.scrollUpPage": "Nach oben scrollen (Seite)", "workbench.action.terminal.switchTerminalInstance": "Terminalinstanz umschalten", diff --git a/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index f464d7f01b9..4477f299f4c 100644 --- a/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Schließen", - "insiderBuilds": "Insider-Builds werden zu täglichen Builds!", + "insiderBuilds": "Tägliche Insider-Builds und Releases!", "license": "Lizenz lesen", "licenseChanged": "Unsere Lizenzbedingungen haben sich geändert. Bitte lesen Sie sie.", "neverShowAgain": "Nicht mehr anzeigen", diff --git a/i18n/deu/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/deu/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..3ba51e44358 --- /dev/null +++ b/i18n/deu/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Cursor oberhalb/unterhalb hinzufügen", + "watermark.moveLines": "Linien nach oben/unten verschieben", + "watermark.quickOpen": "Zu Datei wechseln", + "watermark.showCommands": "Befehlspalette", + "watermark.toggleTerminal": "Terminal umschalten", + "watermark.unboundCommand": "Ungebunden" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..ce717c0e772 --- /dev/null +++ b/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "Der Erweiterungshost wurde unerwartet beendet. Bitte laden Sie das Fenster erneut, um ihn wiederherzustellen.", + "extensionHostProcess.error": "Fehler vom Erweiterungshost: {0}", + "extensionHostProcess.startupFail": "Der Erweiterungshost wurde nicht innerhalb von 10 Sekunden gestartet. Dies stellt ggf. ein Problem dar.", + "extensionHostProcess.startupFailDebug": "Der Erweiterungshost wurde nicht innerhalb von 10 Sekunden gestartet. Möglicherweise wurde er in der ersten Zeile beendet und benötigt einen Debugger, um die Ausführung fortzusetzen.", + "extensionUnderDevelopment": "Die Entwicklungserweiterung unter {0} wird geladen.", + "overwritingExtension": "Die Erweiterung \"{0}\" wird mit \"{1}\" überschrieben." +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/deu/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index c2d67ccb62a..0ff2c738412 100644 --- a/i18n/deu/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/deu/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": ".NET Framework 4.5 herunterladen", "netVersionError": "Microsoft .NET Framework 4.5 ist erforderlich. Klicken Sie auf den Link, um die Anwendung zu installieren.", + "neverShowAgain": "Nicht mehr anzeigen", "trashFailed": "Fehler beim Verschieben von \"{0}\" in den Papierkorb." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/deu/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..617ca4237ae --- /dev/null +++ b/i18n/deu/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "Fehler beim Speichern von \"{0}\": {1}.", + "saveFileFirst": "Die Datei wurde geändert. Speichern Sie sie zuerst, bevor Sie sie mit einer anderen Codierung erneut öffnen." +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/deu/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..bed410ef08f --- /dev/null +++ b/i18n/deu/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Alle Dateien", + "cancel": "Abbrechen", + "dontSave": "&&Nicht speichern", + "moreFile": "...1 weitere Datei wird nicht angezeigt", + "moreFiles": "...{0} weitere Dateien werden nicht angezeigt", + "noExt": "Keine Erweiterung", + "save": "&&Speichern", + "saveAll": "&&Alle speichern", + "saveChangesDetail": "Ihre Änderungen gehen verloren, wenn Sie diese nicht speichern.", + "saveChangesMessage": "Möchten Sie die Änderungen speichern, die Sie an \"{0}\" vorgenommen haben?", + "saveChangesMessages": "Möchten Sie die an den folgenden {0}-Dateien vorgenommenen Änderungen speichern?" +} \ No newline at end of file diff --git a/i18n/esn/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/esn/extensions/typescript/out/typescriptServiceClient.i18n.json index d5353d8d187..f9e5aa0ea25 100644 --- a/i18n/esn/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/esn/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -11,7 +11,7 @@ "moreInformation": "Más información", "neverCheckLocalVesion": "No comprobar nunca la versión del área de trabajo", "noServerFound": "La ruta de acceso {0} no apunta a una instalación válida de tsserver. Las características del lenguaje TypeScript se deshabilitan.", - "serverCouldNotBeStarted": "El servidor del lenguaje TypeScript no se pudo iniciar. El mensaje de error es: {0}", + "serverCouldNotBeStarted": "El servidor de lenguaje TypeScript no se pudo iniciar. El mensaje de error es: {0}", "serverDied": "El servicio de lenguaje Typescript finalizó de forma inesperada cinco veces en los últimos cinco minutos. Considere la posibilidad de abrir un informe de errores.", "serverDiedAfterStart": "El servicio de lenguaje TypeScript finalizó de forma inesperada cinco veces después de haberse iniciado y no se reiniciará. Abra un informe de errores.", "updateGlobalWorkspaceCheck": "La configuración del usuario de \"typescript.check.workspaceVersion\" se actualizó a false.", @@ -20,6 +20,6 @@ "updatedtsdk": "La configuración del área de trabajo de \"typescript.tsdk\" se actualizó a {0}.", "use": "Usar área de trabajo ({0})", "useBundled": "Usar empaquetado ({0})", - "versionMismatch": "Se ha detectado una incoherencia de versión entre el compilador TSC instalado globalmente ({0}) y el servicio de lenguaje de VS Code ({1}). Esto puede dar lugar a errores de compilación incoherente.", + "versionMismatch": "Las versiones no coinciden; global tsc ({0}) != servicio de lenguaje de VS Code ({1}). Pueden producirse errores de compilación incoherente.", "versionNumber.custom": "personalizada" } \ No newline at end of file diff --git a/i18n/esn/extensions/typescript/package.i18n.json b/i18n/esn/extensions/typescript/package.i18n.json index 1bd8d523bff..40f142f3e7e 100644 --- a/i18n/esn/extensions/typescript/package.i18n.json +++ b/i18n/esn/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Define el tratamiento del espacio después de un delimitador de coma", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Define el tratamiento del espacio después de la palabra clave function para las funciones anónimas", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Define el tratamiento del espacio después de las palabras clave en una instrucción de flujo de control", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Define el tratamiento del espacio después de la llave de apertura y antes de la llave de cierre de expresiones JSX. Requiere TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Define el tratamiento del espacio después de los corchetes de apertura y antes de los corchetes de cierre con contenido", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Define el tratamiento del espacio después de los paréntesis de apertura y antes de los paréntesis de cierre con contenido", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Define el tratamiento del espacio después de la llave de apertura y antes de la llave de cierre de cadenas de plantilla. Requiere TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": " Define el tratamiento del espacio después de punto y coma en una instrucción for", "format.insertSpaceBeforeAndAfterBinaryOperators": "Define el tratamiento del espacio después de un operador binario", "format.placeOpenBraceOnNewLineForControlBlocks": "Define si una llave de apertura se incluye en una nueva línea para los bloques de control o no", @@ -18,6 +20,7 @@ "javascript.validate.enable": "Habilitar o deshabilitar la validación de JavaScript", "typescript.check.tscVersion": "Compruebe si un compilador de TypeScript de instalación global (p. ej., tsc) difiere del servicio de lenguaje de TypeScript usado.", "typescript.check.workspaceVersion": "Compruebe si hay una versión de TypeScript disponible en el área de trabajo.", + "typescript.experimentalAutomaticTypeAcquisition": "Habilita la adquisición de tipos automática. Requiere TypeScript >= 2.0.6 y reiniciar después del cambio.", "typescript.reloadProjects.title": "Recargar proyecto de TypeScript", "typescript.tsdk.desc": "Especifica la ruta de acceso de carpeta que contiene los archivos lib*.d.ts y tsserver que se van a usar.", "typescript.tsdk_version.desc": "Especifica la versión de tsserver. Solo es necesario si tsserver no se ha instalado con npm.", diff --git a/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json index f24df86e223..bf1caf0dce2 100644 --- a/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Controla el tamaño de fuente en píxeles.", "fontWeight": "Controla el grosor de la fuente.", "formatOnType": "Controla si el editor debe dar formato automáticamente a la línea después de escribirla", + "glyphMargin": "Controla si el editor debe representar el margen de glifo vertical. El margen de glifo se usa, principalmente, para depuración.", "hideCursorInOverviewRuler": "Controla si el cursor debe ocultarse en la regla de visión general.", "ignoreTrimWhitespace": "Controla si el editor de diferencias muestra los cambios de espacio inicial o espacio final como diferencias.", "insertSpaces": "Insertar espacios al presionar TAB. Este valor se invalida en función del contenido del archivo cuando `editor.detectIndentation` está activado.", @@ -40,7 +41,9 @@ "selectionHighlight": "Controla si el editor debería destacar coincidencias similares a la selección", "sideBySide": "Controla si el editor de diferencias muestra las diferencias en paralelo o alineadas.", "snippetSuggestions": "Controla si se muestran los fragmentos de código con otras sugerencias y cómo se ordenan.", - "stablePeek": "Mantiene abiertos los editores de inspección incluso al hacer doble clic en su contenido o presionar Escape.", + "stablePeek": "Mantiene abierto el editor interactivo incluso al hacer doble clic en su contenido o presionar Escape.", + "suggestFontSize": "Tamaño de fuente para el widget de sugerencias", + "suggestLineHeight": "Alto de línea para el widget de sugerencias", "suggestOnTriggerCharacters": "Controla si las sugerencias deben aparecer de forma automática al escribir caracteres desencadenadores", "tabCompletion": "Inserta fragmentos de código cuando el prefijo coincide. Funciona mejor si la opción 'quickSuggestions' no está habilitada.", "tabSize": "El número de espacios a los que equivale una tabulación. Este valor se invalida según el contenido del archivo cuando `editor.detectIndentation` está activado.", diff --git a/i18n/esn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/esn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 0f2e0c7ec5b..9b39190b2fa 100644 --- a/i18n/esn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/esn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Abrir definición en el lateral", "actions.previewDecl.label": "Ver la definición", "meta.title": " – {0} definiciones", - "multipleResults": "Haga clic para mostrar las {0} definiciones encontradas." + "multipleResults": "Haga clic para mostrar {0} definiciones." } \ No newline at end of file diff --git a/i18n/esn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/esn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 6cb9f634603..e9345c53e71 100644 --- a/i18n/esn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/esn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Mostrar correcciones", + "quickFixWithKb": "Mostrar correcciones ({0})", "quickfix.trigger.label": "Corrección rápida" } \ No newline at end of file diff --git a/i18n/esn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/esn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 384ee0410cf..87286a5e3cd 100644 --- a/i18n/esn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/esn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "El elemento de menú hace referencia al mismo comando que el comando predeterminado y el comando alternativo", "menuId.invalid": "`{0}` no es un identificador de menú válido", "menus.editorContext": "El menú conextual del editor", + "menus.editorTabContext": "Menú contextual de pestañas del editor", "menus.editorTitle": "El menú de título del editor", "menus.explorerContext": "El menú contextual del explorador de archivos", "missing.altCommand": "El elemento de menú hace referencia a un comando alternativo `{0}` que no está definido en la sección 'commands'.", diff --git a/i18n/esn/src/vs/platform/environment/node/argv.i18n.json b/i18n/esn/src/vs/platform/environment/node/argv.i18n.json index 17e98fb5874..47ff3b66a98 100644 --- a/i18n/esn/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/esn/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Abra un editor de diferencias. Necesita pasar dos rutas de acceso a archivos como argumentos.", "disableExtensions": "Deshabilite todas las extensiones instaladas.", + "disableGPU": "Deshabilita la aceleración de hardware de GPU.", "extensionHomePath": "Establezca la ruta de acceso raíz para las extensiones.", "goto": "Abra el archivo en la ruta de acceso en la línea y columna (agregue :line[:column] a la ruta de acceso).", "gotoValidation": "Los argumentos del modo `--goto` deben tener el formato \"ARCHIVO(:LÍNEA(:COLUMNA))\".", @@ -19,6 +20,7 @@ "paths": "rutas de acceso", "performance": "Comience con el comando 'Developer: Startup Performance' habilitado.", "reuseWindow": "Fuerce la apertura de un archivo o carpeta en la última ventana activa.", + "showVersions": "Muestra las versiones de las extensiones instaladas, cuando se usa --list-extension.", "uninstallExtension": "Desinstala una extensión.", "usage": "Uso", "userDataDir": "Especifica el directorio en que se conservan los datos de usuario; es útil cuando se ejecuta como raíz.", diff --git a/i18n/esn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/esn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 3b58d5ff923..a8ab0dc3ecc 100644 --- a/i18n/esn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/esn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "la propiedad `{0}` es obligatoria y debe ser de tipo \"string\"", "extensionDescription.version": "la propiedad `{0}` es obligatoria y debe ser de tipo \"string\"", "vscode.extension.activationEvents": "Eventos de activación de la extensión VS Code.", + "vscode.extension.badges": "Matriz de distintivos que se muestran en la barra lateral de la página de extensiones de Marketplace.", + "vscode.extension.badges.description": "Descripción del distintivo.", + "vscode.extension.badges.href": "Vínculo del distintivo.", + "vscode.extension.badges.url": "URL de la imagen del distintivo.", "vscode.extension.categories": "Categorías que usa la galería de VS Code para clasificar la extensión.", "vscode.extension.contributes": "Todas las contribuciones de la extensión VS Code representadas por este paquete.", "vscode.extension.displayName": "Nombre para mostrar de la extensión que se usa en la galería de VS Code.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Banner usado en VS Code Marketplace.", "vscode.extension.galleryBanner.color": "Color del banner en el encabezado de página de VS Code Marketplace.", "vscode.extension.galleryBanner.theme": "Tema de color de la fuente que se usa en el banner.", + "vscode.extension.icon": "Ruta de acceso a un icono de 128 x 128 píxeles.", + "vscode.extension.preview": "Establece la extensión que debe marcarse como versión preliminar en Marketplace.", "vscode.extension.publisher": "El publicador de la extensión VS Code.", "vscode.extension.scripts.prepublish": "Script que se ejecuta antes de publicar el paquete como extensión VS Code." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/esn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 7a659c3733c..9caf1c7c012 100644 --- a/i18n/esn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/esn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Alternar posición de la barra lateral", + "toggleLocation": "Alternar la ubicación de la barra lateral", "view": "Ver" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/esn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 88bc4a797ec..4dbb5eefe2d 100644 --- a/i18n/esn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/esn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Cerrar", "focusPanel": "Centrarse en el panel", + "toggleMaximizedPanel": "Alternar el panel maximizado", "togglePanel": "Alternar panel", "view": "Ver" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/esn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 9c89dca6470..7b26e5ce6b8 100644 --- a/i18n/esn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/esn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Presione \"Entrar\" para confirmar su entrada o \"Esc\" para cancelar", "inputModeEntryDescription": "{0} (Presione \"Entrar\" para confirmar o \"Esc\" para cancelar)", "noResultsFound1": "No se encontraron resultados", - "quickOpenInput": "Escriba '?' para obtener ayuda con las acciones que puede realizar desde aquí" + "pickHistory": "Seleccione una entrada del editor para quitarla del historial", + "quickOpenInput": "Escriba '?' para obtener ayuda con las acciones que puede realizar desde aquí", + "removeFromEditorHistory": "Quitar del historial de editores" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json index 8cf7acd019e..6b4c43d07db 100644 --- a/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Cerrar carpeta", "closeMessages": "Cerrar mensajes de notificación", "closeWindow": "Cerrar ventana", + "current": "Ventana actual", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "archivos", "folders": "carpetas", diff --git a/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json index 37f52c31cd8..b70227e8ab2 100644 --- a/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "Controla si una ventana se debe restaurar al modo de pantalla completa si se salió de ella en dicho modo.", "showEditorTabs": "Controla si los editores abiertos se deben mostrar o no en pestañas.", "showIcons": "Controla si los editores abiertos deben mostrarse o no con un icono. Requiere que también se habilite un tema de icono.", + "sideBarLocation": "Controla la ubicación de la barra lateral. Puede mostrarse a la izquierda o a la derecha del área de trabajo.", + "statusBarVisibility": "Controla la visibilidad de la barra de estado en la parte inferior del área de trabajo.", "updateChannel": "Configure si recibirá actualizaciones automáticas de un canal de actualización. Es necesario reiniciar tras el cambio.", "updateConfigurationTitle": "Actualización", "view": "Ver", diff --git a/i18n/esn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index cf81550d60b..7434f0fa825 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Escriba la condición del punto de interrupción para la línea {0}. El programa solo se detendrá aquí si esta condición es true. Presione ENTRAR para aceptar o Esc para cancelar.", - "breakpointWidgetPlaceholder": "El punto de interrupción de la línea {0} solo se detendrá si esta condición es true. Presione \"ENTRAR\" para aceptar o \"Esc\" para cancelar." + "breakpointWidgetAriaLabel": "El programa solo se detendrá aquí si esta condición es true. Presione ENTRAR para aceptar o Esc para cancelar.", + "breakpointWidgetExpressionPlaceholder": "Interrumpir cuando la expresión se evalúe como true", + "breakpointWidgetHitCountAriaLabel": "El programa solo se detendrá aquí si se alcanza el número de llamadas. Presione ENTRAR para aceptar o Esc para cancelar.", + "breakpointWidgetHitCountPlaceholder": "Interrumpir cuando se alcance el número de llamadas", + "expression": "Expresión", + "hitCount": "Número de llamadas" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index da08287c602..3de6b1ab2c9 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Activar puntos de interrupción", - "addConditionalBreakpoint": "Agregar punto de interrupción condicional", + "addConditionalBreakpoint": "Agregar punto de interrupción condicional...", "addFunctionBreakpoint": "Agregar punto de interrupción de función", "addToWatchExpressions": "Agregar a inspección", "addWatchExpression": "Agregar expresión", "clearRepl": "Borrar consola", - "conditionalBreakpointEditorAction": "Depuración: Punto de interrupción condicional", + "conditionalBreakpointEditorAction": "Depuración: agregar punto de interrupción condicional...", "continueDebug": "Continuar", "deactivateBreakpoints": "Desactivar puntos de interrupción", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "Enfocar consola de depuración", "disableAllBreakpoints": "Deshabilitar todos los puntos de interrupción", "disconnectDebug": "Desconectar", - "editConditionalBreakpoint": "Editar punto de interrupción", + "editConditionalBreakpoint": "Editar punto de interrupción...", "enableAllBreakpoints": "Habilitar todos los puntos de interrupción", "launchJsonNeedsConfigurtion": "Configurar o reparar 'launch.json'", "openLaunchJson": "Abrir {0}", diff --git a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 7bb238d8257..8416e40b8e2 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Permite establecer puntos de interrupción para todos los archivos, independientemente de la extensión.", "debug": "Depurar", "debugCategory": "Depurar", + "debugConfigurationTitle": "Depurar", "debugErrorEditor": "Depurar error", "debugPanel": "Consola de depuración", "launchConfigDoesNotExist": "La configuración de inicio '{0}' no existe.", + "openExplorerOnEnd": "Abrir automáticamente el viewlet del explorador al final de la sesión de depuración.", "toggleDebugPanel": "Consola de depuración", "toggleDebugViewlet": "Mostrar depuración", "view": "Ver" diff --git a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 87895d961cd..fbdefd1b1c9 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "REPL - Aceptar entrada", "actions.repl.historyNext": "Historial siguiente", "actions.repl.historyPrevious": "Historial anterior", - "replAriaLabel": "Panel del bucle de lectura-evaluación-impresión" + "replAriaLabel": "Panel de read–eval–print loop" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index c3af73dd255..d42fc7ac971 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "Clic para seguir (Ctrl + clic se abre en el lateral)", "fileLinkMac": "Clic para seguir (Cmd + clic se abre en el lateral)", - "replExpressionAriaLabel": "La expresión {0} tiene el valor {1}, bucle de lectura-evaluación-impresión, depuración", - "replKeyValueOutputAriaLabel": "La variable de salida {0} tiene el valor {1}, bucle de lectura-evaluación-impresión, depuración", - "replValueOutputAriaLabel": "{0}, bucle de lectura-evaluación-impresión, depuración", - "replVariableAriaLabel": "La variable {0} tiene el valor {1}, bucle de lectura-evaluación-impresión, depuración", + "replExpressionAriaLabel": "La expresión {0} tiene el valor {1}, read–eval–print loop, depuración", + "replKeyValueOutputAriaLabel": "La variable de salida {0} tiene el valor {1}, read–eval–print loop, depuración", + "replValueOutputAriaLabel": "{0}, read–eval–print loop, depuración", + "replVariableAriaLabel": "La variable {0} tiene el valor {1}, read–eval–print loop, depuración", "stateCapture": "El estado del objeto se captura desde la primera evaluación" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 70c9d603e0c..36c4b0835a9 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "No se puede crear el archivo \"launch.json\" dentro de la carpeta \".vscode\" ({0}).", - "app.launch.json.configurations": "Lista de configuraciones. Agregue configuraciones nuevas o edite las ya existentes.", + "app.launch.json.configurations": "Lista de configuraciones. Agregue configuraciones nuevas o edite las ya existentes con IntelliSense.", "app.launch.json.title": "Iniciar", "app.launch.json.version": "Versión de este formato de archivo.", "debugNoType": "El valor \"type\" del adaptador de depuración no se puede omitir y debe ser de tipo \"string\".", "duplicateDebuggerType": "El tipo de depuración '{0}' ya está registrado y tiene el atributo '{1}', se ignora el atributo '{1}'.", - "interactiveVariableNotFound": "El adaptador {0} no contribuye a la variable {1} que se especifica en la configuración de inicio.", "selectDebug": "Seleccionar entorno", "vscode.extension.contributes.breakpoints": "Aporta puntos de interrupción.", "vscode.extension.contributes.breakpoints.language": "Permite puntos de interrupción para este lenguaje.", diff --git a/i18n/esn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json index efe3819a6bd..4ecc3417df6 100644 --- a/i18n/esn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json @@ -5,8 +5,8 @@ // Do not edit this file. It is machine generated. { "emmetConfigurationTitle": "Emmet", - "emmetExclude": "Matriz de lenguajes donde no deben expandirse las abreviaciones Emmet.", + "emmetExclude": "Matriz de lenguajes donde no deben expandirse la abreviación Emmet.", "emmetPreferences": "Preferencias usadas para modificar el comportamiento de algunas acciones y resoluciones de Emmet.", "emmetSyntaxProfiles": "Defina el perfil de la sintaxis especificada o use su propio perfil con reglas específicas.", - "triggerExpansionOnTab": "Cuando se habilita, se expanden la abreviaturas de Emmet al presionar la tecla TAB." + "triggerExpansionOnTab": "Cuando se habilita, se expande la abreviación Emmet al presionar la tecla TAB." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json b/i18n/esn/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json index 85c054fd717..8c2e59c16b2 100644 --- a/i18n/esn/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "console.title": "Consola de VS Code", - "linux.term.failed": "Error de \"{0}\" con el código de salida {1}", + "linux.term.failed": "Error de '{0}' con el código de salida {1}", "mac.terminal.script.failed": "No se pudo ejecutar el script '{0}'. Código de salida: {1}.", "mac.terminal.type.not.supported": "No se admite '{0}'", "press.any.key": "Presione cualquier tecla para continuar..." diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..57ce852dcf4 --- /dev/null +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Abrir", + "extensions.openSide": "Abrir en el lateral" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 504def5b9c8..f150dd988f0 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Nombre", "debuggers": "Depuradores ({0})", "default": "Predeterminado", + "dependencies": "Dependencias", "description": "Descripción", "details": "Detalles", + "extension id": "Identificador de la extensión", "file extensions": "Extensiones de archivo", "grammar": "Gramática", + "install count": "Número de instalaciones", "keyboard shortcuts": "&&Métodos abreviados de teclado", "language id": "Id.", "language name": "Nombre", "languages": "Lenguajes ({0})", "license": "Licencia", "menuContexts": "Contextos de menú", + "name": "Nombre de la extensión", "noChangelog": "No hay ningún registro CHANGELOG disponible.", "noReadme": "No hay ningún archivo LÉAME disponible.", + "publisher": "Nombre del editor", + "rating": "Clasificación", "setting name": "Nombre", "settings": "Configuración ({0})", "snippets": "Fragmentos", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 3319a0aeef1..082ce84f933 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Configurar extensiones deshabilitadas", + "disableWorkspaceExtensions": "Configurar extensiones deshabilitadas (área de trabajo)", "extension": "Extensión", "extensions": "Extensiones", "extensionsAutoUpdate": "Actualizar extensiones automáticamente", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 7e933186212..08e1cf53aab 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Las recomendaciones solo están disponibles en una carpeta de área de trabajo.", "OpenExtensionsFile.failed": "No se puede crear el archivo \"extensions.json\" dentro de la carpeta \".vscode\" ({0}).", + "OpenGlobalExtensionsStorageFile.failed": "No se puede crear el archivo \"extensions.json\" en la carpeta '{0}' ({1}).", "builtin": "Integrada", "clearExtensionsInput": "Borrar entrada de extensiones", - "configureWorkspaceRecommendedExtensions": "Configurar extensiones recomendadas del área de trabajo", + "configureWorkspaceRecommendedExtensions": "Configurar extensiones recomendadas (área de trabajo)", "deleteSure": "¿Seguro que quiere desinstalar '{0}'?", "enableAction": "Habilitar", "installAction": "Instalar", @@ -19,6 +20,7 @@ "postUninstallMessage": "{0} se desinstaló correctamente. Reinicie para desactivarlo.", "restart": "Para habilitar esta extensión, esta ventana de VS Code se debe reiniciar.\n\n¿Desea continuar?", "restartNow": "Reiniciar ahora", + "showDisabledExtensions": "Mostrar extensiones deshabilitadas", "showInstalledExtensions": "Mostrar extensiones instaladas", "showOutdatedExtensions": "Mostrar extensiones obsoletas", "showPopularExtensions": "Mostrar extensiones conocidas", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index af09009b5fb..cda8bd0a90f 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Se esperaba el formato '${publisher}.${name}'. Ejemplo: 'vscode.csharp'.", "app.extensions.json.recommendations": "Lista de recomendaciones de extensiones. El identificador de una extensión es siempre '${publisher}.${name}'. Por ejemplo: 'vscode.csharp'.", - "app.extensions.json.title": "Extensiones" + "app.extensions.json.title": "Extensiones", + "app.extensionsstorage.json.disabled": "Lista de extensiones deshabilitadas. El identificador de una extensión es siempre '${publisher}.${name}'. Por ejemplo: 'vscode.csharp'.", + "app.extensionsstorage.json.title": "Almacén de extensiones" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 1304c3aa9b9..ee7fedb8899 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Criterio de ordenación: ↑", "descending": "Criterio de ordenación: ↓", "extensions": "Extensiones", + "no extensions found": "No se encontraron extensiones.", "outdatedExtensions": "{0} extensiones obsoletas", "searchExtensions": "Buscar extensiones en Marketplace", "sort by installs": "Criterio de ordenación: Número de instalaciones", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index ddca2eb32cb..9599f1f53bb 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Extensiones", - "extensionsInstalling": "Extensiones ({0} instalando...)", - "multipleIssues": "Extensiones ({0} problemas)", - "multipleUpdates": "Extensiones ({0} actualizaciones disponibles)", - "oneIssue": "Extensiones (1 problema)", - "oneUpdate": "Extensiones (1 actualización disponible)" + "active": "Activo", + "disabled": "Deshabilitado", + "disabledWorkspace": "Deshabilitado (área de trabajo)" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/esn/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 7342efe547a..b6e78f92aad 100644 --- a/i18n/esn/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Abrir en el lateral", "pasteFile": "Pegar", "permDelete": "Eliminar permanentemente", + "pickHistory": "Seleccione una entrada del historial del editor para comparar", "refresh": "Actualizar", "refreshExplorer": "Actualizar Explorador", "rename": "Cambiar nombre", diff --git a/i18n/esn/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/esn/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 3fb6215ed28..7847fed2663 100644 --- a/i18n/esn/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Error de autenticación en GIT remoto.", + "cancel": "Cancelar", "cleanChangesLabel": "&&Limpiar cambios", "commit": "Commit", "commitAll": "Confirmar todo", @@ -22,16 +23,21 @@ "confirmUndoMessage": "¿Seguro que quiere limpiar todos los cambios?", "dirtyTreeCheckout": "No se puede finalizar. Primero confirme la tarea o haga una copia intermedia de ella.", "dirtyTreePull": "No se puede extraer. Primero confirme la tarea o haga una copia intermedia de ella.", + "do you want to continue": "¿Está seguro de que quiere continuar?", "init": "Iniciar", "irreversible": "Esta acción es irreversible.", + "never again": "De acuerdo, no volver a mostrar este mensaje", + "ok": "Aceptar", "openChange": "Abrir cambio", "openFile": "Abrir archivo", "publish": "Publicar", "publishPickMessage": "Seleccionar un elemento remoto para publicar la rama '{0}':", + "pushToRemote": "Insertar en...", + "pushToRemotePickMessage": "Elija un origen remoto donde insertar la rama '{0}':", "refresh": "Actualizar", "stageAllChanges": "Almacenar todo provisionalmente", "stageChanges": "Almacenar provisionalmente", - "sureSync": "¿Está seguro de que quiere sincronizar el repositorio GIT?", + "sync is unpredictable": "Esta acción insertará y extraerá confirmaciones en '{0}'.", "undoAllChanges": "Limpiar todo", "undoChanges": "Limpiar", "undoLastCommit": "Deshacer última confirmación", diff --git a/i18n/esn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/esn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..027c80cca30 --- /dev/null +++ b/i18n/esn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Copiar" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 822a4b4e17d..63b0f61e641 100644 --- a/i18n/esn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Configure patrones globales para excluir archivos y carpetas de las búsquedas. Hereda todos los patrones globales de la configuración files.exclude.", "exclude.boolean": "El patrón global con el que se harán coincidir las rutas de acceso de los archivos. Establézcalo en true o false para habilitarlo o deshabilitarlo.", "exclude.when": "Comprobación adicional de los elementos del mismo nivel de un archivo coincidente. Use $(nombreBase) como variable para el nombre de archivo que coincide.", + "findInFiles": "Buscar en archivos", "findInFolder": "Buscar en carpeta", "name": "Búsqueda", "openAnythingHandlerDescription": "Ir al archivo", "openSymbolDescriptionNormal": "Ir al símbolo en el área de trabajo", "search.quickOpen.includeSymbols": "Configurar para incluir los resultados de una búsqueda global de símbolos en los resultados de archivos de Quick Open.", "searchConfigurationTitle": "Buscar", + "showSearchViewlet": "Mostrar búsqueda", "showTriggerActions": "Ir al símbolo en el área de trabajo...", "view": "Ver" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 3fb7e268eb2..369cd774f3b 100644 --- a/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "Quitar", "file.replaceAll.label": "Reemplazar todo", "findInFolder": "Buscar en carpeta", - "focusNextInputbox": "Enfocar cuadro de entrada siguiente", - "focusPreviousInputbox": "Enfocar cuadro de entrada anterior", + "focusNextInputBox": "Enfocar cuadro de entrada siguiente", + "focusPreviousInputBox": "Enfocar cuadro de entrada anterior", "match.replace.label": "Reemplazar", "nextSearchTerm": "Mostrar término de búsqueda siguiente", "previousSearchTerm": "Mostrar término de búsqueda anterior", - "replaceInFiles": "Reemplazar en archivos", - "showSearchViewlet": "Mostrar búsqueda" + "replaceInFiles": "Reemplazar en archivos" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 279d06bc75b..c3055f0a937 100644 --- a/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "El proceso iniciado ya no existe. Si la tarea generó procesos en segundo plano al salir de VS Code, puede dar lugar a procesos huérfanos.", "TestAction.label": "Ejecutar tarea de prueba", "manyMarkers": "Más de 99", + "problems": "Problemas", "taskCommands": "Ejecutar tarea", "tasks": "Tareas", "tasksCategory": "Tareas" diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 8b8dc9f8744..05fb579997f 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Ruta de acceso del shell que el terminal utiliza en Windows. Cuando se usan shells incluidos en Windows (cmd, PowerShell o Bash en Ubuntu), se recomienda C:Windowssysnative en lugar de C:WindowsSystem32 para usar las versiones de 64 bits.", "terminal.integrated.shellArgs.linux": "Los argumentos de la línea de comandos que se usarán en el terminal de Linux.", "terminal.integrated.shellArgs.osx": "Los argumentos de la línea de comandos que se usarán en el terminal de OS X.", + "terminal.integrated.shellArgs.windows": "Argumentos de la línea de comandos que se usan cuando se utiliza el terminal Windows.", "terminalCategory": "Terminal", "terminalIntegratedConfigurationTitle": "Terminal integrado", "viewCategory": "Ver" diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index ad86f7e6f49..eb68197dd11 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Ejecutar texto seleccionado en el terminal activo", "workbench.action.terminal.scrollDown": "Desplazar hacia abajo (línea)", "workbench.action.terminal.scrollDownPage": "Desplazar hacia abajo (página)", + "workbench.action.terminal.scrollToBottom": "Desplazar al final", + "workbench.action.terminal.scrollToTop": "Desplazar al principio", "workbench.action.terminal.scrollUp": "Desplazar hacia arriba (línea)", "workbench.action.terminal.scrollUpPage": "Desplazar hacia arriba (página)", "workbench.action.terminal.switchTerminalInstance": "Cambiar instancia del terminal", diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json index d26407b0aa6..8c2e59c16b2 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "console.title": "Consola de VS Code", - "linux.term.failed": "Error de '{0}'. Código de salida: {1}", + "linux.term.failed": "Error de '{0}' con el código de salida {1}", "mac.terminal.script.failed": "No se pudo ejecutar el script '{0}'. Código de salida: {1}.", "mac.terminal.type.not.supported": "No se admite '{0}'", "press.any.key": "Presione cualquier tecla para continuar..." diff --git a/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 10b40180138..fac0fb29c48 100644 --- a/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Cerrar", - "insiderBuilds": "Las compilaciones de Insider se están volviendo compilaciones diarias.", + "insiderBuilds": "Compilaciones y versiones de Insider todos los días", "license": "Leer licencia", "licenseChanged": "Los términos de licencia han cambiado, revíselos.", "neverShowAgain": "No volver a mostrar", diff --git a/i18n/esn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/esn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..2c576e508f6 --- /dev/null +++ b/i18n/esn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Agregar cursores arriba/abajo", + "watermark.moveLines": "Mover líneas arriba/abajo", + "watermark.quickOpen": "Ir al archivo", + "watermark.showCommands": "Paleta de comandos", + "watermark.toggleTerminal": "Alternar terminal", + "watermark.unboundCommand": "sin enlazar" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..2a3b1ebef4c --- /dev/null +++ b/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "El host de extensiones finalizó inesperadamente. Recargue la ventana para recuperarlo.", + "extensionHostProcess.error": "Error del host de extensiones: {0}", + "extensionHostProcess.startupFail": "El host de extensiones no se inició en 10 segundos, lo cual puede ser un problema.", + "extensionHostProcess.startupFailDebug": "El host de extensiones no se inició en 10 segundos, puede que se detenga en la primera línea y necesita un depurador para continuar.", + "extensionUnderDevelopment": "Cargando la extensión de desarrollo en {0}", + "overwritingExtension": "Se va a sobrescribir la extensión {0} con {1}." +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/esn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 78fb679989d..01565372a3a 100644 --- a/i18n/esn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/esn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "Descargar .NET Framework 4.5", "netVersionError": "Requiere Microsoft .NET Framework 4.5. Siga el vínculo para instalarlo.", + "neverShowAgain": "No volver a mostrar", "trashFailed": "No se pudo mover '{0}' a la papelera" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/esn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..4cc0f6646c8 --- /dev/null +++ b/i18n/esn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "No se pudo guardar '{0}': {1}", + "saveFileFirst": "Este es un archivo con modificaciones. Guárdelo antes de volver a abrirlo con otra codificación." +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/esn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..503b213413d --- /dev/null +++ b/i18n/esn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Todos los archivos", + "cancel": "Cancelar", + "dontSave": "&&No guardar", + "moreFile": "...1 archivo más que no se muestra", + "moreFiles": "...{0} archivos más que no se muestran", + "noExt": "Sin extensión", + "save": "&&Guardar", + "saveAll": "&&Guardar todo", + "saveChangesDetail": "Los cambios se perderán si no se guardan.", + "saveChangesMessage": "¿Quiere guardar los cambios efectuados en {0}?", + "saveChangesMessages": "¿Desea guardar los cambios en los siguientes {0} archivos?" +} \ No newline at end of file diff --git a/i18n/fra/extensions/php/package.i18n.json b/i18n/fra/extensions/php/package.i18n.json index 6afa69b9f18..016784d44dd 100644 --- a/i18n/fra/extensions/php/package.i18n.json +++ b/i18n/fra/extensions/php/package.i18n.json @@ -7,5 +7,5 @@ "configuration.title": "PHP", "configuration.validate.enable": "Spécifie si la validation PHP est activée ou non.", "configuration.validate.executablePath": "Pointe vers l'exécutable PHP.", - "configuration.validate.run": "Spécifie si les vérifications lint sont exécutées au moment de l'enregistrement ou de la saisie." + "configuration.validate.run": "Spécifie si linter est exécuté au moment de l'enregistrement ou de la saisie." } \ No newline at end of file diff --git a/i18n/fra/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/fra/extensions/typescript/out/typescriptServiceClient.i18n.json index fca91c30a3a..daf26cea778 100644 --- a/i18n/fra/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/fra/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "Mise à jour du paramètre d'espace de travail 'typescript.tsdk' avec la valeur {0}", "use": "Utiliser l'espace de travail ({0})", "useBundled": "Utiliser l'ensemble d'applications ({0})", - "versionMismatch": "Une incompatibilité de version entre le compilateur tsc installé globalement ({0}) et le service de langage de VS Code ({1}) a été détecté. Cela peut entraîner des erreurs de compilation incohérentes.", + "versionMismatch": "Incompatibilité de version ! global tsc ({0}) != Service de langage de VS Code ({1}). Des erreurs de compilation incohérentes risquent de se produire", "versionNumber.custom": "personnalisé" } \ No newline at end of file diff --git a/i18n/fra/extensions/typescript/package.i18n.json b/i18n/fra/extensions/typescript/package.i18n.json index 1270d285896..1da479dd9ef 100644 --- a/i18n/fra/extensions/typescript/package.i18n.json +++ b/i18n/fra/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Définit le traitement des espaces après une virgule de délimitation", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Définit le traitement des espaces après le mot clé function pour les fonctions anonymes", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Définit le traitement des espaces après des mots clés dans une instruction de flux de contrôle", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Définit la gestion de l'espace après l'ouverture et avant la fermeture des accolades de l'expression JSX. Nécessite TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Définit le traitement des espaces après l'ouverture et avant la fermeture de crochets non vides", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Définit le traitement des espaces après l'ouverture et avant la fermeture de parenthèses non vides", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Définit la gestion de l'espace après l'ouverture et avant la fermeture des accolades de la chaîne de modèle. Nécessite TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": " Définit le traitement des espaces après un point-virgule dans une instruction for", "format.insertSpaceBeforeAndAfterBinaryOperators": "Définit le traitement des espaces après un opérateur binaire", "format.placeOpenBraceOnNewLineForControlBlocks": "Définit si une accolade ouvrante dans un bloc de contrôle est placée ou non sur une nouvelle ligne", @@ -18,6 +20,7 @@ "javascript.validate.enable": "Activer/désactiver la validation JavaScript", "typescript.check.tscVersion": "Vérifiez si un compilateur TypeScript installé globalement (par exemple tsc) est différent du service de langage TypeScript.", "typescript.check.workspaceVersion": "Vérifier si une version de TypeScript est disponible dans l'espace de travail", + "typescript.experimentalAutomaticTypeAcquisition": "Active l'acquisition de type automatique. Nécessite TypeScript >= 2.0.6 et un redémarrage, une fois le changement effectué.", "typescript.reloadProjects.title": "Recharger le projet TypeScript", "typescript.tsdk.desc": "Spécifie le chemin de dossier contenant les fichiers tsserver et lib*.d.ts à utiliser.", "typescript.tsdk_version.desc": "Spécifie la version de tsserver. Uniquement nécessaire si tsserver n'est pas installé via npm.", diff --git a/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json index 8156a94db1d..b44d227a0e5 100644 --- a/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Contrôle la taille de police en pixels.", "fontWeight": "Contrôle l'épaisseur de police.", "formatOnType": "Contrôle si l'éditeur doit automatiquement mettre en forme la ligne après la saisie", + "glyphMargin": "Contrôle si l'éditeur doit afficher la marge de glyphes verticale. La marge de glyphes sert principalement au débogage.", "hideCursorInOverviewRuler": "Contrôle si le curseur doit être masqué dans la règle d'aperçu.", "ignoreTrimWhitespace": "Contrôle si l'éditeur de différences affiche les changements liés aux espaces blancs de début ou de fin comme des différences", "insertSpaces": "Des espaces sont insérés quand vous appuyez sur la touche Tab. Ce paramètre est remplacé en fonction du contenu du fichier quand 'editor.detectIndentation' est activé.", @@ -41,6 +42,8 @@ "sideBySide": "Contrôle si l'éditeur de différences affiche les différences en mode côte à côte ou inline", "snippetSuggestions": "Contrôle si les extraits de code s'affichent en même temps que d'autres suggestions, ainsi que leur mode de tri.", "stablePeek": "Garder les éditeurs d'aperçu ouverts même si l'utilisateur double-clique sur son contenu ou appuie sur la touche Échap.", + "suggestFontSize": "Taille de police du widget de suggestion", + "suggestLineHeight": "Hauteur de ligne du widget de suggestion", "suggestOnTriggerCharacters": "Contrôle si les suggestions doivent s'afficher automatiquement durant la saisie de caractères de déclenchement", "tabCompletion": "Insérez les extraits de code quand leurs préfixes correspondent. Fonctionne mieux quand la fonctionnalité 'quickSuggestions' n'est pas activée.", "tabSize": "Nombre d'espaces correspondant à une tabulation. Ce paramètre est remplacé en fonction du contenu du fichier quand 'editor.detectIndentation' est activé.", diff --git a/i18n/fra/src/vs/editor/contrib/find/browser/findWidget.i18n.json b/i18n/fra/src/vs/editor/contrib/find/browser/findWidget.i18n.json index 544cb2635d2..25bcc8b621f 100644 --- a/i18n/fra/src/vs/editor/contrib/find/browser/findWidget.i18n.json +++ b/i18n/fra/src/vs/editor/contrib/find/browser/findWidget.i18n.json @@ -11,7 +11,7 @@ "label.noResults": "Aucun résultat", "label.previousMatchButton": "Correspondance précédente", "label.replace": "Remplacer", - "label.replaceAllButton": "Remplacer tout", + "label.replaceAllButton": "Tout remplacer", "label.replaceButton": "Remplacer", "label.toggleReplaceButton": "Changer le mode de remplacement", "label.toggleSelectionFind": "Rechercher dans la sélection", diff --git a/i18n/fra/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/fra/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 47260c0c5ff..c8a94192d56 100644 --- a/i18n/fra/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/fra/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Ouvrir la définition sur le côté", "actions.previewDecl.label": "Apercu de définition", "meta.title": " – {0} définitions", - "multipleResults": "Cliquez pour afficher les {0} définitions trouvées." + "multipleResults": "Cliquez pour afficher {0} définitions." } \ No newline at end of file diff --git a/i18n/fra/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/fra/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index ec7eb9d7590..fe2ea38567e 100644 --- a/i18n/fra/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/fra/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Afficher les correctifs", + "quickFixWithKb": "Afficher les correctifs ({0})", "quickfix.trigger.label": "Correctif rapide" } \ No newline at end of file diff --git a/i18n/fra/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/fra/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 89f71fed3f4..fdd6b9b5dde 100644 --- a/i18n/fra/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/fra/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "L'élément de menu fait référence à la même commande que la commande par défaut et la commande alt", "menuId.invalid": "'{0}' est un identificateur de menu non valide", "menus.editorContext": "Menu contextuel de l'éditeur", + "menus.editorTabContext": "Menu contextuel des onglets de l'éditeur", "menus.editorTitle": "Menu de titre de l'éditeur", "menus.explorerContext": "Menu contextuel de l'Explorateur de fichiers", "missing.altCommand": "L'élément de menu fait référence à une commande alt '{0}' qui n'est pas définie dans la section 'commands'.", diff --git a/i18n/fra/src/vs/platform/environment/node/argv.i18n.json b/i18n/fra/src/vs/platform/environment/node/argv.i18n.json index b137f89c4e4..0f0dfbbc425 100644 --- a/i18n/fra/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/fra/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Ouvrez un éditeur de différences. Nécessite de passer deux chemins de fichiers comme arguments.", "disableExtensions": "Désactivez toutes les extensions installées.", + "disableGPU": "Désactivez l'accélération matérielle du GPU.", "extensionHomePath": "Définissez le chemin racine des extensions.", "goto": "Ouvrez le fichier sur le chemin, à la ligne et dans la colonne nécessaires (ajoutez :line[:column] à path).", "gotoValidation": "Les arguments en mode '--goto' doivent être au format 'FILE(:LINE(:COLUMN))'.", @@ -19,6 +20,7 @@ "paths": "chemins", "performance": "Démarrez avec la commande 'Développeur : performance de démarrage' activée.", "reuseWindow": "Forcez l'ouverture d'un fichier ou dossier dans la dernière fenêtre active.", + "showVersions": "Affichez les versions des extensions installées en utilisant --list-extension.", "uninstallExtension": "Désinstalle une extension.", "usage": "Utilisation", "userDataDir": "Spécifie le répertoire où sont conservées les données des utilisateurs. S'avère utile pour une exécution en tant que root.", diff --git a/i18n/fra/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/fra/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 3ed20eab29f..bcb7190dc73 100644 --- a/i18n/fra/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/fra/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "la propriété '{0}' est obligatoire et doit être de type 'string'", "extensionDescription.version": "la propriété '{0}' est obligatoire et doit être de type 'string'", "vscode.extension.activationEvents": "Événements d'activation pour l'extension VS Code.", + "vscode.extension.badges": "Ensemble de badges à afficher dans la barre latérale de la page d'extensions de Marketplace.", + "vscode.extension.badges.description": "Description du badge.", + "vscode.extension.badges.href": "Lien du badge.", + "vscode.extension.badges.url": "URL de l'image du badge.", "vscode.extension.categories": "Catégories utilisées par la galerie VS Code pour catégoriser l'extension.", "vscode.extension.contributes": "Toutes les contributions de l'extension VS Code représentées par ce package.", "vscode.extension.displayName": "Nom d'affichage de l'extension utilisée dans la galerie VS Code.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Bannière utilisée dans le marketplace VS Code.", "vscode.extension.galleryBanner.color": "Couleur de la bannière de l'en-tête de page du marketplace VS Code.", "vscode.extension.galleryBanner.theme": "Thème de couleur de la police utilisée dans la bannière.", + "vscode.extension.icon": "Chemin d'une icône de 128 x 128 pixels.", + "vscode.extension.preview": "Définit l'extension à marquer en tant que préversion dans Marketplace.", "vscode.extension.publisher": "Éditeur de l'extension VS Code.", "vscode.extension.scripts.prepublish": "Le script exécuté avant le package est publié en tant qu'extension VS Code." } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/fra/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 6c562b41836..0ea0c59d765 100644 --- a/i18n/fra/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/fra/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Activer/désactiver la position de la barre latérale", + "toggleLocation": "Activer/désactiver l'emplacement de la barre latérale", "view": "Affichage" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/browser/parts/editor/titleControl.i18n.json b/i18n/fra/src/vs/workbench/browser/parts/editor/titleControl.i18n.json index fac1b293c63..7faf0f2e9e9 100644 --- a/i18n/fra/src/vs/workbench/browser/parts/editor/titleControl.i18n.json +++ b/i18n/fra/src/vs/workbench/browser/parts/editor/titleControl.i18n.json @@ -6,7 +6,7 @@ { "araLabelEditorActions": "Actions de l'éditeur", "close": "Fermer", - "closeAll": "Fermer tout", + "closeAll": "Tout fermer", "closeOthers": "Fermer les autres", "closeRight": "Fermer à droite", "keepOpen": "Garder ouvert", diff --git a/i18n/fra/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/fra/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 0c14bcf0b16..c0d1ef0d743 100644 --- a/i18n/fra/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/fra/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Fermer", "focusPanel": "Focus dans le panneau", + "toggleMaximizedPanel": "Activer/désactiver le panneau agrandi", "togglePanel": "Activer/désactiver le panneau", "view": "Affichage" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/fra/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 79ad4b125e0..b575ccc1bc6 100644 --- a/i18n/fra/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/fra/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Appuyez sur 'Entrée' pour confirmer votre saisie, ou sur 'Échap' pour l'annuler", "inputModeEntryDescription": "{0} (Appuyez sur 'Entrée' pour confirmer ou sur 'Échap' pour annuler)", "noResultsFound1": "Résultats introuvables", - "quickOpenInput": "Tapez '?' pour obtenir de l'aide sur les actions que vous pouvez effectuer ici" + "pickHistory": "Sélectionnez une entrée de l'éditeur à supprimer de l'historique", + "quickOpenInput": "Tapez '?' pour obtenir de l'aide sur les actions que vous pouvez effectuer ici", + "removeFromEditorHistory": "Supprimer de l'historique des éditeurs" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/fra/src/vs/workbench/electron-browser/actions.i18n.json index 72d705af7f5..a238791d193 100644 --- a/i18n/fra/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/fra/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Fermer un dossier", "closeMessages": "Fermer les messages de notification", "closeWindow": "Fermer la fenêtre", + "current": "Fenêtre active", "diffLeftRightLabel": "{0} - {1}", "files": "fichiers", "folders": "dossiers", @@ -18,7 +19,7 @@ "openRecentPlaceHolder": "Sélectionner un chemin à ouvrir (maintenir la touche Ctrl enfoncée pour l'ouvrir dans une nouvelle fenêtre)", "openRecentPlaceHolderMac": "Sélectionner un chemin (maintenir la touche Cmd enfoncée pour l'ouvrir dans une nouvelle fenêtre)", "reloadWindow": "Recharger la fenêtre", - "reportIssues": "Signaler les problèmes", + "reportIssues": "Signaler des problèmes", "switchWindow": "Changer de fenêtre", "switchWindowPlaceHolder": "Sélectionner une fenêtre", "toggleDevTools": "Activer/désactiver les outils de développement", diff --git a/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json index 1e03201c69c..e4ae5fff911 100644 --- a/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -8,7 +8,7 @@ "developer": "Développeur", "editorOpenPositioning": "Contrôle l'emplacement de l'ouverture des éditeurs. Sélectionnez 'left' ou 'right' pour ouvrir les éditeurs à gauche ou à droite de l'éditeur actuellement actif. Sélectionnez 'first' ou 'last' pour ouvrir les éditeurs indépendamment de l'éditeur actuellement actif.", "enablePreview": "Contrôle si les éditeurs ouverts s'affichent en mode aperçu. Les éditeurs en mode aperçu sont réutilisés jusqu'à ce qu'ils soient conservés (par exemple, après un double-clic ou une modification).", - "enablePreviewFromQuickOpen": "Contrôle si les éditeurs ouverts rapidement s'affichent en mode aperçu. Les éditeurs en mode aperçu sont réutilisés jusqu'à ce qu'ils soient conservés (par exemple, après un double-clic ou une modification).", + "enablePreviewFromQuickOpen": "Contrôle si les éditeurs de Quick Open s'affichent en mode aperçu. Les éditeurs en mode aperçu sont réutilisés jusqu'à ce qu'ils soient conservés (par exemple, après un double-clic ou une modification).", "file": "Fichier", "help": "Aide", "openDefaultSettings": "Contrôle si l'ouverture des paramètres entraîne également l'ouverture d'un éditeur qui affiche tous les paramètres par défaut.", @@ -17,6 +17,8 @@ "restoreFullscreen": "Contrôle si une fenêtre doit être restaurée en mode plein écran si elle a été fermée dans ce mode.", "showEditorTabs": "Contrôle si les éditeurs ouverts doivent s'afficher ou non sous des onglets.", "showIcons": "Contrôle si les éditeurs ouverts doivent s'afficher ou non avec une icône. Cela implique notamment l'activation d'un thème d'icône.", + "sideBarLocation": "Contrôle l'emplacement de la barre latérale. Elle peut s'afficher à gauche ou à droite du banc d'essai.", + "statusBarVisibility": "Contrôle la visibilité de la barre d'état au bas du banc d'essai.", "updateChannel": "Indiquez si vous recevez des mises à jour automatiques en provenance d'un canal de mises à jour. Un redémarrage est nécessaire en cas de modification.", "updateConfigurationTitle": "Mettre à jour", "view": "Affichage", diff --git a/i18n/fra/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index d0aba2a3d78..de655df163f 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Tapez la condition de point d'arrêt pour la ligne {0}. Le programme s'arrête ici uniquement si cette condition a la valeur true. Appuyez sur Entrée pour accepter ou sur Échap pour annuler.", - "breakpointWidgetPlaceholder": "Le point d'arrêt à la ligne {0} s'arrête uniquement si cette condition a la valeur true. Appuyez sur 'Entrée' pour accepter ou sur 'Échap' pour annuler." + "breakpointWidgetAriaLabel": "Le programme s'arrête ici uniquement si cette condition a la valeur true. Appuyez sur Entrée pour accepter, ou sur Échap pour annuler.", + "breakpointWidgetExpressionPlaceholder": "Arrêter quand l'expression prend la valeur true", + "breakpointWidgetHitCountAriaLabel": "Le programme s'arrête ici uniquement si le nombre d'accès est atteint. Appuyez sur Entrée pour accepter, ou sur Échap pour annuler.", + "breakpointWidgetHitCountPlaceholder": "Arrêter quand le nombre d'accès est atteint", + "expression": "Expression", + "hitCount": "Nombre d'accès" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 788ceac3bcf..f1609d2a6d4 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Activer les points d'arrêt", - "addConditionalBreakpoint": "Ajouter un point d'arrêt conditionnel", + "addConditionalBreakpoint": "Ajouter un point d'arrêt conditionnel...", "addFunctionBreakpoint": "Ajouter un point d'arrêt sur fonction", "addToWatchExpressions": "Ajouter à la fenêtre Espion", "addWatchExpression": "Ajouter une expression", "clearRepl": "Effacer la console", - "conditionalBreakpointEditorAction": "Déboguer : point d'arrêt conditionnel", + "conditionalBreakpointEditorAction": "Déboguer : ajouter un point d'arrêt conditionnel...", "continueDebug": "Continuer", "deactivateBreakpoints": "Désactiver les points d'arrêt", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "Focus sur la console de débogage", "disableAllBreakpoints": "Désactiver tous les points d'arrêt", "disconnectDebug": "Déconnecter", - "editConditionalBreakpoint": "Modifier un point d'arrêt", + "editConditionalBreakpoint": "Modifier un point d'arrêt...", "enableAllBreakpoints": "Activer tous les points d'arrêt", "launchJsonNeedsConfigurtion": "Configurer ou corriger 'launch.json'", "openLaunchJson": "Ouvrir {0}", diff --git a/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index f5ae53005d0..9f682d4f781 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Autorise la définition de points d'arrêt pour tous les fichiers, quelle que soit l'extension.", "debug": "Déboguer", "debugCategory": "Déboguer", + "debugConfigurationTitle": "Déboguer", "debugErrorEditor": "Erreur de débogage", "debugPanel": "Console de débogage", "launchConfigDoesNotExist": "La configuration de lancement '{0}' n'existe pas.", + "openExplorerOnEnd": "Ouvre automatiquement la viewlet d'exploration à la fin d'une session de débogage.", "toggleDebugPanel": "Console de débogage", "toggleDebugViewlet": "Afficher le débogage", "view": "Affichage" diff --git a/i18n/fra/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 5269b899c14..ce20fe12dfe 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "Impossible de créer le fichier 'launch.json' dans le dossier '.vscode' ({0}).", - "app.launch.json.configurations": "Liste des configurations. Ajoutez de nouvelles configurations, ou modifiez celles qui existent déjà.", + "app.launch.json.configurations": "Liste des configurations. Ajoutez de nouvelles configurations, ou modifiez celles qui existent déjà à l'aide d'IntelliSense.", "app.launch.json.title": "Lancer", "app.launch.json.version": "Version de ce format de fichier.", "debugNoType": "Le 'type' de l'adaptateur de débogage ne peut pas être omis. Il doit s'agir du type 'string'.", "duplicateDebuggerType": "Le type de débogage '{0}' est déjà inscrit et a pour attribut '{1}'. Attribut '{1}' ignoré.", - "interactiveVariableNotFound": "L'adaptateur {0} ne contribue pas à la variable {1} spécifiée dans la configuration de lancement.", "selectDebug": "Sélectionner l'environnement", "vscode.extension.contributes.breakpoints": "Ajoute des points d'arrêt.", "vscode.extension.contributes.breakpoints.language": "Autorisez les points d'arrêt pour ce langage.", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..6f5b0e82203 --- /dev/null +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Ouvrir", + "extensions.openSide": "Ouvrir sur le côté" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 8d9f914a8e2..604ae1c1bb2 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Nom", "debuggers": "Débogueurs ({0})", "default": "Par défaut", + "dependencies": "Dépendances", "description": "Description", "details": "Détails", + "extension id": "Identificateur d'extension", "file extensions": "Extensions de fichier", "grammar": "Grammaire", + "install count": "Nombre d'installations", "keyboard shortcuts": "Racco&&urcis clavier", "language id": "ID", "language name": "Nom", "languages": "Langages ({0})", "license": "Licence", "menuContexts": "Contextes de menu", + "name": "Nom de l'extension", "noChangelog": "Aucun CHANGELOG disponible.", "noReadme": "Aucun fichier README disponible.", + "publisher": "Nom de l'éditeur", + "rating": "Évaluation", "setting name": "Nom", "settings": "Paramètres ({0})", "snippets": "Extraits", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index bfdd9773fd5..c06ef46cda6 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Configurer les extensions désactivées", + "disableWorkspaceExtensions": "Configurer les extensions désactivées (espace de travail)", "extension": "Extension", "extensions": "Extensions", "extensionsAutoUpdate": "Mettre à jour automatiquement les extensions", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index aac09d1f0fe..82e83368ef2 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,19 +6,21 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Les recommandations ne sont disponibles que pour un dossier d'espace de travail.", "OpenExtensionsFile.failed": "Impossible de créer le fichier 'extensions.json' dans le dossier '.vscode' ({0}).", + "OpenGlobalExtensionsStorageFile.failed": "Impossible de créer le fichier 'extensions.json' dans le dossier '{0}' ({1}).", "builtin": "Intégrée", "clearExtensionsInput": "Effacer l'entrée des extensions", - "configureWorkspaceRecommendedExtensions": "Configurer les extensions recommandées pour l'espace de travail", + "configureWorkspaceRecommendedExtensions": "Configurer les extensions recommandées (espace de travail)", "deleteSure": "Voulez-vous vraiment désinstaller '{0}' ?", "enableAction": "Activer", "installAction": "Installer", "installExtensions": "Installer les extensions", - "installVSIX": "Installer à partir de VSIX...", + "installVSIX": "Installer depuis un VSIX...", "installing": "Installation", "openExtensionsFolder": "Ouvrir le dossier d'extensions", "postUninstallMessage": "{0} a été désinstallé avec succès. Redémarrez pour le désactiver.", "restart": "Pour activer cette extension, cette fenêtre de code VS doit être redémarrée.\n\nVoulez-vous continuer ?", "restartNow": "Redémarrer maintenant", + "showDisabledExtensions": "Afficher les extensions désactivées", "showInstalledExtensions": "Afficher les extensions installées", "showOutdatedExtensions": "Afficher les extensions obsolètes", "showPopularExtensions": "Afficher les extensions les plus demandées", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index 54eccc5dbe5..3450a8a81d3 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Format attendu : '${publisher}.${name}'. Exemple : 'vscode.csharp'.", "app.extensions.json.recommendations": "Liste des recommandations d'extensions. L'identificateur d'une extension est toujours '${publisher}.${name}'. Exemple : 'vscode.csharp'.", - "app.extensions.json.title": "Extensions" + "app.extensions.json.title": "Extensions", + "app.extensionsstorage.json.disabled": "Liste des extensions désactivées. L'identificateur d'une extension est toujours '${publisher}.${name}'. Exemple : 'vscode.csharp'.", + "app.extensionsstorage.json.title": "Stockage des extensions" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 73967cb36aa..1a97a5d7806 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Ordre de tri : ↑", "descending": "Ordre de tri : ↓", "extensions": "Extensions", + "no extensions found": "Extensions introuvables.", "outdatedExtensions": "{0} extensions obsolètes", "searchExtensions": "Rechercher des extensions dans Marketplace", "sort by installs": "Trier par : nombre d'installations", diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 6a25338983e..966357881a0 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Extensions", - "extensionsInstalling": "Extensions (installation de {0}...)", - "multipleIssues": "Extensions ({0} problèmes)", - "multipleUpdates": "Extensions ({0} mises à jour disponibles)", - "oneIssue": "Extensions (1 problème)", - "oneUpdate": "Extensions (1 mise à jour disponible)" + "active": "Actif", + "disabled": "Désactivé", + "disabledWorkspace": "Désactivé (espace de travail)" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/fra/src/vs/workbench/parts/files/browser/fileActions.i18n.json index a1d300b4b75..038763472e7 100644 --- a/i18n/fra/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Ouvrir sur le côté", "pasteFile": "Coller", "permDelete": "Supprimer définitivement", + "pickHistory": "Sélectionnez une entrée de l'historique de l'éditeur à comparer", "refresh": "Actualiser", "refreshExplorer": "Actualiser l'explorateur", "rename": "Renommer", diff --git a/i18n/fra/src/vs/workbench/parts/files/browser/views/openEditorsViewer.i18n.json b/i18n/fra/src/vs/workbench/parts/files/browser/views/openEditorsViewer.i18n.json index 4c2691a3ee7..b54d7765a13 100644 --- a/i18n/fra/src/vs/workbench/parts/files/browser/views/openEditorsViewer.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/files/browser/views/openEditorsViewer.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "close": "Fermer", - "closeAll": "Fermer tout", + "closeAll": "Tout fermer", "closeOthers": "Fermer les autres", "editorGroupAriaLabel": "{0}, groupe d'éditeurs", "openEditorAriaLabel": "{0}, Ouvrir l'éditeur", diff --git a/i18n/fra/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/fra/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 12e6b4786af..9a1b72c735e 100644 --- a/i18n/fra/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Échec de l'authentification durant l'opération git remote.", + "cancel": "Annuler", "cleanChangesLabel": "&&Supprimer les modifications", "commit": "Commit", "commitAll": "Valider tout", @@ -22,16 +23,21 @@ "confirmUndoMessage": "Voulez-vous vraiment supprimer toutes les modifications ?", "dirtyTreeCheckout": "Extraction impossible. Validez ou effectuez une copie intermédiaire de votre travail.", "dirtyTreePull": "Extraction impossible. Validez ou effectuez une copie intermédiaire de votre travail.", + "do you want to continue": "Voulez-vous vraiment continuer ?", "init": "Init", "irreversible": "Cette action est irréversible !", + "never again": "OK, ne plus afficher", + "ok": "OK", "openChange": "Ouvrir la modification", "openFile": "Ouvrir le fichier", "publish": "Publier", "publishPickMessage": "Choisissez un dépôt distant où publier la branche '{0}' :", + "pushToRemote": "Transfert (Push) vers...", + "pushToRemotePickMessage": "Choisissez un dépôt distant où effectuer un transfert (Push) de la branche '{0}' :", "refresh": "Actualiser", "stageAllChanges": "Stocker tout en zone de transit", "stageChanges": "Étape", - "sureSync": "Voulez-vous vraiment synchroniser votre dépôt Git ?", + "sync is unpredictable": "Cette action effectue un transfert (Push) et un tirage (Pull) des validations à destination et en provenance de '{0}'.", "undoAllChanges": "Nettoyer tout", "undoChanges": "Nettoyer", "undoLastCommit": "Annuler la dernière validation", diff --git a/i18n/fra/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/fra/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..d31d43bede3 --- /dev/null +++ b/i18n/fra/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Copier" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json index 1acde1fcf75..113935b79d5 100644 --- a/i18n/fra/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "neverAgain": "Ne plus jamais afficher", + "neverAgain": "Ne plus afficher", "remindLater": "Me le rappeler plus tard", "surveyQuestion": "Acceptez-vous de répondre à une enquête rapide ?", "takeSurvey": "Répondre à l'enquête" diff --git a/i18n/fra/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 455f0d25698..748e36c7e1e 100644 --- a/i18n/fra/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Configurez les modèles Glob pour exclure les fichiers et les dossiers des recherches. Hérite de tous les modèles Glob à partir du paramètre files.exclude.", "exclude.boolean": "Modèle Glob auquel les chemins de fichiers doivent correspondre. Affectez la valeur true ou false pour activer ou désactiver le modèle.", "exclude.when": "Vérification supplémentaire des frères d'un fichier correspondant. Utilisez $(basename) comme variable pour le nom de fichier correspondant.", + "findInFiles": "Chercher dans les fichiers", "findInFolder": "Rechercher dans le dossier", "name": "Recherche", "openAnythingHandlerDescription": "Accéder au fichier", - "openSymbolDescriptionNormal": "Accéder au symbole dans l'espace de travail", + "openSymbolDescriptionNormal": "Atteindre le symbole dans l'espace de travail", "search.quickOpen.includeSymbols": "Configurez l'ajout des résultats d'une recherche de symboles globale dans le fichier de résultats pour Quick Open.", "searchConfigurationTitle": "Rechercher", - "showTriggerActions": "Accéder au symbole dans l'espace de travail...", + "showSearchViewlet": "Afficher la zone de recherche", + "showTriggerActions": "Atteindre le symbole dans l'espace de travail...", "view": "Affichage" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/fra/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 17ac3cb4434..b495a487019 100644 --- a/i18n/fra/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -8,13 +8,12 @@ "ConfigureGlobalExclusionsAction.label": "Ouvrir les paramètres", "RefreshAction.label": "Actualiser", "RemoveAction.label": "Supprimer", - "file.replaceAll.label": "Remplacer tout", + "file.replaceAll.label": "Tout remplacer", "findInFolder": "Rechercher dans le dossier", - "focusNextInputbox": "Focus sur la zone d'entrée suivante", - "focusPreviousInputbox": "Focus sur la zone d'entrée précédente", + "focusNextInputBox": "Focus sur la zone d'entrée suivante", + "focusPreviousInputBox": "Focus sur la zone d'entrée précédente", "match.replace.label": "Remplacer", "nextSearchTerm": "Afficher le terme de recherche suivant", "previousSearchTerm": "Afficher le terme de recherche précédent", - "replaceInFiles": "Remplacer dans les fichiers", - "showSearchViewlet": "Afficher la zone de recherche" + "replaceInFiles": "Remplacer dans les fichiers" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/search/browser/searchViewlet.i18n.json b/i18n/fra/src/vs/workbench/parts/search/browser/searchViewlet.i18n.json index 920ef1a6777..189ee374802 100644 --- a/i18n/fra/src/vs/workbench/parts/search/browser/searchViewlet.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/search/browser/searchViewlet.i18n.json @@ -20,7 +20,7 @@ "removeAll.message": "{0} occurrences supprimées dans {1} fichiers.", "replaceAll.confirm.button": "Remplacer", "replaceAll.confirmation.message": "Remplacer {0} occurrences dans {1} fichiers avec '{2}' ?", - "replaceAll.confirmation.title": "Remplacer tout", + "replaceAll.confirmation.title": "Tout remplacer", "replaceAll.message": "{0} occurrences remplacées dans {1} fichiers avec {2}.", "rerunSearch.message": "Rechercher à nouveau", "rerunSearchInAll.message": "Rechercher à nouveau dans tous les fichiers", diff --git a/i18n/fra/src/vs/workbench/parts/search/browser/searchWidget.i18n.json b/i18n/fra/src/vs/workbench/parts/search/browser/searchWidget.i18n.json index f07381ed570..270278e7b88 100644 --- a/i18n/fra/src/vs/workbench/parts/search/browser/searchWidget.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/search/browser/searchWidget.i18n.json @@ -7,8 +7,8 @@ "label.Replace": "Remplacer : tapez le terme de remplacement, puis appuyez sur Entrée pour avoir un aperçu, ou sur Échap pour l'annuler", "label.Search": "Rechercher : tapez le terme de recherche, puis appuyez sur Entrée pour lancer la recherche, ou sur Échap pour l'annuler", "regexp.validationFailure": "L'expression correspond à tout", - "search.action.replaceAll.disabled.label": "Remplacer tout (soumettre la recherche pour activer)", - "search.action.replaceAll.enabled.label": "Remplacer tout", + "search.action.replaceAll.disabled.label": "Tout remplacer (soumettre la recherche pour activer)", + "search.action.replaceAll.enabled.label": "Tout remplacer", "search.placeHolder": "Rechercher", "search.replace.placeHolder": "Remplacer", "search.replace.toggle.button.title": "Activer/désactiver le remplacement" diff --git a/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 68112578cbb..18f2232d6c4 100644 --- a/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "Le processus lancé n'existe plus. Si la tâche a engendré des tâches en arrière-plan, la sortie de VS Code risque de donner lieu à des processus orphelins.", "TestAction.label": "Exécuter la tâche de test", "manyMarkers": "99", + "problems": "Problèmes", "taskCommands": "Exécuter la tâche", "tasks": "Tâches", "tasksCategory": "Tâches" diff --git a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index de6cd0ce673..26c7ebb1aae 100644 --- a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Chemin de l'interpréteur de commandes utilisé par le terminal sur Windows. Quand vous vous servez des interpréteurs de commandes fournis avec Windows (cmd, PowerShell ou Bash sur Ubuntu), préférez C:Windowssysnative à C:WindowsSystem32 pour utiliser les versions 64 bits.", "terminal.integrated.shellArgs.linux": "Arguments de ligne de commande à utiliser sur le terminal Linux.", "terminal.integrated.shellArgs.osx": "Arguments de ligne de commande à utiliser sur le terminal OS X.", + "terminal.integrated.shellArgs.windows": "Arguments de ligne de commande à utiliser sur le terminal Windows.", "terminalCategory": "Terminal", "terminalIntegratedConfigurationTitle": "Terminal intégré", "viewCategory": "Affichage" diff --git a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index e3c3957041d..8ee31648ae3 100644 --- a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Exécuter le texte sélectionné dans le terminal actif", "workbench.action.terminal.scrollDown": "Faire défiler vers le bas (ligne)", "workbench.action.terminal.scrollDownPage": "Faire défiler vers le bas (page)", + "workbench.action.terminal.scrollToBottom": "Faire défiler jusqu'en bas", + "workbench.action.terminal.scrollToTop": "Faire défiler jusqu'en haut", "workbench.action.terminal.scrollUp": "Faire défiler vers le haut (ligne)", "workbench.action.terminal.scrollUpPage": "Faire défiler vers le haut (page)", "workbench.action.terminal.switchTerminalInstance": "Changer d'instance de terminal", diff --git a/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 79efc5d025a..9a8138b5a52 100644 --- a/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,11 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Fermer", - "insiderBuilds": "Les builds Insider deviennent des builds quotidiennes !", + "insiderBuilds": "Builds et mises en production Insider quotidiennes !", "license": "Lire la licence", "licenseChanged": "Nos termes du contrat de licence ont changé. Prenez un instant pour les consulter.", - "neverShowAgain": "Ne plus jamais afficher", + "neverShowAgain": "Ne plus afficher", "read the release notes": "Bienvenue dans {0} v{1} ! Voulez-vous lire les notes de publication ?", "readmore": "Lire la suite", "release notes": "Notes de publication" diff --git a/i18n/fra/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/fra/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..51ec6c3e57d --- /dev/null +++ b/i18n/fra/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Ajouter des curseurs au-dessus/en dessous", + "watermark.moveLines": "Déplacer des lignes vers le haut/bas", + "watermark.quickOpen": "Accéder au fichier", + "watermark.showCommands": "Palette de commandes", + "watermark.toggleTerminal": "Activer/désactiver le terminal", + "watermark.unboundCommand": "indépendant" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..7db878db4a8 --- /dev/null +++ b/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "L'hôte d'extension s'est terminé de façon inattendue. Rechargez la fenêtre pour reprendre l'exécution.", + "extensionHostProcess.error": "Erreur de l'hôte d'extension : {0}", + "extensionHostProcess.startupFail": "L'hôte d'extension n'a pas démarré en moins de 10 secondes. Il existe peut-être un problème.", + "extensionHostProcess.startupFailDebug": "L'hôte d'extension n'a pas démarré en moins de 10 secondes. Il est peut-être arrêté à la première ligne et a besoin d'un débogueur pour continuer.", + "extensionUnderDevelopment": "Chargement de l'extension de développement sur {0}", + "overwritingExtension": "Remplacement de l'extension {0} par {1}." +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/fra/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 913ec6b2aaf..52553598467 100644 --- a/i18n/fra/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/fra/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "Télécharger .NET Framework 4.5", "netVersionError": "Microsoft .NET Framework 4.5 est obligatoire. Suivez le lien pour l'installer.", + "neverShowAgain": "Ne plus afficher", "trashFailed": "Échec du déplacement de '{0}' vers la corbeille" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/fra/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..408fd382660 --- /dev/null +++ b/i18n/fra/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "Échec d'enregistrement de '{0}' ({1}).", + "saveFileFirst": "L'intégrité du fichier est compromise. Enregistrez-le avant de le rouvrir avec un autre encodage." +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/fra/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..24abad7bdaf --- /dev/null +++ b/i18n/fra/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Tous les fichiers", + "cancel": "Annuler", + "dontSave": "&&Ne pas enregistrer", + "moreFile": "...1 fichier supplémentaire non affiché", + "moreFiles": "...{0} fichiers supplémentaires non affichés", + "noExt": "Aucune extension", + "save": "Enregi&&strer", + "saveAll": "&&Enregistrer tout", + "saveChangesDetail": "Vous perdrez vos modifications, si vous ne les enregistrez pas.", + "saveChangesMessage": "Voulez-vous enregistrer les modifications apportées à {0} ?", + "saveChangesMessages": "Voulez-vous enregistrer les modifications apportées aux {0} fichiers suivants ?" +} \ No newline at end of file diff --git a/i18n/ita/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/ita/extensions/typescript/out/typescriptServiceClient.i18n.json index f318e6bf0c7..87bafe16dc6 100644 --- a/i18n/ita/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/ita/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "L'impostazione dell'area di lavoro 'typescript.tsdk' è stata aggiornata ed è ora {0}", "use": "Usa l'area di lavoro ({0})", "useBundled": "Usa la versione in bundle ({0})", - "versionMismatch": "È stata rilevato un errore di corrispondenza tra la versione del compilatore tsc installato globalmente ({0}) e quella del servizio di linguaggio di VS Code ({1}). Questo potrebbe causare errori di compilazione incoerente.", + "versionMismatch": "Le versioni non corrispondono. Compilatore tsc globale ({0}) != servizio di linguaggio di Visual Studio Code ({1}). Potrebbero verificarsi errori di compilazione incoerente", "versionNumber.custom": "personalizzato" } \ No newline at end of file diff --git a/i18n/ita/extensions/typescript/package.i18n.json b/i18n/ita/extensions/typescript/package.i18n.json index 3f86bb8fcf9..7ca8035a4c9 100644 --- a/i18n/ita/extensions/typescript/package.i18n.json +++ b/i18n/ita/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Consente di definire la gestione dello spazio dopo una virgola di delimitazione", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Consente di definire la gestione dello spazio dopo la parola chiave function per funzioni anonime", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Consente di definire la gestione dello spazio dopo le parole chiave nell'istruzione del flusso di controllo", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Consente di definire la gestione dello spazio dopo la parentesi graffa iniziale e prima della parentesi graffa finale dell'espressione JSX. Richiede TypeScript >= 2.0.6", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Consente di definire la gestione dello spazio dopo le parentesi quadre di apertura e di chiusura non vuote", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Consente di definire la gestione dello spazio dopo le parentesi tonde di apertura e di chiusura non vuote", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Consente di definire la gestione dello spazio dopo la parentesi graffa iniziale e prima della parentesi graffa finale della stringa del modello. Richiede TypeScript >= 2.0.6", "format.insertSpaceAfterSemicolonInForStatements": " Consente di definire la gestione dello spazio dopo un punto e virgola in un'istruzione for", "format.insertSpaceBeforeAndAfterBinaryOperators": "Consente di definire la gestione dello spazio dopo un operatore binario", "format.placeOpenBraceOnNewLineForControlBlocks": "Consente di definire se una parentesi graffa di apertura viene o meno inserita su una riga per i blocchi di controllo", @@ -18,6 +20,7 @@ "javascript.validate.enable": "Abilita/Disabilita la convalida JavaScript", "typescript.check.tscVersion": "Verifica se un compilatore TypeScript di installazione globale, ad esempio tsc, è diverso dal servizio di linguaggio TypeScript usato.", "typescript.check.workspaceVersion": "Verifica se nell'area di lavoro è disponibile una versione di TypeScript", + "typescript.experimentalAutomaticTypeAcquisition": "Abilita l'acquisizione automatica del tipo. Richiede TypeScript >= 2.0.6 e un riavvio dopo la modifica.", "typescript.reloadProjects.title": "Ricarica progetto TypeScript", "typescript.tsdk.desc": "Specifica il percorso della cartella che contiene i file tsserver e lib*.d.ts da usare.", "typescript.tsdk_version.desc": "Specifica la versione di tsserver. È necessario solo se tsserver non viene installato con npm.", diff --git a/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json index ea1a469b393..78ecd4dd51b 100644 --- a/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Controlla le dimensioni del carattere in pixel.", "fontWeight": "Controlla lo spessore del carattere.", "formatOnType": "Controlla se l'editor deve formattare automaticamente la riga dopo la digitazione", + "glyphMargin": "Controlla se l'editor deve eseguire il rendering del margine verticale del glifo. Il margine del glifo viene usato principalmente per il debug.", "hideCursorInOverviewRuler": "Controlla se il cursore deve essere nascosto nel righello delle annotazioni.", "ignoreTrimWhitespace": "Controlla se l'editor diff mostra come differenze le modifiche relative a spazi vuoti iniziali e finali", "insertSpaces": "Inserisce spazi quando viene premuto TAB. Quando `editor.detectIndentation` è attivo, questa impostazione viene sostituita in base al contenuto del file.", @@ -40,7 +41,9 @@ "selectionHighlight": "Controlla se l'editor deve evidenziare gli elementi corrispondenti simili alla selezione", "sideBySide": "Controlla se l'editor diff mostra le differenze affiancate o incorporate", "snippetSuggestions": "Controlla se i frammenti di codice sono visualizzati con altri suggerimenti e il modo in cui sono ordinati.", - "stablePeek": "Mantiene aperte le anteprime editor anche quando si fa doppio clic sul contenuto o si preme ESC.", + "stablePeek": "Mantiene aperti gli editor rapidi anche quando si fa doppio clic sul contenuto o si preme ESC.", + "suggestFontSize": "Dimensioni del carattere per il widget dei suggerimenti", + "suggestLineHeight": "Altezza della riga per il widget dei suggerimenti", "suggestOnTriggerCharacters": "Controlla se i suggerimenti devono essere visualizzati automaticamente durante la digitazione dei caratteri trigger", "tabCompletion": "Inserisce frammenti di codice quando il prefisso corrisponde. Funziona in modo ottimale quando non sono abilitati i suggerimenti rapidi.", "tabSize": "Numero di spazi a cui equivale una tabulazione. Quando `editor.detectIndentation` è attivo, questa impostazione viene sostituita in base al contenuto del file.", diff --git a/i18n/ita/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/ita/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 7303cd87d98..44e63626e76 100644 --- a/i18n/ita/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/ita/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Apri definizione lateralmente", "actions.previewDecl.label": "Visualizza la definizione", "meta.title": " - Definizioni di {0}", - "multipleResults": "Fare clic per visualizzare le {0} definizioni trovate." + "multipleResults": "Fare clic per visualizzare {0} definizioni." } \ No newline at end of file diff --git a/i18n/ita/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/ita/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 5f3718be122..f46161c14d9 100644 --- a/i18n/ita/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/ita/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Mostra correzioni", + "quickFixWithKb": "Mostra correzioni ({0})", "quickfix.trigger.label": "Correzione rapida" } \ No newline at end of file diff --git a/i18n/ita/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/ita/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index e67aeab8dd3..1374817fc56 100644 --- a/i18n/ita/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/ita/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "La voce di menu fa riferimento allo stesso comando come comando predefinito e come comando alternativo", "menuId.invalid": "`{0}` non è un identificatore di menu valido", "menus.editorContext": "Menu di scelta rapida dell'editor", + "menus.editorTabContext": "Menu di scelta rapida delle schede dell'editor", "menus.editorTitle": "Menu del titolo dell'editor", "menus.explorerContext": "Menu di scelta rapida Esplora file", "missing.altCommand": "La voce di menu fa riferimento a un comando alternativo `{0}` che non è definito nella sezione 'commands'.", diff --git a/i18n/ita/src/vs/platform/environment/node/argv.i18n.json b/i18n/ita/src/vs/platform/environment/node/argv.i18n.json index 83d6ef5070c..a21c695067a 100644 --- a/i18n/ita/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/ita/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Apre un editor diff. Richiede il passaggio di due percorsi di file come argomenti.", "disableExtensions": "Disabilita tutte le estensioni installate.", + "disableGPU": "Disabilita l'accelerazione hardware della GPU.", "extensionHomePath": "Impostare il percorso radice per le estensioni.", "goto": "Apre il file nel percorso e alla riga e colonna indicate (aggiunge :line[:column] al percorso).", "gotoValidation": "Gli argomenti nella modalità `--goto` devono essere espressi nel formato `FILE(:LINE(:COLUMN))`.", @@ -19,6 +20,7 @@ "paths": "percorsi", "performance": "Eseguire l'avvio con il comando 'Developer: Startup Performance' abilitato.", "reuseWindow": "Forza l'apertura di un file o di una cartella nell'ultima finestra attiva.", + "showVersions": "Mostra le versioni delle estensioni installate, quando si usa --list-extension.", "uninstallExtension": "Disinstalla un'estensione.", "usage": "Utilizzo", "userDataDir": "Consente di specificare la directory in cui si trovano i dati utente. Utile quando viene eseguito come root.", diff --git a/i18n/ita/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/ita/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 7342532aba6..95a2907f569 100644 --- a/i18n/ita/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/ita/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "la proprietà `{0}` è obbligatoria e deve essere di tipo `string`", "extensionDescription.version": "la proprietà `{0}` è obbligatoria e deve essere di tipo `string`", "vscode.extension.activationEvents": "Eventi di attivazione per l'estensione Visual Studio Code.", + "vscode.extension.badges": "Matrice di notifiche da visualizzare nella barra laterale della pagina delle estensioni del Marketplace.", + "vscode.extension.badges.description": "Descrizione della notifica.", + "vscode.extension.badges.href": "Collegamento della notifica.", + "vscode.extension.badges.url": "URL di immagine della notifica.", "vscode.extension.categories": "Categorie usate dalla raccolta di Visual Studio Code per definire la categoria dell'estensione.", "vscode.extension.contributes": "Tutti i contributi dell'estensione Visual Studio Code rappresentati da questo pacchetto.", "vscode.extension.displayName": "Nome visualizzato per l'estensione usato nella raccolta di Visual Studio Code.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Banner usato nel marketplace di Visual Studio Code.", "vscode.extension.galleryBanner.color": "Colore del banner nell'intestazione pagina del marketplace di Visual Studio Code.", "vscode.extension.galleryBanner.theme": "Tema colori per il tipo di carattere usato nel banner.", + "vscode.extension.icon": "Percorso di un'icona da 128x128 pixel.", + "vscode.extension.preview": "Imposta l'estensione in modo che venga contrassegnata come Anteprima nel Marketplace.", "vscode.extension.publisher": "Editore dell'estensione Visual Studio Code.", "vscode.extension.scripts.prepublish": "Script eseguito prima che il pacchetto venga pubblicato come estensione Visual Studio Code." } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/ita/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 127f1159c47..4f3f7993c31 100644 --- a/i18n/ita/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/ita/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Attiva/Disattiva posizione della barra laterale", + "toggleLocation": "Attiva/Disattiva posizione della barra laterale", "view": "Visualizza" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/ita/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 0039716ad7a..83640b14692 100644 --- a/i18n/ita/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/ita/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Chiudi", "focusPanel": "Sposta lo stato attivo nel pannello", + "toggleMaximizedPanel": "Attiva/Disattiva pannello ingrandito", "togglePanel": "Attiva/Disattiva pannello", "view": "Visualizza" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/ita/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index e84871f8527..c759cb7aee9 100644 --- a/i18n/ita/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/ita/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Premere 'INVIO' per confermare l'input oppure 'ESC' per annullare", "inputModeEntryDescription": "{0} (premere 'INVIO' per confermare oppure 'ESC' per annullare)", "noResultsFound1": "Non sono stati trovati risultati", - "quickOpenInput": "Digitare '?' per visualizzare la Guida relativa alle azioni che è possibile eseguire qui" + "pickHistory": "Selezionare una voce dell'editor da rimuovere dalla cronologia", + "quickOpenInput": "Digitare '?' per visualizzare la Guida relativa alle azioni che è possibile eseguire qui", + "removeFromEditorHistory": "Rimuovi dalla cronologia dell'editor" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json index 16d2b9ebb88..3113f988b5a 100644 --- a/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Chiudi cartella", "closeMessages": "Chiudi messaggi di notifica", "closeWindow": "Chiudi finestra", + "current": "Finestra corrente", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "file", "folders": "cartelle", diff --git a/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json index 7701258055c..a6ce8b0e895 100644 --- a/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "Controlla se una finestra deve essere ripristinata a schermo intero se è stata chiusa in questa modalità.", "showEditorTabs": "Controlla se visualizzare o meno gli editor aperti in schede.", "showIcons": "Controlla se visualizzare o meno un'icona per gli editor aperti. Richiede l'abilitazione anche di un tema dell'icona.", + "sideBarLocation": "Controlla la posizione della barra laterale. Può essere visualizzata a sinistra o a destra del workbench.", + "statusBarVisibility": "Controlla la visibilità della barra di stato nella parte inferiore del workbench.", "updateChannel": "Consente di configurare la ricezione degli aggiornamenti automatici da un canale di aggiornamento. Richiede un riavvio dopo la modifica.", "updateConfigurationTitle": "Aggiorna", "view": "Visualizza", diff --git a/i18n/ita/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index a86119fee2e..2c516ae9029 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Digitare la condizione del punto di interruzione per la riga {0}. Il programma si arresterà in questo punto solo se la condizione è vera. Premere INVIO per accettare oppure ESC per annullare.", - "breakpointWidgetPlaceholder": "Il punto di interruzione a riga {0} arresterà il programma solo se questa condizione è vera. Premere 'INVIO' per accettare oppure 'ESC' per annullare." + "breakpointWidgetAriaLabel": "Il programma si arresterà in questo punto solo se la condizione è vera. Premere INVIO per accettare oppure ESC per annullare.", + "breakpointWidgetExpressionPlaceholder": "Interrompi quando l'espressione restituisce true", + "breakpointWidgetHitCountAriaLabel": "Il programma si arresterà in questo punto solo se viene raggiunto il numero di passaggi. Premere INVIO per accettare oppure ESC per annullare.", + "breakpointWidgetHitCountPlaceholder": "Interrompi quando viene soddisfatta la condizione del numero di passaggi", + "expression": "Espressione", + "hitCount": "Numero di passaggi" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index a6bb40c7a00..dca1ab8f468 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Attiva punti di interruzione", - "addConditionalBreakpoint": "Aggiungi punto di interruzione condizionale", + "addConditionalBreakpoint": "Aggiungi punto di interruzione condizionale...", "addFunctionBreakpoint": "Aggiungi punto di interruzione della funzione", "addToWatchExpressions": "Aggiungi a espressione di controllo", "addWatchExpression": "Aggiungi espressione", "clearRepl": "Cancella console", - "conditionalBreakpointEditorAction": "Debug: Punto di interruzione condizionale", + "conditionalBreakpointEditorAction": "Debug: Aggiungi Punto di interruzione condizionale...", "continueDebug": "Continua", "deactivateBreakpoints": "Disattiva punti di interruzione", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "Console di debug stato attivo", "disableAllBreakpoints": "Disabilita tutti i punti di interruzione", "disconnectDebug": "Disconnetti", - "editConditionalBreakpoint": "Modifica punto di interruzione", + "editConditionalBreakpoint": "Modifica punto di interruzione...", "enableAllBreakpoints": "Abilita tutti i punti di interruzione", "launchJsonNeedsConfigurtion": "Configurare o correggere 'launch.json'", "openLaunchJson": "Apri {0}", diff --git a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 3f080a254e7..867596cc5df 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Consente di impostare i punti di interruzione per tutti i file, indipendentemente dall'estensione.", "debug": "Debug", "debugCategory": "Debug", - "debugErrorEditor": "Esegui debug errore", + "debugConfigurationTitle": "Debug", + "debugErrorEditor": "Errore di debug", "debugPanel": "Console di debug", "launchConfigDoesNotExist": "La configurazione di avvio '{0}' non esiste.", + "openExplorerOnEnd": "Apre automaticamente il viewlet di esplorazione al termine di una sessione di debug.", "toggleDebugPanel": "Console di debug", "toggleDebugViewlet": "Mostra debug", "view": "Visualizza" diff --git a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 25513299033..b16f26992ea 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "actions.repl.acceptInput": "Input accettazione REPL", + "actions.repl.acceptInput": "Accetta input da REPL", "actions.repl.historyNext": "Cronologia avanti", "actions.repl.historyPrevious": "Cronologia indietro", - "replAriaLabel": "Pannello Read Eval Print Loop" + "replAriaLabel": "Pannello del ciclo Read Eval Print" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 41a619e3981..745e905553e 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "Fare clic per aprire (CTRL+clic apre lateralmente)", "fileLinkMac": "Fare clic per aprire (CMD+clic apre lateralmente)", - "replExpressionAriaLabel": "Il valore dell'espressione {0} è {1}, Read Eval Print Loop, debug", - "replKeyValueOutputAriaLabel": "Il valore della variabile di output {0} è {1}, Read Eval Print Loop, debug", - "replValueOutputAriaLabel": "{0}, Read Eval Print Loop, debug", - "replVariableAriaLabel": "Il valore della variabile {0} è {1}, Read Eval Print Loop, debug", + "replExpressionAriaLabel": "Il valore dell'espressione {0} è {1}, ciclo Read Eval Print, debug", + "replKeyValueOutputAriaLabel": "Il valore della variabile di output {0} è {1}, ciclo Read Eval Print, debug", + "replValueOutputAriaLabel": "{0}, ciclo Read Eval Print, debug", + "replVariableAriaLabel": "Il valore della variabile {0} è {1}, ciclo Read Eval Print, debug", "stateCapture": "Lo stato dell'oggetto viene acquisito dalla prima valutazione" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index fefc34c01f8..d146adf2df8 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "Non è possibile creare il file 'launch.json' all'interno della cartella '.vscode' ({0}).", - "app.launch.json.configurations": "Elenco delle configurazioni. Aggiungere nuove configurazioni o modificare quelle esistenti.", + "app.launch.json.configurations": "Elenco delle configurazioni. Aggiungere nuove configurazioni o modificare quelle esistenti con IntelliSense.", "app.launch.json.title": "Avvia", "app.launch.json.version": "Versione di questo formato di file.", "debugNoType": "L'adattatore di debug 'type' non può essere omesso e deve essere di tipo 'string'.", "duplicateDebuggerType": "Il tipo di debug '{0}' è già registrato e include l'attributo '{1}'. L'attributo '{1}' verrà ignorato.", - "interactiveVariableNotFound": "L'adattatore {0} non contribuisce alla variabile {1} specificata nella configurazione di avvio.", "selectDebug": "Seleziona ambiente", "vscode.extension.contributes.breakpoints": "Punti di interruzione per contributes.", "vscode.extension.contributes.breakpoints.language": "Consente i punti di interruzione per questo linguaggio.", @@ -29,7 +28,7 @@ "vscode.extension.contributes.debuggers.runtime": "Runtime facoltativo nel caso in cui l'attributo del programma non sia un eseguibile ma richieda un runtime.", "vscode.extension.contributes.debuggers.runtimeArgs": "Argomenti del runtime facoltativo.", "vscode.extension.contributes.debuggers.type": "Identificatore univoco per questo adattatore di debug.", - "vscode.extension.contributes.debuggers.variables": "Mapping tra le variabili interattive, ad esempio ${action.pickProcess}) in `launch.json` e un comando.", + "vscode.extension.contributes.debuggers.variables": "Mapping tra le variabili interattive, ad esempio ${action.pickProcess}, in `launch.json` e un comando.", "vscode.extension.contributes.debuggers.windows": "Impostazioni specifiche di Windows.", "vscode.extension.contributes.debuggers.windows.runtime": "Runtime usato per Windows." } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..ae4be6219c3 --- /dev/null +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Apri", + "extensions.openSide": "Apri lateralmente" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 43289f5d8f4..b4ab3695221 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Nome", "debuggers": "Debugger ({0})", "default": "Predefinita", + "dependencies": "Dipendenze", "description": "Descrizione", "details": "Dettagli", + "extension id": "Identificatore dell'estensione", "file extensions": "Estensioni di file", "grammar": "Grammatica", + "install count": "Conteggio delle installazioni", "keyboard shortcuts": "&&Tasti di scelta rapida", "language id": "ID", "language name": "Nome", "languages": "Linguaggi ({0})", "license": "Licenza", "menuContexts": "Contesti menu", + "name": "Nome dell'estensione", "noChangelog": "CHANGELOG non disponibile.", "noReadme": "File LEGGIMI non disponibile.", + "publisher": "Nome dell'editore", + "rating": "Valutazione", "setting name": "Nome", "settings": "Impostazioni ({0})", "snippets": "Frammenti", diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 84af0ff5e9f..85d68597fa6 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Configura estensioni disabilitate", + "disableWorkspaceExtensions": "Configura estensioni disabilitate (area di lavoro)", "extension": "Estensione", "extensions": "Estensioni", "extensionsAutoUpdate": "Aggiorna automaticamente le estensioni", diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 035a5fd7e8a..9ef61e287af 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Gli elementi consigliati sono disponibili solo per una cartella dell'area di lavoro.", "OpenExtensionsFile.failed": "Non è possibile creare il file 'extensions.json' all'interno della cartella '.vscode' ({0}).", - "builtin": "Predefinito", + "OpenGlobalExtensionsStorageFile.failed": "Non è possibile creare il file 'extensions.json' all'interno della cartella '{0}' ({1}).", + "builtin": "Predefinita", "clearExtensionsInput": "Cancella input estensioni", - "configureWorkspaceRecommendedExtensions": "Configura estensioni consigliate per l'area di lavoro", + "configureWorkspaceRecommendedExtensions": "Configura estensioni consigliate (area di lavoro)", "deleteSure": "Disinstallare '{0}'?", "enableAction": "Abilita", "installAction": "Installa", @@ -19,6 +20,7 @@ "postUninstallMessage": "{0} è stato disinstallato. Riavviare per disattivarlo.", "restart": "Per abilitare questa estensione, è necessario riavviare questa finestra di Visual Studio Code.\n\nContinuare?", "restartNow": "Riavvia ora", + "showDisabledExtensions": "Mostra estensioni disabilitate", "showInstalledExtensions": "Mostra estensioni installate", "showOutdatedExtensions": "Mostra estensioni obsolete", "showPopularExtensions": "Mostra estensioni più richieste", diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index a16cb7f205c..ed2542f78f1 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Formato imprevisto '${publisher}.${name}'. Esempio: 'vscode.csharp'.", "app.extensions.json.recommendations": "Elenco delle estensioni consigliate. L'identificatore di un'estensione è sempre '${publisher}.${name}'. Ad esempio: 'vscode.csharp'.", - "app.extensions.json.title": "Estensioni" + "app.extensions.json.title": "Estensioni", + "app.extensionsstorage.json.disabled": "Elenco delle estensioni disabilitate. L'identificatore di un'estensione è sempre '${publisher}.${name}'. Ad esempio: 'vscode.csharp'.", + "app.extensionsstorage.json.title": "Archivio estensioni" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 168d874d081..c5fc161f060 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Ordinamento: ↑", "descending": "Ordinamento: ↓", "extensions": "Estensioni", + "no extensions found": "Non sono state trovate estensioni.", "outdatedExtensions": "{0} estensioni obsolete", "searchExtensions": "Cerca le estensioni nel Marketplace", "sort by installs": "Ordina per: conteggio installazioni", diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index d4a5e112fa1..a999a0aa3f5 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Estensioni", - "extensionsInstalling": "Estensioni ({0} in fase di installazione...)", - "multipleIssues": "Estensioni ({0} problemi)", - "multipleUpdates": "Estensioni ({0} aggiornamenti disponibili)", - "oneIssue": "Estensioni (1 problema)", - "oneUpdate": "Estensioni (1 aggiornamento disponibile)" + "active": "Attivo", + "disabled": "Disabilitato", + "disabledWorkspace": "Disabilitate (area di lavoro)" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/ita/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 1a4ecc4ee1a..4491e9fdfc9 100644 --- a/i18n/ita/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Apri lateralmente", "pasteFile": "Incolla", "permDelete": "Elimina definitivamente", + "pickHistory": "Selezionare una voce della cronologia dell'editor con cui eseguire il confronto", "refresh": "Aggiorna", "refreshExplorer": "Aggiorna Explorer", "rename": "Rinomina", diff --git a/i18n/ita/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/ita/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 1f79c81068c..3fb26af7caf 100644 --- a/i18n/ita/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "L'autenticazione non è riuscita su git remote.", + "cancel": "Annulla", "cleanChangesLabel": "&&Pulisci modifiche", "commit": "Commit", "commitAll": "Esegui commit di tutto", @@ -22,16 +23,21 @@ "confirmUndoMessage": "Pulire tutte le modifiche?", "dirtyTreeCheckout": "Non è possibile eseguire l'estrazione. Eseguire prima il commit del lavoro o prepararlo per il commit.", "dirtyTreePull": "Non è possibile eseguire il pull. Eseguire prima il commit del lavoro o prepararlo per il commit.", + "do you want to continue": "Continuare?", "init": "Init", "irreversible": "Questa azione è irreversibile.", + "never again": "OK, non visualizzare più", + "ok": "OK", "openChange": "Apri modifica", "openFile": "Apri file", "publish": "Pubblica", "publishPickMessage": "Selezionare un repository remoto in cui pubblicare il ramo '{0}':", + "pushToRemote": "Esegui push in...", + "pushToRemotePickMessage": "Selezionare un repository remoto in cui effettuare il push del ramo '{0}':", "refresh": "Aggiorna", "stageAllChanges": "Gestisci tutto temporaneamente", "stageChanges": "Prepara", - "sureSync": "Sincronizzare il repository GIT?", + "sync is unpredictable": "Questa azione consentirà di effettuare il push e il pull di commit da e verso '{0}'.", "undoAllChanges": "Pulisci tutto", "undoChanges": "Pulisci", "undoLastCommit": "Annulla ultimo commit", diff --git a/i18n/ita/src/vs/workbench/parts/markers/browser/markersWorkbenchContributions.i18n.json b/i18n/ita/src/vs/workbench/parts/markers/browser/markersWorkbenchContributions.i18n.json index cbc56b657fc..f1d1a4a06ff 100644 --- a/i18n/ita/src/vs/workbench/parts/markers/browser/markersWorkbenchContributions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/markers/browser/markersWorkbenchContributions.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "errorsAndWarnings": "Errori e avvisi di {0}" + "errorsAndWarnings": "{0} errori e avvisi" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/ita/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..3ccaa2931c5 --- /dev/null +++ b/i18n/ita/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Copia" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json index a36c7338059..50cc6423757 100644 --- a/i18n/ita/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "neverAgain": "Non visualizzare più", + "neverAgain": "Non visualizzare più questo messaggio", "remindLater": "Visualizza più tardi", "surveyQuestion": "Partecipare a un breve sondaggio?", "takeSurvey": "Partecipa a sondaggio" diff --git a/i18n/ita/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index 408a8593417..96517ba0114 100644 --- a/i18n/ita/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Consente di configurare i criteri GLOB per escludere file e cartelle nelle ricerche. Eredita tutti i criteri GLOB dall'impostazione files.exclude.", "exclude.boolean": "Criterio GLOB da usare per trovare percorsi file. Impostare su True o False per abilitare o disabilitare il criterio.", "exclude.when": "Controllo aggiuntivo sugli elementi di pari livello di un file corrispondente. Usare $(basename) come variabile del nome file corrispondente.", + "findInFiles": "Cerca nei file", "findInFolder": "Trova nella cartella", "name": "Cerca", "openAnythingHandlerDescription": "Vai al file", "openSymbolDescriptionNormal": "Vai al simbolo nell'area di lavoro", "search.quickOpen.includeSymbols": "Configurare questa opzione per includere i risultati di una ricerca di simboli globale nei risultati dei file per Quick Open.", "searchConfigurationTitle": "Cerca", + "showSearchViewlet": "Mostra Cerca", "showTriggerActions": "Vai al simbolo nell'area di lavoro...", "view": "Visualizza" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/ita/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 8fad716a7ed..35f17e66fdf 100644 --- a/i18n/ita/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "Rimuovi", "file.replaceAll.label": "Sostituisci tutto", "findInFolder": "Trova nella cartella", - "focusNextInputbox": "Sposta lo stato attivo sulla casella di input successiva", - "focusPreviousInputbox": "Sposta lo stato attivo sulla casella di input precedente", + "focusNextInputBox": "Sposta lo stato attivo sulla casella di input successiva", + "focusPreviousInputBox": "Sposta lo stato attivo sulla casella di input precedente", "match.replace.label": "Sostituisci", "nextSearchTerm": "Mostra il termine di ricerca successivo", "previousSearchTerm": "Mostra il termine di ricerca precedente", - "replaceInFiles": "Sostituisci nei file", - "showSearchViewlet": "Mostra Cerca" + "replaceInFiles": "Sostituisci nei file" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index b4af2d2509d..5e1be74a7e3 100644 --- a/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "Il processo avviato non esiste più. Se l'attività implica la generazione di attività in background, uscendo da Visual Studio Code potrebbero essere presenti processi orfani.", "TestAction.label": "Esegui attività di test", "manyMarkers": "Più di 99", + "problems": "Problemi", "taskCommands": "Esegui attività", "tasks": "Attività", "tasksCategory": "Attività" diff --git a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 11ebe179b54..ec6ca436f47 100644 --- a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Percorso della shell usata dal terminale in Windows. Quando si usano le shell incluse in Windows (cmd, PowerShell o Bash in Ubuntu), preferire C:Windowssysnative rispetto a C:WindowsSystem32 per usare le versioni a 64 bit.", "terminal.integrated.shellArgs.linux": "Argomenti della riga di comando da usare nel terminale Linux.", "terminal.integrated.shellArgs.osx": "Argomenti della riga di comando da usare nel terminale OS X.", + "terminal.integrated.shellArgs.windows": "Argomenti della riga di comando da usare nel terminale Windows.", "terminalCategory": "Terminale", "terminalIntegratedConfigurationTitle": "Terminale integrato", "viewCategory": "Visualizza" diff --git a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index de352bd3bc4..d73450e97cc 100644 --- a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Esegui testo selezionato nel terminale attivo", "workbench.action.terminal.scrollDown": "Scorri giù (riga)", "workbench.action.terminal.scrollDownPage": "Scorri giù (pagina)", + "workbench.action.terminal.scrollToBottom": "Scorri alla fine", + "workbench.action.terminal.scrollToTop": "Scorri all'inizio", "workbench.action.terminal.scrollUp": "Scorri su (riga)", "workbench.action.terminal.scrollUpPage": "Scorri su (pagina)", "workbench.action.terminal.switchTerminalInstance": "Cambia istanza del terminale", diff --git a/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 7a51bb36827..007679a33d1 100644 --- a/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,11 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Chiudi", - "insiderBuilds": "Le build di Insider diventeranno build giornaliere.", + "insiderBuilds": "Build e versioni di Insider disponibili ogni giorno", "license": "Leggi licenza", "licenseChanged": "I termini della licenza sono cambiati. Leggerli con attenzione.", - "neverShowAgain": "Non visualizzare più", + "neverShowAgain": "Non visualizzare più questo messaggio", "read the release notes": "Benvenuti in {0} versione {1}. Leggere le note sulla versione?", "readmore": "Altre informazioni", "release notes": "Note sulla versione" diff --git a/i18n/ita/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/ita/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..5b1b71ac61a --- /dev/null +++ b/i18n/ita/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Aggiungi cursori sopra/sotto", + "watermark.moveLines": "Sposta righe su/giù", + "watermark.quickOpen": "Vai al file", + "watermark.showCommands": "Riquadro comandi", + "watermark.toggleTerminal": "Attiva/Disattiva terminale", + "watermark.unboundCommand": "non associato" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..ce38dee6448 --- /dev/null +++ b/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "L'host dell'estensione è stato terminato in modo imprevisto. Ricaricare la finestra per ripristinare.", + "extensionHostProcess.error": "Errore restituito dall'host dell'estensione: {0}", + "extensionHostProcess.startupFail": "L'host dell'estensione non è stato avviato entro 10 secondi. Potrebbe essersi verificato un problema.", + "extensionHostProcess.startupFailDebug": "L'host dell'estensione non è stato avviato entro 10 secondi. Potrebbe essersi arrestato alla prima riga e richiedere un debugger per continuare.", + "extensionUnderDevelopment": "Caricamento dell'estensione di sviluppo in {0}", + "overwritingExtension": "Sovrascrittura dell'estensione {0} con {1}." +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/ita/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 4380f23ed4c..23f9a211a2a 100644 --- a/i18n/ita/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/ita/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "Scarica .NET Framework 4.5", "netVersionError": "Microsoft .NET Framework 4.5 è obbligatorio. Selezionare il collegamento per installarlo.", + "neverShowAgain": "Non visualizzare più questo messaggio", "trashFailed": "Non è stato possibile spostare '{0}' nel Cestino" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/ita/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..42f02b693f2 --- /dev/null +++ b/i18n/ita/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "Non è stato possibile salvare '{0}': {1}", + "saveFileFirst": "Il file è modificato ma non salvato. Salvarlo prima di riaprirlo con un'altra codifica." +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/ita/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..674a9a7a741 --- /dev/null +++ b/i18n/ita/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Tutti i file", + "cancel": "Annulla", + "dontSave": "&&Non salvare", + "moreFile": "...1 altro file non visualizzato", + "moreFiles": "...{0} altri file non visualizzati", + "noExt": "Nessuna estensione", + "save": "&&Salva", + "saveAll": "&&Salva tutto", + "saveChangesDetail": "Le modifiche apportate andranno perse se non vengono salvate.", + "saveChangesMessage": "Salvare le modifiche apportate a {0}?", + "saveChangesMessages": "Salvare le modifiche apportate ai file seguenti di {0}?" +} \ No newline at end of file diff --git a/i18n/jpn/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/jpn/extensions/typescript/out/typescriptServiceClient.i18n.json index 3139904b8ef..e0814e2e68a 100644 --- a/i18n/jpn/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/jpn/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "ワークスペース設定 'typescript.tsdk' を {0} に更新しました", "use": "ワークスペース ({0}) を使用する", "useBundled": "バンドル ({0}) を使用する", - "versionMismatch": "グローバルにインストールされている tsc コンパイラ ({0}) と VS Code の言語サービス ({1}) の間にバージョンの不一致が検出されました。これは、非整合のコンパイル エラーを引き起こす可能性があります。", + "versionMismatch": "グローバルな tsc ({0}) と VS Code の言語サービス ({1}) の間にバージョンの不一致があります。非整合のコンパイル エラーを引き起こす可能性があります", "versionNumber.custom": "カスタム" } \ No newline at end of file diff --git a/i18n/jpn/extensions/typescript/package.i18n.json b/i18n/jpn/extensions/typescript/package.i18n.json index 8ca1cee24ea..b0f5cb46e99 100644 --- a/i18n/jpn/extensions/typescript/package.i18n.json +++ b/i18n/jpn/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "コンマ区切り記号の後のスペース処理を定義します", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "匿名関数の関数キーワードの後のスペース処理を定義します", "format.insertSpaceAfterKeywordsInControlFlowStatements": "制御フロー ステートメント内のキーワードの後のスペース処理を定義します", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "JSX 式の始め波かっこの後と終わり波かっこの前のスペース処理を定義します。TypeScript が 2.0.6 以上である必要があります", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "左右の空でない角かっこの間のスペース処理を定義します", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "左右の空でないかっこの間のスペース処理を定義します", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "テンプレート文字列の始め波かっこの後と終わり波かっこの前のスペース処理を定義します。TypeScript が 2.0.6 以上である必要があります", "format.insertSpaceAfterSemicolonInForStatements": "for ステートメント内のセミコロンの後のスペース処理を定義します", "format.insertSpaceBeforeAndAfterBinaryOperators": "2 項演算子の後のスペース処理を定義します", "format.placeOpenBraceOnNewLineForControlBlocks": "新しい行にコントロール ブロックの始め中かっこを配置するかどうかを定義します", @@ -18,6 +20,7 @@ "javascript.validate.enable": "JavaScript の検証を有効/無効にします", "typescript.check.tscVersion": "グローバル インストール TypeScript コンパイラ (tsc など) が、使用された TypeScript 言語サービスと異なっているかどうかを確認します。", "typescript.check.workspaceVersion": "TypeScript バージョンをワークスペースで使用できるかどうかを確認する", + "typescript.experimentalAutomaticTypeAcquisition": "型の自動取得を有効にします。TypeScript が 2.0.6 以上であり、変更後に再起動する必要があります。", "typescript.reloadProjects.title": "TypeScript プロジェクトを再度読み込みます", "typescript.tsdk.desc": "使用する tsserver と lib*.d.ts ファイルが含まれているフォルダーのパスを指定します。", "typescript.tsdk_version.desc": "TS サーバーのバージョンを指定します。TS サーバーが NPM でインストールされていない場合のみ必要です。", diff --git a/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json index 71dfb929bc9..b999bdc5b10 100644 --- a/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "フォント サイズをピクセル単位で制御します。", "fontWeight": "フォントの太さを制御します。", "formatOnType": "エディターで入力後に自動的に行の書式設定を行うかどうかを制御します", + "glyphMargin": "エディターで縦のグリフ余白が表示されるかどうかを制御します。ほとんどの場合、グリフ余白はデバッグに使用されます。", "hideCursorInOverviewRuler": "概要ルーラーでカーソルを非表示にするかどうかを制御します。", "ignoreTrimWhitespace": "差分エディターが、先頭または末尾の空白の変更を差分として表示するかどうかを制御します。", "insertSpaces": "Tab キーを押すとスペースが挿入されます。`editor.detectIndentation` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。", @@ -41,6 +42,8 @@ "sideBySide": "差分エディターが差分を横に並べて表示するか、行内に表示するかを制御します", "snippetSuggestions": "他の修正候補と一緒にスニペットを表示するかどうか、およびその並び替えの方法を制御します。", "stablePeek": "エディターのコンテンツをダブルクリックするか、Esc キーを押しても、ピーク エディターを開いたままにします。", + "suggestFontSize": "候補のウィジェットのフォント サイズ", + "suggestLineHeight": "候補のウィジェットの行の高さ", "suggestOnTriggerCharacters": "トリガー文字の入力時に候補が自動的に表示されるようにするかどうかを制御します", "tabCompletion": "プレフィックスが一致する場合にスニペットを挿入します。'quickSuggestions' が無効な場合に最適です。", "tabSize": "1 つのタブに相当するスペースの数。`editor.detectIndentation` がオンの場合、この設定はファイル コンテンツに基づいて上書きされます。", diff --git a/i18n/jpn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/jpn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index 16ebf719803..97aeb64add3 100644 --- a/i18n/jpn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/jpn/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "定義を横に開く", "actions.previewDecl.label": "ピークの定義", "meta.title": " - {0} の定義", - "multipleResults": "クリックして、見つかった {0} の定義を表示します。" + "multipleResults": "クリックして、{0} の定義を表示します。" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/jpn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 6a23e3fb759..04f2c376416 100644 --- a/i18n/jpn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/jpn/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "修正プログラムを表示する", + "quickFixWithKb": "修正プログラム ({0}) を表示する", "quickfix.trigger.label": "クイック修正" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/jpn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index f404123c8f8..c84a780b8ac 100644 --- a/i18n/jpn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/jpn/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "メニュー項目において、既定と alt コマンドが同じコマンドを参照しています", "menuId.invalid": "`{0}` は有効なメニュー識別子ではありません", "menus.editorContext": "エディターのコンテキスト メニュー", + "menus.editorTabContext": "エディターのタブのコンテキスト メニュー", "menus.editorTitle": "エディターのタイトル メニュー", "menus.explorerContext": "エクスプローラーのコンテキスト メニュー", "missing.altCommand": "メニュー項目が、'commands' セクションで定義されていない alt コマンド `{0}` を参照しています。", diff --git a/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json b/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json index acc62b8f8a0..0cb19ee230b 100644 --- a/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "差分エディターを開きます。引数として 2 つのファイル パスを渡す必要があります。", "disableExtensions": "インストールされたすべての拡張機能を無効にします。", + "disableGPU": "GPU ハードウェア アクセラレータを無効にします。", "extensionHomePath": "拡張機能のルート パスを設定します。", "goto": "指定の行と列のパスのファイルを開きます (パスに :line[:column] を追加します)。", "gotoValidation": "`--goto` モードの引数は `FILE(:LINE(:COLUMN))` の形式にする必要があります。", @@ -19,6 +20,7 @@ "paths": "パス", "performance": "'Developer: Startup Performance' コマンドを有効にして開始します。", "reuseWindow": "最後のアクティブ ウィンドウにファイルまたはフォルダーを強制的に開きます。", + "showVersions": "--list-extension の使用時に、インストール済みの拡張機能のバージョンを表示します。", "uninstallExtension": "拡張機能をアンインストールします。", "usage": "使用法", "userDataDir": "ユーザー データを保持するディレクトリを指定します。ルートで実行している場合に役立ちます。", diff --git a/i18n/jpn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/jpn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index ea25859b0cb..67427ecd518 100644 --- a/i18n/jpn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/jpn/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "プロパティ `{0}` は必須で、型 `string` でなければなりません", "extensionDescription.version": "プロパティ `{0}` は必須で、型 `string` でなければなりません", "vscode.extension.activationEvents": "VS Code 拡張機能のアクティブ化イベント。", + "vscode.extension.badges": "Marketplace の拡張機能ページのサイドバーに表示されるバッジの配列。", + "vscode.extension.badges.description": "バッジの説明。", + "vscode.extension.badges.href": "バッジのリンク。", + "vscode.extension.badges.url": "バッジのイメージ URL。", "vscode.extension.categories": "VS Code ギャラリーで拡張機能の分類に使用されるカテゴリ。", "vscode.extension.contributes": "このパッケージで表される VS Code 拡張機能のすべてのコントリビューション。", "vscode.extension.displayName": "VS Code ギャラリーで使用される拡張機能の表示名。", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "VS Code マーケットプレースで使用されるバナー。", "vscode.extension.galleryBanner.color": "VS Code マーケットプレース ページ ヘッダー上のバナーの色。", "vscode.extension.galleryBanner.theme": "バナーで使用されるフォントの配色テーマ。", + "vscode.extension.icon": "128x128 ピクセルのアイコンへのパス。", + "vscode.extension.preview": "Marketplace で Preview としてフラグを付けられる拡張機能を設定します。", "vscode.extension.publisher": "VS Code 拡張機能の公開元。", "vscode.extension.scripts.prepublish": "パッケージが VS Code 拡張機能として公開される前に実行されるスクリプト。" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/jpn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 852ef9c657b..4faa6069b27 100644 --- a/i18n/jpn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/jpn/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "サイドバーの位置の切り替え", + "toggleLocation": "サイド バーの位置の切り替え", "view": "表示" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/jpn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index a822a6a41e8..fbe21ef959a 100644 --- a/i18n/jpn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/jpn/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "閉じる", "focusPanel": "パネルにフォーカスする", + "toggleMaximizedPanel": "最大化されるパネルの切り替え", "togglePanel": "パネルの切り替え", "view": "表示" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/jpn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 32286ec9e8d..6924623e72d 100644 --- a/i18n/jpn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/jpn/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "'Enter' を押して入力を確認するか 'Escape' を押して取り消します", "inputModeEntryDescription": "{0} ('Enter' を押して確認するか 'Escape' を押して取り消します)", "noResultsFound1": "一致する項目はありません", - "quickOpenInput": "'?' と入力すると、ここで実行できる処理に関するヘルプが表示されます" + "pickHistory": "履歴から削除するエディター エントリを選ぶ", + "quickOpenInput": "'?' と入力すると、ここで実行できる処理に関するヘルプが表示されます", + "removeFromEditorHistory": "エディター履歴から削除する" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json index 30d9036c633..052b3aa305a 100644 --- a/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "フォルダーを閉じる", "closeMessages": "通知メッセージを閉じる", "closeWindow": "ウィンドウを閉じる", + "current": "現在のウィンドウ", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "ファイル", "folders": "フォルダー", diff --git a/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json index 636d711be6f..dbcaeffe724 100644 --- a/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "全画面表示モードで終了した場合に、ウィンドウを全画面表示モードに復元するかどうかを制御します。", "showEditorTabs": "開いているエディターをタブに表示するかどうかを制御します。", "showIcons": "開いているエディターをアイコンで表示するかどうかを制御します。これには、アイコンのテーマを有効にする必要もあります。", + "sideBarLocation": "サイド バーの位置を制御します。ワークベンチの左右のいずれかに表示できます。", + "statusBarVisibility": "ワークベンチの下部にステータス バーを表示するかどうかを制御します。", "updateChannel": "更新チャネルから自動更新を受信するかどうかを構成します。変更後に再起動が必要です。", "updateConfigurationTitle": "更新", "view": "表示", diff --git a/i18n/jpn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 1eb2f579f92..98145681fce 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "行 {0} に対するブレークポイント条件を入力します。この条件が true の場合のみプログラムはこの位置で停止します。Enter を押して受け入れるか Esc を押して取り消します。", - "breakpointWidgetPlaceholder": "行 {0} のブレークポイントは、この条件が true の場合のみ停止します。'Enter' を押して受け入れるか 'Esc' を押して取り消します。" + "breakpointWidgetAriaLabel": "この条件が true の場合にのみプログラムはこの位置で停止します。Enter を押して受け入れるか、Esc を押して取り消します。", + "breakpointWidgetExpressionPlaceholder": "式が true と評価される場合にブレークする", + "breakpointWidgetHitCountAriaLabel": "ヒット カウントが満たされる場合にのみプログラムはこの位置で停止します。Enter を押して受け入れるか、Esc を押して取り消します。", + "breakpointWidgetHitCountPlaceholder": "ヒット カウント条件が満たされる場合にブレークする", + "expression": "式", + "hitCount": "ヒット カウント" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 297349b1068..c13ac24cecb 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "ブレークポイントのアクティブ化", - "addConditionalBreakpoint": "条件付きブレークポイントの追加", + "addConditionalBreakpoint": "条件付きブレークポイントの追加...", "addFunctionBreakpoint": "関数ブレークポイントの追加", "addToWatchExpressions": "ウォッチに追加", "addWatchExpression": "式の追加", "clearRepl": "コンソールのクリア", - "conditionalBreakpointEditorAction": "デバッグ: 条件付きブレークポイント", + "conditionalBreakpointEditorAction": "デバッグ: 条件付きブレークポイントの追加...", "continueDebug": "続行", "deactivateBreakpoints": "ブレークポイントの非アクティブ化", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "デバッグ コンソールにフォーカスを移動", "disableAllBreakpoints": "すべてのブレークポイントを無効にする", "disconnectDebug": "切断", - "editConditionalBreakpoint": "ブレークポイントの編集", + "editConditionalBreakpoint": "ブレークポイントの編集...", "enableAllBreakpoints": "すべてのブレークポイントを有効にする", "launchJsonNeedsConfigurtion": "'launch.json' を構成または修正してください", "openLaunchJson": "{0} を開く", diff --git a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 835bc121d31..0264044f7b6 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "拡張子にかかわらず、すべてのファイルに対してブレークポイントを設定できるようにします。", "debug": "デバッグ", "debugCategory": "デバッグ", + "debugConfigurationTitle": "デバッグ", "debugErrorEditor": "デバッグ エラー", "debugPanel": "デバッグ コンソール", "launchConfigDoesNotExist": "起動の構成 '{0}' がありません。", + "openExplorerOnEnd": "デバッグ セッションの終わりに Explorer ビューレットを自動的に開きます。", "toggleDebugPanel": "デバッグ コンソール", "toggleDebugViewlet": "デバッグの表示", "view": "表示" diff --git a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index 43b82df465c..3a727cada4a 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "actions.repl.acceptInput": "REPL 反映入力", + "actions.repl.acceptInput": "REPL での入力を反映", "actions.repl.historyNext": "次の履歴", "actions.repl.historyPrevious": "前の履歴", - "replAriaLabel": "対話型評価環境パネル" + "replAriaLabel": "Read Eval Print Loop パネル" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 4ebddbd1196..bbde47113a1 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "クリックして従う (Ctrl を押しながらクリックすると横に開きます)", "fileLinkMac": "クリックして従う (Cmd を押しながらクリックすると横に開きます)", - "replExpressionAriaLabel": "式 {0} に値 {1} があります、対話型評価環境、デバッグ", - "replKeyValueOutputAriaLabel": "出力変数 {0} に値 {1} があります、対話型評価環境、デバッグ", - "replValueOutputAriaLabel": "{0}、対話型評価環境、デバッグ", - "replVariableAriaLabel": "変数 {0} に値 {1} があります、対話型評価環境、デバッグ", + "replExpressionAriaLabel": "式 {0} に値 {1} があります、Read Eval Print Loop、デバッグ", + "replKeyValueOutputAriaLabel": "出力変数 {0} に値 {1} があります、Read Eval Print Loop、デバッグ", + "replValueOutputAriaLabel": "{0}、Read Eval Print Loop、デバッグ", + "replVariableAriaLabel": "変数 {0} に値 {1} があります、Read Eval Print Loop、デバッグ", "stateCapture": "最初の評価からオブジェクトの状態がキャプチャされます" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 864e3320a62..6c0a15c128a 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "'launch.json' ファイルを '.vscode' フォルダー ({0}) 内に作成できません。", - "app.launch.json.configurations": "構成の一覧。新しい構成を追加したり、既存の構成を編集したります。", + "app.launch.json.configurations": "構成の一覧。IntelliSense を使用して、新しい構成を追加したり、既存の構成を編集したります。", "app.launch.json.title": "起動", "app.launch.json.version": "このファイル形式のバージョン。", "debugNoType": "デバッグ アダプター 'type' は省略不可で、型 'string' でなければなりません。", "duplicateDebuggerType": "デバッグの種類 '{0}' は既に登録されており、属性 '{1}' があります、属性 '{1}' は無視されます。", - "interactiveVariableNotFound": "アダプター {0} は、起動構成で指定されている変数 {1} を反映していません。", "selectDebug": "環境の選択", "vscode.extension.contributes.breakpoints": "ブレークポイントを提供します。", "vscode.extension.contributes.breakpoints.language": "この言語でブレークポイントを許可します。", diff --git a/i18n/jpn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json index caa0afc5bb7..a9c21e02b42 100644 --- a/i18n/jpn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/emmet/node/emmet.contribution.i18n.json @@ -5,8 +5,8 @@ // Do not edit this file. It is machine generated. { "emmetConfigurationTitle": "Emmet", - "emmetExclude": "Emmet の省略形を展開すべきでない言語の配列。", + "emmetExclude": "emmet 省略記法を展開すべきでない言語の配列。", "emmetPreferences": "Emmet の一部のアクションやリゾルバーの動作の変更に使用される設定。", "emmetSyntaxProfiles": "指定した構文に対してプロファイルを定義するか、特定の規則がある独自のプロファイルをご使用ください。", - "triggerExpansionOnTab": "これをオンにすると、TAB キーを押したときに Emmet の省略形が展開されます。" + "triggerExpansionOnTab": "これをオンにすると、TAB キーを押したときに emmet 省略記法が展開されます." } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..44fd3bef985 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "開く", + "extensions.openSide": "横に並べて開く" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index 0c041168f06..86d92a2c5c3 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "名前", "debuggers": "デバッガー ({0})", "default": "既定", + "dependencies": "依存関係", "description": "説明", "details": "詳細", + "extension id": "拡張機能の識別子", "file extensions": "ファイル拡張子", "grammar": "文章校正", + "install count": "インストール数", "keyboard shortcuts": "キーボード ショートカット(&&K)", "language id": "ID", "language name": "名前", "languages": "言語 ({0})", "license": "ライセンス", "menuContexts": "メニュー コンテキスト", + "name": "拡張機能名", "noChangelog": "使用可能な CHANGELOG はありません。", "noReadme": "利用できる README はありません。", + "publisher": "発行者名", + "rating": "評価", "setting name": "名前", "settings": "設定 ({0})", "snippets": "スニペット", diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index c49c36e3901..418b45f7b5f 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "無効な拡張機能の構成", + "disableWorkspaceExtensions": "無効な拡張機能の構成 (ワークスペース)", "extension": "拡張機能", "extensions": "拡張機能", "extensionsAutoUpdate": "拡張機能を自動的に更新します", diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 11eac847684..c0df2e4ce1e 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "推奨事項はワークスペース フォルダーでのみ利用可能です。", "OpenExtensionsFile.failed": "'.vscode' ファルダー ({0}) 内に 'extensions.json' ファイルを作成できません。", + "OpenGlobalExtensionsStorageFile.failed": "'{0}' フォルダー ({1}) 内に 'extensions.json' ファイルを作成できませんでした。", "builtin": "ビルトイン", "clearExtensionsInput": "拡張機能の入力のクリア", - "configureWorkspaceRecommendedExtensions": "ワークスペースのおすすめの拡張機能を構成する", + "configureWorkspaceRecommendedExtensions": "お勧めの拡張機能の構成 (ワークスペース)", "deleteSure": "'{0}' をアンインストールしてもよろしいですか?", "enableAction": "有効", "installAction": "インストール", @@ -19,6 +20,7 @@ "postUninstallMessage": "'{0}' は正常にアンインストールされました。非アクティブ化するには再起動してください。", "restart": "この拡張機能を有効にするには、VS Code のこのウィンドウを再起動する必要があります。\n\n続行しますか?", "restartNow": "今すぐ再起動", + "showDisabledExtensions": "無効な拡張機能の表示", "showInstalledExtensions": "インストール済みの拡張機能の表示", "showOutdatedExtensions": "古くなった拡張機能の表示", "showPopularExtensions": "人気の拡張機能の表示", diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index ad5da97400f..459dfed879d 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "予期される形式 '${publisher}.${name}'。例: 'vscode.csharp'。", "app.extensions.json.recommendations": "拡張機能のおすすめ候補の一覧。拡張機能の ID は常に '${publisher}.${name}' です。例: 'vscode.csharp'。", - "app.extensions.json.title": "拡張機能" + "app.extensions.json.title": "拡張機能", + "app.extensionsstorage.json.disabled": "無効な拡張機能の一覧。拡張機能の識別子は常に '${publisher}.${name}' です。たとえば、'vscode.csharp' です。", + "app.extensionsstorage.json.title": "拡張機能の記憶域" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index abb7047ea7f..19a423115cd 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "並べ替え順序: ↑", "descending": "並べ替え順序: ↓", "extensions": "拡張機能", + "no extensions found": "拡張機能が見つかりません", "outdatedExtensions": "{0} 古くなった拡張機能", "searchExtensions": "Marketplace で拡張機能を検索する", "sort by installs": "並べ替え: インストール数", diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index c3f8eab1ec6..749fad85a91 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "拡張機能", - "extensionsInstalling": "拡張機能 ({0} 個をインストール中...)", - "multipleIssues": "拡張機能 ({0} 個の問題)", - "multipleUpdates": "拡張機能 ({0} 個の更新プログラムが利用可能)", - "oneIssue": "拡張機能 (1 つの問題)", - "oneUpdate": "拡張機能 (1 つの更新プログラムが利用可能)" + "active": "アクティブ", + "disabled": "無効", + "disabledWorkspace": "無効 (ワークスペース)" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 88f5a51be64..92a8416066d 100644 --- a/i18n/jpn/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "横に並べて開く", "pasteFile": "貼り付け", "permDelete": "完全に削除", + "pickHistory": "比較するエディター履歴エントリを選ぶ", "refresh": "最新の情報に更新", "refreshExplorer": "エクスプローラーを最新表示する", "rename": "名前変更", diff --git a/i18n/jpn/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/git/browser/gitActions.i18n.json index d4834f3cd33..e91ec262f83 100644 --- a/i18n/jpn/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Git リモートで認証が失敗しました。", + "cancel": "キャンセル", "cleanChangesLabel": "変更を取り除く(&&C)", "commit": "Commit", "commitAll": "すべてコミット", @@ -22,16 +23,21 @@ "confirmUndoMessage": "変更をすべて取り除いてもよろしいですか?", "dirtyTreeCheckout": "チェック アウトできません。まず作業をコミットまたはステージングしてください。", "dirtyTreePull": "プルできません。まず作業をコミットまたはステージングしてください。", + "do you want to continue": "続行しますか?", "init": "初期化", "irreversible": "このアクションは元に戻すことができません。", + "never again": "OK、今後は表示しない", + "ok": "OK", "openChange": "変更を開く", "openFile": "ファイルを開く", "publish": "公開", "publishPickMessage": "リモートを選んで、ブランチ '{0}' を次に公開します:", + "pushToRemote": "プッシュ先...", + "pushToRemotePickMessage": "リモートを選んで、ブランチ '{0}' を次にプッシュします:", "refresh": "最新の情報に更新", "stageAllChanges": "すべてステージング", "stageChanges": "ステージ", - "sureSync": "Git リポジトリを同期しますか?", + "sync is unpredictable": "このアクションはコミットを '{0}' との間でプッシュしたりプルしたりします。", "undoAllChanges": "すべて取り除く", "undoChanges": "取り除く", "undoLastCommit": "前回のコミットを元に戻す", diff --git a/i18n/jpn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/jpn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..1030fc85a7a --- /dev/null +++ b/i18n/jpn/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "コピー" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json index 4bc26eecf73..86ee4186a5b 100644 --- a/i18n/jpn/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/nps/electron-browser/nps.contribution.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "neverAgain": "次回から表示しない", + "neverAgain": "今後は表示しない", "remindLater": "後で通知する", "surveyQuestion": "短いフィードバック アンケートにご協力をお願いできますか?", "takeSurvey": "アンケートの実施" diff --git a/i18n/jpn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index cb00cb26d94..d483f50bc67 100644 --- a/i18n/jpn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "検索でファイルとフォルダーを除外するために glob パターンを構成します。files.exclude 設定からすべての glob パターンを継承します。", "exclude.boolean": "ファイル パスの照合基準となる glob パターン。これを true または false に設定すると、パターンがそれぞれ有効/無効になります。", "exclude.when": "一致するファイルの兄弟を追加的に検査します。一致するファイル名の変数として $(basename) を使用します。", + "findInFiles": "フォルダーを指定して検索", "findInFolder": "フォルダー内を検索", "name": "検索", "openAnythingHandlerDescription": "ファイルに移動する", "openSymbolDescriptionNormal": "ワークスペース内のシンボルへ移動", "search.quickOpen.includeSymbols": "グローバル シンボル検索の結果を、Quick Open の結果ファイルに含めるように構成します。", "searchConfigurationTitle": "検索", + "showSearchViewlet": "検索の表示", "showTriggerActions": "ワークスペース内のシンボルへ移動...", "view": "表示" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 2131cf85b74..8ee63e10ec4 100644 --- a/i18n/jpn/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "削除", "file.replaceAll.label": "すべて置換", "findInFolder": "フォルダー内を検索", - "focusNextInputbox": "次の入力ボックスにフォーカス", - "focusPreviousInputbox": "前の入力ボックスにフォーカス", + "focusNextInputBox": "次の入力ボックスにフォーカス", + "focusPreviousInputBox": "前の入力ボックスにフォーカス", "match.replace.label": "置換", "nextSearchTerm": "次の検索語句を表示", "previousSearchTerm": "前の検索語句を表示", - "replaceInFiles": "複数のファイルで置換", - "showSearchViewlet": "検索の表示" + "replaceInFiles": "複数のファイルで置換" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 49607f9f131..97619d13033 100644 --- a/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "起動したプロセスは既に存在しません。タスクを起動したバックグラウンド タスクが VS コードで終了すると、プロセスが孤立することがあります。", "TestAction.label": "テスト タスクの実行", "manyMarkers": "99+", + "problems": "問題", "taskCommands": "タスクの実行", "tasks": "タスク", "tasksCategory": "タスク" diff --git a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 2499e1dc106..95e5ea3526a 100644 --- a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "端末が Windows で使用するシェルのパス。Windows に付属のシェル (cmd、PowerShell、または Bash on Ubuntu) を使用する場合、64 ビット バージョンを使用するには、C:WindowsSystem32 ではなく、C:Windowssysnative を選びます。", "terminal.integrated.shellArgs.linux": "Linux 端末で使用するコマンド ライン引数。", "terminal.integrated.shellArgs.osx": "OS X 端末で使用するコマンド ライン引数。", + "terminal.integrated.shellArgs.windows": "Windows ターミナル上の場合に使用されるコマンド ライン引数。", "terminalCategory": "端末", "terminalIntegratedConfigurationTitle": "統合端末", "viewCategory": "表示" diff --git a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index d4dee2eaa7e..f69420b3b93 100644 --- a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "アクティブな端末で選択したテキストを実行", "workbench.action.terminal.scrollDown": "下にスクロール (行)", "workbench.action.terminal.scrollDownPage": "スクロール ダウン (ページ)", + "workbench.action.terminal.scrollToBottom": "一番下にスクロール", + "workbench.action.terminal.scrollToTop": "一番上にスクロール", "workbench.action.terminal.scrollUp": "上にスクロール (行)", "workbench.action.terminal.scrollUpPage": "スクロール アップ (ページ)", "workbench.action.terminal.switchTerminalInstance": "スイッチ端末インスタンス", diff --git a/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 22ad19287bd..c092dbd7301 100644 --- a/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,11 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "閉じる", - "insiderBuilds": "Insider ビルドがデイリー ビルドになります!", + "insiderBuilds": "Insider ビルドが毎日リリースされます。", "license": "ライセンスの閲覧", "licenseChanged": "ライセンス条項が変更されました。内容をご確認ください。", - "neverShowAgain": "次回から表示しない", + "neverShowAgain": "今後は表示しない", "read the release notes": "{0} v{1} へようこそ! リリース ノートを確認しますか?", "readmore": "詳細を参照", "release notes": "リリース ノート" diff --git a/i18n/jpn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/jpn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..87f446dc568 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "カーソルの追加 (上/下)", + "watermark.moveLines": "行の移動 (上/下)", + "watermark.quickOpen": "ファイルに移動する", + "watermark.showCommands": "コマンド パレット", + "watermark.toggleTerminal": "端末の切り替え", + "watermark.unboundCommand": "バインドなし" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..7509143aae8 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "拡張機能ホストが予期せずに終了しました。回復するには、ウィンドウを再度読み込んでください。", + "extensionHostProcess.error": "拡張機能ホストからのエラー: {0}", + "extensionHostProcess.startupFail": "拡張機能ホストが 10 秒以内に開始されませんでした。問題が発生している可能性があります。", + "extensionHostProcess.startupFailDebug": "拡張機能ホストが 10 秒以内に開始されませんでした。先頭行で停止している可能性があり、続行するにはデバッガーが必要です。", + "extensionUnderDevelopment": "開発の拡張機能を {0} に読み込んでいます", + "overwritingExtension": "拡張機能 {0} を {1} で上書きしています。" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/jpn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index b4d335a7eeb..558cca1df2e 100644 --- a/i18n/jpn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/jpn/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": ".NET Framework 4.5 をダウンロードします", "netVersionError": "Microsoft .NET Framework 4.5 が必要です。リンクに移動してインストールしてください。", + "neverShowAgain": "今後は表示しない", "trashFailed": "'{0}' をごみ箱に移動できませんでした" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/jpn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..30a1eddb584 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "'{0}' の保存に失敗しました: {1}", + "saveFileFirst": "ファイルがダーティです。まず保存してから、別のエンコードで再度開いてください。" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/jpn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..86f4a1b1788 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "すべてのファイル", + "cancel": "キャンセル", + "dontSave": "保存しない(&&N)", + "moreFile": "...1 つの追加ファイルが表示されていません", + "moreFiles": "...{0} 個の追加ファイルが表示されていません", + "noExt": "拡張機能なし", + "save": "保存(&&S)", + "saveAll": "すべて保存(&&S)", + "saveChangesDetail": "保存しないと変更内容が失われます。", + "saveChangesMessage": "{0} に加えた変更を保存しますか?", + "saveChangesMessages": "次の {0} ファイルに対する変更を保存しますか?" +} \ No newline at end of file diff --git a/i18n/kor/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/kor/extensions/typescript/out/typescriptServiceClient.i18n.json index db6371d7deb..aa1c3718e0f 100644 --- a/i18n/kor/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/kor/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -20,6 +20,6 @@ "updatedtsdk": "작업 영역 설정 'typescript.tsdk'를 {0}(으)로 업데이트했습니다.", "use": "작업 영역({0}) 사용", "useBundled": "번들({0}) 사용", - "versionMismatch": "전역으로 설치된 tsc 컴파일러({0})와 VS Code의 언어 서비스({1}) 간 버전 불일치가 발견되었습니다. 따라서 일관되지 않은 컴파일 오류가 발생할 수 있습니다.", + "versionMismatch": "버전이 일치하지 않습니다. 전역 tsc({0})가 VS 코드의 언어 서비스({1})와 다릅니다. 일관되지 않은 컴파일 오류가 발생할 수 있습니다.", "versionNumber.custom": "사용자 지정" } \ No newline at end of file diff --git a/i18n/kor/extensions/typescript/package.i18n.json b/i18n/kor/extensions/typescript/package.i18n.json index bce1152cca8..3d6c7281829 100644 --- a/i18n/kor/extensions/typescript/package.i18n.json +++ b/i18n/kor/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "쉼표 구분 기호 뒤에 오는 공백 처리를 정의합니다.", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "익명 함수의 function 키워드 뒤에 오는 공백 처리를 정의합니다.", "format.insertSpaceAfterKeywordsInControlFlowStatements": "제어 흐름 문의 키워드 뒤에 오는 공백 처리를 정의합니다.", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "JSX 식의 여는 중괄호 뒤와 닫는 중괄호 앞의 공백 처리를 정의합니다. TypeScript 2.0.6 이상이 필요합니다.", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "비어 있지 않은 여는 대괄호 뒤와 닫는 대괄호 앞에 오는 공백 처리를 정의합니다.", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "비어 있지 않은 여는 괄호 뒤와 닫는 괄호 앞에 오는 공백 처리를 정의합니다.", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "템플릿 문자열의 여는 중괄호 뒤와 닫는 중괄호 앞의 공백 처리를 정의합니다. TypeScript 2.0.6 이상이 필요합니다.", "format.insertSpaceAfterSemicolonInForStatements": " for 문에서 세미콜론 뒤에 오는 공백 처리를 정의합니다.", "format.insertSpaceBeforeAndAfterBinaryOperators": "이항 연산자 뒤에 오는 공백 처리를 정의합니다.", "format.placeOpenBraceOnNewLineForControlBlocks": "제어 블록의 새 줄에 여는 중괄호를 넣을지 정의합니다.", @@ -18,6 +20,7 @@ "javascript.validate.enable": "JavaScript 유효성 검사 사용/사용 안 함", "typescript.check.tscVersion": "전역 설치 TypeScript 컴파일러(예: tsc)가 사용된 TypeScript 언어 서비스와 다른지 확인하세요.", "typescript.check.workspaceVersion": "TypeScript 버전을 작업 영역에서 사용할 수 있는지 확인하세요.", + "typescript.experimentalAutomaticTypeAcquisition": "자동 형식 인식을 사용하도록 설정합니다. TypeScript 2.0.6 이상이 필요하며 변경 후 다시 시작해야 합니다.", "typescript.reloadProjects.title": "TypeScript 프로젝트 다시 로드", "typescript.tsdk.desc": "사용할 tsserver 및 lib*.d.ts 파일이 들어 있는 폴더 경로를 지정합니다.", "typescript.tsdk_version.desc": "tsserver의 버전을 지정합니다. tsserver가 npm을 사용하여 설치되지 않은 경우에만 필요합니다.", diff --git a/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json index cf596842217..168dde02a5e 100644 --- a/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "글꼴 크기(픽셀)를 제어합니다.", "fontWeight": "글꼴 두께를 제어합니다.", "formatOnType": "입력 후 편집기에서 자동으로 줄의 서식을 지정할지 여부를 제어합니다.", + "glyphMargin": "편집기에서 세로 문자 모양 여백을 렌더링할지 여부를 제어합니다. 문자 모양 여백은 주로 디버깅에 사용됩니다.", "hideCursorInOverviewRuler": "커서가 개요 눈금자에서 가려져야 하는지 여부를 제어합니다.", "ignoreTrimWhitespace": "diff 편집기에서 선행 공백 또는 후행 공백 변경을 diffs로 표시할지 여부를 제어합니다.", "insertSpaces": " 키를 누를 때 공백을 삽입합니다. `editor.detectIndentation`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.", @@ -28,7 +29,7 @@ "overviewRulerLanes": "개요 눈금자에서 동일한 위치에 표시될 수 있는 장식 수를 제어합니다.", "parameterHints": "매개 변수 힌트를 사용하도록 설정합니다.", "quickSuggestions": "입력하는 동안 빠른 제안을 표시할지 여부를 제어합니다.", - "quickSuggestionsDelay": "빠른 제안을 표시할 지연 시간(밀리초)을 제어합니다.", + "quickSuggestionsDelay": "빠른 제안을 표시할 지연 시간(ms)을 제어합니다.", "renderControlCharacters": "편집기에서 제어 문자를 렌더링할지를 제어합니다.", "renderIndentGuides": "편집기에서 들여쓰기 가이드를 렌더링할지를 제어합니다.", "renderLineHighlight": "편집기가 현재 줄 강조 표시를 렌더링하는지 여부를 제어합니다.", @@ -40,7 +41,9 @@ "selectionHighlight": "편집기에서 선택 항목과 유사한 일치 항목을 강조 표시할지 여부를 제어합니다.", "sideBySide": "diff 편집기에서 diff를 나란히 표시할지 인라인으로 표시할지 여부를 제어합니다.", "snippetSuggestions": "코드 조각이 다른 추천과 함께 표시되는지 여부 및 정렬 방법을 제어합니다.", - "stablePeek": "해당 콘텐츠를 두 번 클릭하거나 Esc 키를 누르더라도 미리 보기 편집기를 열린 상태로 유지합니다.", + "stablePeek": "해당 콘텐츠를 두 번 클릭하거나 키를 누르더라도 Peek 편집기를 열린 상태로 유지합니다.", + "suggestFontSize": "제안 위젯의 글꼴 크기", + "suggestLineHeight": "제안 위젯의 줄 높이", "suggestOnTriggerCharacters": "트리거 문자를 입력할 때 제안을 자동으로 표시할지 여부를 제어합니다.", "tabCompletion": "접두사가 일치하는 경우 코드 조각을 삽입합니다. 'quickSuggestions'를 사용하지 않을 때 가장 잘 작동합니다.", "tabSize": "탭 한 개에 해당하는 공백 수입니다. `editor.detectIndentation`이 켜져 있는 경우 이 설정은 파일 콘텐츠에 따라 재정의됩니다.", diff --git a/i18n/kor/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/kor/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index dc81c90dc00..2094e80e9f3 100644 --- a/i18n/kor/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/kor/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "측면에서 정의 열기", "actions.previewDecl.label": "정의 피킹(Peeking)", "meta.title": " – 정의 {0}개", - "multipleResults": "발견된 {0} 정의를 보려면 클릭하세요." + "multipleResults": "{0}개 정의를 표시하려면 클릭하세요." } \ No newline at end of file diff --git a/i18n/kor/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/kor/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index 1b3f572f3e0..70e90be680c 100644 --- a/i18n/kor/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/kor/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "수정 사항 표시", + "quickFixWithKb": "수정 사항 표시({0})", "quickfix.trigger.label": "빠른 수정" } \ No newline at end of file diff --git a/i18n/kor/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/kor/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 23defdcd329..ee860687c51 100644 --- a/i18n/kor/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/kor/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "메뉴 항목이 동일한 명령을 기본값과 alt 명령으로 참조합니다.", "menuId.invalid": "`{0}`은(는) 유효한 메뉴 식별자가 아닙니다.", "menus.editorContext": "편집기 상황에 맞는 메뉴", + "menus.editorTabContext": "편집기 탭 상황에 맞는 메뉴", "menus.editorTitle": "편집기 제목 메뉴", "menus.explorerContext": "파일 탐색기 상황에 맞는 메뉴", "missing.altCommand": "메뉴 항목이 '명령' 섹션에 정의되지 않은 alt 명령 `{0}`을(를) 참조합니다.", diff --git a/i18n/kor/src/vs/platform/environment/node/argv.i18n.json b/i18n/kor/src/vs/platform/environment/node/argv.i18n.json index c64f8c1846f..39e8a481c74 100644 --- a/i18n/kor/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/kor/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "diff 편집기를 엽니다. 인수로 두 개의 파일 경로를 전달해야 합니다.", "disableExtensions": "설치된 모든 확장을 사용하지 않도록 설정합니다.", + "disableGPU": "GPU 하드웨어 가속을 사용하지 않도록 설정합니다.", "extensionHomePath": "확장의 루트 경로를 설정합니다.", "goto": "줄과 열에 있는 경로의 파일을 엽니다(경로에 :line[:column] 추가).", "gotoValidation": "`--goto` 모드에서 인수는 `FILE(:LINE(:COLUMN))` 형식이어야 합니다.", @@ -19,6 +20,7 @@ "paths": "경로", "performance": "'Developer: Startup Performance' 명령을 사용하여 시작합니다.", "reuseWindow": "마지막 활성 창에서 파일 또는 폴더를 강제로 엽니다.", + "showVersions": "--list-extension을 사용할 경우 설치된 확장의 버전을 표시합니다.", "uninstallExtension": "확장을 제거합니다.", "usage": "사용법", "userDataDir": "사용자 데이터가 저장되는 디렉터리를 지정합니다(루트로 실행할 경우 유용함).", diff --git a/i18n/kor/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/kor/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index c2f0cbb36be..660a9006bea 100644 --- a/i18n/kor/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/kor/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "속성 `{0}`은(는) 필수이며 `string` 형식이어야 합니다.", "extensionDescription.version": "속성 `{0}`은(는) 필수이며 `string` 형식이어야 합니다.", "vscode.extension.activationEvents": "VS Code 확장에 대한 활성화 이벤트입니다.", + "vscode.extension.badges": "마켓플레이스 확장 페이지의 사이드바에 표시할 배지의 배열입니다.", + "vscode.extension.badges.description": "배지 설명입니다.", + "vscode.extension.badges.href": "배지 링크입니다.", + "vscode.extension.badges.url": "배지 이미지 URL입니다.", "vscode.extension.categories": "확장을 분류하기 위해 VS Code 갤러리에서 사용하는 범주입니다.", "vscode.extension.contributes": "이 패키지에 표시된 VS Code 확장의 전체 기여입니다.", "vscode.extension.displayName": "VS Code 갤러리에 사용되는 확장의 표시 이름입니다.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "VS Code 마켓플레이스에 사용되는 배너입니다.", "vscode.extension.galleryBanner.color": "VS Code 마켓플레이스 페이지 머리글의 배너 색상입니다.", "vscode.extension.galleryBanner.theme": "배너에 사용되는 글꼴의 색상 테마입니다.", + "vscode.extension.icon": "128x128 픽셀 아이콘의 경로입니다.", + "vscode.extension.preview": "마켓플레이스에서 Preview로 플래그 지정할 확장을 설정합니다.", "vscode.extension.publisher": "VS Code 확장의 게시자입니다.", "vscode.extension.scripts.prepublish": "패키지가 VS Code 확장 형태로 게시되기 전에 스크립트가 실행되었습니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/kor/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index fc3c936fefc..2ad17264baf 100644 --- a/i18n/kor/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/kor/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "사이드바 위치 설정/해제", + "toggleLocation": "사이드바 위치 설정/해제", "view": "보기" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/kor/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index d6f1a2cc975..2fbd5cf970e 100644 --- a/i18n/kor/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/kor/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "닫기", "focusPanel": "패널로 포커스 이동", + "toggleMaximizedPanel": "최대화된 패널 설정/해제", "togglePanel": "패널 설정/해제", "view": "보기" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/kor/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 1f0ae65ec62..229115ff9f4 100644 --- a/i18n/kor/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/kor/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "입력을 확인하려면 'Enter' 키를 누르고, 취소하려면 'Esc' 키를 누르세요.", "inputModeEntryDescription": "{0}(확인하려면 'Enter' 키를 누르고, 취소하려면 'Escape' 키를 누름)", "noResultsFound1": "결과 없음", - "quickOpenInput": "'?'를 입력하면 여기에서 수행할 수 있는 작업에 대한 도움말을 확인할 수 있습니다." + "pickHistory": "기록에서 제거할 편집기 항목 선택", + "quickOpenInput": "'?'를 입력하면 여기에서 수행할 수 있는 작업에 대한 도움말을 확인할 수 있습니다.", + "removeFromEditorHistory": "편집기 기록에서 제거" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/kor/src/vs/workbench/electron-browser/actions.i18n.json index 768514c6e9f..ef9aa936d3b 100644 --- a/i18n/kor/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/kor/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "폴더 닫기", "closeMessages": "알림 메시지 닫기", "closeWindow": "창 닫기", + "current": "현재 창", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "파일", "folders": "폴더", diff --git a/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json index b6881fe503c..7d8003ba320 100644 --- a/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "창이 전체 화면 모드에서 종료된 경우 창을 전체 화면 모드로 복원할지 여부를 제어합니다.", "showEditorTabs": "열려 있는 편집기를 탭에서 표시할지 여부를 제어합니다.", "showIcons": "열린 편집기를 아이콘과 함께 표시할지 여부를 제어합니다. 이를 위해서는 아이콘 테마도 사용하도록 설정해야 합니다.", + "sideBarLocation": "사이드바의 위치를 제어합니다. 워크벤치의 왼쪽이나 오른쪽에 표시될 수 있습니다.", + "statusBarVisibility": "워크벤치 아래쪽에서 상태 표시줄의 표시 유형을 제어합니다.", "updateChannel": "업데이트 채널에서 자동 업데이트를 받을지 여부를 구성합니다. 변경 후 다시 시작해야 합니다.", "updateConfigurationTitle": "업데이트", "view": "보기", diff --git a/i18n/kor/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 1267f9cbb45..519f74af648 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "{0} 줄에 중단점 조건을 입력합니다. 이 조건이 true인 경우에만 프로그램이 중지됩니다. 수락하려면 Enter 키를 누르고, 취소하려면 Esc 키를 누르세요.", - "breakpointWidgetPlaceholder": "{0} 줄의 중단점은 이 조건이 true인 경우에만 중지됩니다. 수락하려면 'Enter' 키를 누르고, 취소하려면 'esc' 키를 누르세요." + "breakpointWidgetAriaLabel": "이 조건이 true인 경우에만 프로그램이 여기서 중지됩니다. 수락하려면 키를 누르고, 취소하려면 키를 누르세요.", + "breakpointWidgetExpressionPlaceholder": "식이 true로 계산될 경우 중단", + "breakpointWidgetHitCountAriaLabel": "적중 횟수가 충족되는 경우에만 프로그램이 여기서 중지됩니다. 수락하려면 키를 누르고, 취소하려면 키를 누르세요.", + "breakpointWidgetHitCountPlaceholder": "적중 횟수 조건이 충족될 경우 중단", + "expression": "식", + "hitCount": "적중 횟수" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index fbc8af5c76a..97e70d80fea 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "중단점 활성화", - "addConditionalBreakpoint": "조건부 중단점 추가", + "addConditionalBreakpoint": "조건부 중단점 추가...", "addFunctionBreakpoint": "함수 중단점 추가", "addToWatchExpressions": "조사식에 추가", "addWatchExpression": "식 추가", "clearRepl": "콘솔 지우기", - "conditionalBreakpointEditorAction": "디버그: 조건부 중단점", + "conditionalBreakpointEditorAction": "디버그: 조건부 중단점 추가...", "continueDebug": "계속", "deactivateBreakpoints": "중단점 비활성화", "debugActionLabelAndKeybinding": "{0}({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "포커스 디버그 콘솔", "disableAllBreakpoints": "모든 중단점 해제", "disconnectDebug": "연결 끊기", - "editConditionalBreakpoint": "중단점 편집", + "editConditionalBreakpoint": "중단점 편집...", "enableAllBreakpoints": "모든 중단점 설정", "launchJsonNeedsConfigurtion": "'launch.json' 구성 또는 수정", "openLaunchJson": "{0} 열기", diff --git a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index c6d612c178f..c92508b7198 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "확장명에 관계없이 모든 파일에 대한 중단점을 설정할 수 있습니다.", "debug": "디버그", "debugCategory": "디버그", + "debugConfigurationTitle": "디버그", "debugErrorEditor": "디버그 오류", "debugPanel": "디버그 콘솔", "launchConfigDoesNotExist": "시작 구성 '{0}'이(가) 없습니다.", + "openExplorerOnEnd": "디버그 세션 끝에 탐색기 뷰렛을 자동으로 엽니다.", "toggleDebugPanel": "디버그 콘솔", "toggleDebugViewlet": "디버그 표시", "view": "보기" diff --git a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index eaa06eac948..c4165e7cf36 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "REPL 입력 수락", "actions.repl.historyNext": "기록 다음", "actions.repl.historyPrevious": "기록 이전", - "replAriaLabel": "읽기 평가 인쇄 루프 패널" + "replAriaLabel": "read–eval–print loop 패널" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index 0a2c74e3cb8..9494821fa79 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "클릭하여 이동(측면에서 열려면 Ctrl 키를 누르고 클릭)", "fileLinkMac": "클릭하여 이동(측면에서 열려면 Cmd 키를 누르고 클릭)", - "replExpressionAriaLabel": "{0} 식에 {1} 값이 있습니다. 읽기 평가 인쇄 루프, 디버그", - "replKeyValueOutputAriaLabel": "출력 변수 {0}에 값 {1}이(가) 있습니다. 읽기 평가 인쇄 루프, 디버그", - "replValueOutputAriaLabel": "{0}, 읽기 평가 인쇄 루프, 디버그", - "replVariableAriaLabel": "{0} 변수에 {1} 값이 있습니다. 읽기 평가 인쇄 루프, 디버그", + "replExpressionAriaLabel": "{0} 식에 {1} 값이 있습니다. read–eval–print loop, 디버그", + "replKeyValueOutputAriaLabel": "출력 변수 {0}에 값 {1}이(가) 있습니다. read–eval–print loop, 디버그", + "replValueOutputAriaLabel": "{0}, read–eval–print loop, 디버그", + "replVariableAriaLabel": "{0} 변수에 {1} 값이 있습니다. read–eval–print loop, 디버그", "stateCapture": "개체 상태는 첫 번재 평가에서 캡처됩니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index fa8bbdb468a..923b2c8d9b9 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "'.vscode' 폴더({0}) 내에 'launch.json' 파일을 만들 수 없습니다.", - "app.launch.json.configurations": "구성 목록입니다. 새 구성을 추가하거나 기존 구성을 편집합니다.", + "app.launch.json.configurations": "구성 목록입니다. IntelliSense를 사용하여 새 구성을 추가하거나 기존 구성을 편집합니다.", "app.launch.json.title": "시작", "app.launch.json.version": "이 파일 형식의 버전입니다.", "debugNoType": "디버그 어댑터 '형식'은 생략할 수 없으며 '문자열' 형식이어야 합니다.", "duplicateDebuggerType": "디버그 형식 '{0}'은(는) 이미 등록되어 있고 '{1}' 특성을 포함합니다. '{1}' 특성을 무시합니다.", - "interactiveVariableNotFound": "{0} 어댑터가 시작 구성에 지정된 {1} 변수에 영향을 주지 않습니다.", "selectDebug": "환경 선택", "vscode.extension.contributes.breakpoints": "중단점을 적용합니다.", "vscode.extension.contributes.breakpoints.language": "이 언어에 대해 중단점을 허용합니다.", diff --git a/i18n/kor/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json b/i18n/kor/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json index dfb3611ad08..03ce239d162 100644 --- a/i18n/kor/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json @@ -6,7 +6,7 @@ { "console.title": "VS Code 콘솔", "linux.term.failed": "'{0}'에서 실패했습니다(종료 코드: {1}).", - "mac.terminal.script.failed": "스크립트 '{0}'에 실패했습니다(종료 코드: {1}).", + "mac.terminal.script.failed": "스크립트 '{0}'이(가) 실패했습니다(종료 코드: {1}).", "mac.terminal.type.not.supported": "'{0}'이(가) 지원되지 않습니다.", "press.any.key": "계속하려면 아무 키나 누르세요." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..4d3827236e1 --- /dev/null +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "열기", + "extensions.openSide": "측면에서 열기" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index e1d48e2d069..3e679294389 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "이름", "debuggers": "디버거({0})", "default": "기본값", + "dependencies": "종속성", "description": "설명", "details": "세부 정보", + "extension id": "확장 ID", "file extensions": "파일 확장명", "grammar": "문법", + "install count": "설치 수", "keyboard shortcuts": "바로 가기 키(&&K)", "language id": "ID", "language name": "이름", "languages": "언어({0})", "license": "라이선스", "menuContexts": "메뉴 컨텍스트", + "name": "확장 이름", "noChangelog": "CHANGELOG를 사용할 수 없습니다.", "noReadme": "사용 가능한 추가 정보가 없습니다.", + "publisher": "게시자 이름", + "rating": "등급", "setting name": "이름", "settings": "설정({0})", "snippets": "코드 조각", diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index 41ce54245d5..8f1e87990aa 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "사용할 수 없는 확장 구성", + "disableWorkspaceExtensions": "사용할 수 없는 확장 구성(작업 영역)", "extension": "확장", "extensions": "확장", "extensionsAutoUpdate": "자동으로 확장 업데이트", diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 10cd2c2d7ab..33d5f7f1ebd 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "권장 사항은 작업 영역 폴더에서만 사용할 수 있습니다.", "OpenExtensionsFile.failed": "'.vscode' 폴더 내에 'extensions.json' 파일을 만들 수 없습니다({0}).", + "OpenGlobalExtensionsStorageFile.failed": "'{0}' 폴더 내에 'extensions.json' 파일을 만들 수 없습니다({1}).", "builtin": "기본 제공", "clearExtensionsInput": "확장 입력 지우기", - "configureWorkspaceRecommendedExtensions": "작업 영역 권장 확장 구성", + "configureWorkspaceRecommendedExtensions": "권장 확장 구성(작업 영역)", "deleteSure": "'{0}'을(를) 제거할까요?", "enableAction": "사용", "installAction": "설치", @@ -19,6 +20,7 @@ "postUninstallMessage": "'{0}'이(가) 제거되었습니다. 비활성화하려면 다시 시작하세요.", "restart": "이 확장을 사용하도록 설정하려면 이 VS Code 창을 다시 시작해야 합니다.\n\n계속할까요?", "restartNow": "지금 다시 시작", + "showDisabledExtensions": "사용할 수 없는 확장 표시", "showInstalledExtensions": "설치된 확장 표시", "showOutdatedExtensions": "만료된 확장 표시", "showPopularExtensions": "자주 사용되는 확장 표시", diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index 711ef1cb13d..9437ca8c75f 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "필요한 형식은 '${publisher}.${name}'입니다. 예: 'vscode.csharp'", "app.extensions.json.recommendations": "확장 권장 목록입니다. 확장의 식별자는 항상 '${publisher}.${name}'입니다. 예: 'vscode.csharp'", - "app.extensions.json.title": "확장" + "app.extensions.json.title": "확장", + "app.extensionsstorage.json.disabled": "사용할 수 없는 확장 목록입니다. 확장 ID는 항상 '${publisher}.${name}'입니다(예: 'vscode.csharp').", + "app.extensionsstorage.json.title": "확장 저장소" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 69c4e337b87..642bed7480e 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "정렬 순서: ↑", "descending": "정렬 순서: ↓", "extensions": "확장", + "no extensions found": "확장을 찾을 수 없습니다.", "outdatedExtensions": "{0}개의 만료된 확장", "searchExtensions": "마켓플레이스에서 확장 검색", "sort by installs": "정렬 기준: 설치 수", diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 487b664d371..cccc3f78e93 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "확장", - "extensionsInstalling": "확장({0} 설치 중...)", - "multipleIssues": "확장(문제 {0}개)", - "multipleUpdates": "확장(업데이트 {0}개 사용 가능)", - "oneIssue": "확장(문제 1개)", - "oneUpdate": "확장(업데이트 1개 사용 가능)" + "active": "활성", + "disabled": "사용 안 함", + "disabledWorkspace": "사용 안 함(작업 영역)" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/kor/src/vs/workbench/parts/files/browser/fileActions.i18n.json index d6cc263e989..e6ec699abf0 100644 --- a/i18n/kor/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "측면에서 열기", "pasteFile": "붙여넣기", "permDelete": "영구히 삭제", + "pickHistory": "비교할 편집기 기록 항목 선택", "refresh": "새로 고침", "refreshExplorer": "탐색기 새로 고침", "rename": "이름 바꾸기", diff --git a/i18n/kor/src/vs/workbench/parts/files/browser/files.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/files/browser/files.contribution.i18n.json index e08b48c62b2..8906eb00764 100644 --- a/i18n/kor/src/vs/workbench/parts/files/browser/files.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/files/browser/files.contribution.i18n.json @@ -7,7 +7,7 @@ "associations": "파일과 언어의 연결을 구성하세요(예: \"*.extension\": \"html\"). 이러한 구성은 설치된 언어의 기본 연결보다 우선 순위가 높습니다.", "autoReveal": "탐색기에서 파일을 열 때 자동으로 표시할지를 제어합니다.", "autoSave": "더티 파일 자동 저장을 제어합니다. 허용되는 값은 \"{0}\", \"{1}\", \"{2}\"(편집기가 포커스를 잃음), \"{3}\"(창이 포커스를 잃음)입니다. \"{4}\"(으)로 설정하는 경우 \"files.autoSaveDelay\"에서 지연을 구성할 수 있습니다.", - "autoSaveDelay": "더티 파일을 자동으로 저장할 때까지의 지연(밀리초)을 제어합니다. \"files.autoSave\"를 \"{0}\"(으)로 설정한 경우에만 적용됩니다.", + "autoSaveDelay": "더티 파일을 자동으로 저장할 때까지의 지연(ms)을 제어합니다. \"files.autoSave\"를 \"{0}\"(으)로 설정한 경우에만 적용됩니다.", "binaryFileEditor": "이진 파일 편집기", "dynamicHeight": "열려 있는 편집기 섹션의 높이가 요소 수에 따라 동적으로 조정되는지 여부를 제어합니다.", "enableDragAndDrop": "탐색기에서 끌어서 놓기를 통한 파일 및 폴더 이동을 허용하는지를 제어합니다.", diff --git a/i18n/kor/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/kor/src/vs/workbench/parts/git/browser/gitActions.i18n.json index a6923e9caf4..38b69396dca 100644 --- a/i18n/kor/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "원격 git에 대한 인증이 실패했습니다.", + "cancel": "취소", "cleanChangesLabel": "변경 내용 정리(&&C)", "commit": "Commit", "commitAll": "모두 커밋", @@ -22,16 +23,21 @@ "confirmUndoMessage": "모든 변경 내용을 정리할까요?", "dirtyTreeCheckout": "체크 아웃할 수 없습니다. 먼저 작업을 커밋하거나 스테이지하세요.", "dirtyTreePull": "끌어올 수 없습니다. 먼저 작업을 커밋하거나 스테이지하세요.", + "do you want to continue": "계속하시겠습니까?", "init": "Init", "irreversible": "이 작업은 취소할 수 없습니다.", + "never again": "다시 표시 안 함", + "ok": "확인", "openChange": "변경 내용 열기", "openFile": "파일 열기", "publish": "게시", "publishPickMessage": "'{0}' 분기를 다음에 게시하려면 원격을 선택합니다.", + "pushToRemote": "푸시 대상...", + "pushToRemotePickMessage": "'{0}' 분기를 푸시할 원격 선택:", "refresh": "새로 고침", "stageAllChanges": "모두 스테이징", "stageChanges": "단계", - "sureSync": "Git 리포지토리를 동기화할까요?", + "sync is unpredictable": "이 작업은 '{0}' 간에 커밋을 푸시하고 풀합니다.", "undoAllChanges": "모두 정리", "undoChanges": "정리", "undoLastCommit": "마지막 커밋 실행 취소", diff --git a/i18n/kor/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/kor/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..0b93c67b9af --- /dev/null +++ b/i18n/kor/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "복사" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index faea574508e..3afca0dab12 100644 --- a/i18n/kor/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "검색에서 파일 및 폴더를 제외하도록 GLOB 패턴을 구성합니다. files.exclude 설정에서 모든 GLOB 패턴을 상속합니다.", "exclude.boolean": "파일 경로를 일치시킬 GLOB 패턴입니다. 패턴을 사용하거나 사용하지 않도록 설정하려면 true 또는 false로 설정하세요.", "exclude.when": "일치하는 파일의 형제에 대한 추가 검사입니다. $(basename)을 일치하는 파일 이름에 대한 변수로 사용하세요.", + "findInFiles": "파일에서 찾기", "findInFolder": "폴더에서 찾기", "name": "검색", "openAnythingHandlerDescription": "파일로 이동", "openSymbolDescriptionNormal": "작업 영역에서 기호로 이동", "search.quickOpen.includeSymbols": "Quick Open에 대한 파일 결과에 전역 기호 검색 결과를 포함하도록 구성합니다.", "searchConfigurationTitle": "검색", + "showSearchViewlet": "검색 표시", "showTriggerActions": "작업 영역에서 기호로 이동...", "view": "보기" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/kor/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 5255c68dab4..cc18ba59d47 100644 --- a/i18n/kor/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "제거", "file.replaceAll.label": "모두 바꾸기", "findInFolder": "폴더에서 찾기", - "focusNextInputbox": "다음 입력 상자에 포커스", - "focusPreviousInputbox": "이전 입력 상자에 포커스", + "focusNextInputBox": "다음 입력 상자에 포커스", + "focusPreviousInputBox": "이전 입력 상자에 포커스", "match.replace.label": "바꾸기", "nextSearchTerm": "다음 검색어 표시", "previousSearchTerm": "이전 검색어 표시", - "replaceInFiles": "파일에서 바꾸기", - "showSearchViewlet": "검색 표시" + "replaceInFiles": "파일에서 바꾸기" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 4da307212c1..de4f6be4a32 100644 --- a/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "시작된 프로세스가 더 이상 존재하지 않습니다. 작업에서 생성된, VS 코드를 끝내는 백그라운드 작업이 분리된 프로세스가 될 수 있습니다.", "TestAction.label": "테스트 작업 실행", "manyMarkers": "99+", + "problems": "문제", "taskCommands": "작업 실행", "tasks": "작업", "tasksCategory": "작업" diff --git a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index a7dc9e51f78..99b8a051924 100644 --- a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "터미널이 Windows에서 사용하는 셸의 경로입니다. Windows와 함께 제공되는 셸을 사용하는 경우(cmd, PowerShell 또는 Ubuntu의 Bash) 64비트 버전을 사용하려면 C:WindowsSystem32보다 C:Windowssysnative가 더 좋습니다.", "terminal.integrated.shellArgs.linux": "Linux 터미널에 있을 때 사용할 명령줄 인수입니다.", "terminal.integrated.shellArgs.osx": "OS X 터미널에 있을 때 사용할 명령줄 인수입니다.", + "terminal.integrated.shellArgs.windows": "Windows 터미널에 있을 때 사용할 명령줄 인수입니다.", "terminalCategory": "터미널", "terminalIntegratedConfigurationTitle": "통합 터미널", "viewCategory": "보기" diff --git a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index ebb5508db13..4090e5f95c3 100644 --- a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "활성 터미널에서 선택한 텍스트 실행", "workbench.action.terminal.scrollDown": "아래로 스크롤(줄)", "workbench.action.terminal.scrollDownPage": "아래로 스크롤(페이지)", + "workbench.action.terminal.scrollToBottom": "맨 아래로 스크롤", + "workbench.action.terminal.scrollToTop": "맨 위로 스크롤", "workbench.action.terminal.scrollUp": "위로 스크롤(줄)", "workbench.action.terminal.scrollUpPage": "위로 스크롤(페이지)", "workbench.action.terminal.switchTerminalInstance": "터미널 인스턴스 전환", diff --git a/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 2151b2d6d69..b1dbf23ce44 100644 --- a/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "닫기", - "insiderBuilds": "참가자 빌드가 일일 빌드가 되고 있습니다!", + "insiderBuilds": "참가자 빌드가 매일 릴리스됩니다.", "license": "라이선스 읽기", "licenseChanged": "사용 조건이 변경되었습니다. 자세히 읽어보세요.", "neverShowAgain": "다시 표시 안 함", diff --git a/i18n/kor/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/kor/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..b3745b0b87b --- /dev/null +++ b/i18n/kor/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "위/아래에 커서 추가", + "watermark.moveLines": "위/아래로 줄 이동", + "watermark.quickOpen": "파일로 이동", + "watermark.showCommands": "명령 팔레트", + "watermark.toggleTerminal": "터미널 설정/해제", + "watermark.unboundCommand": "바인딩 안 됨" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..7bcb80b79c2 --- /dev/null +++ b/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "확장 호스트가 예기치 않게 종료되었습니다. 복구하려면 창을 다시 로드하세요.", + "extensionHostProcess.error": "확장 호스트에서 오류 발생: {0}", + "extensionHostProcess.startupFail": "확장 호스트가 10초 이내에 시작되지 않았습니다. 문제가 발생했을 수 있습니다.", + "extensionHostProcess.startupFailDebug": "확장 호스트가 10초 내에 시작되지 않았습니다. 첫 번째 줄에서 중지되었을 수 있습니다. 계속하려면 디버거가 필요합니다.", + "extensionUnderDevelopment": "{0}에서 개발 확장 로드 중", + "overwritingExtension": "확장 {0}을(를) {1}(으)로 덮어쓰는 중입니다." +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/kor/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index 27bfccc410d..5f1a7a442f8 100644 --- a/i18n/kor/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/kor/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": ".NET Framework 4.5 다운로드", "netVersionError": "Microsoft .NET Framework 4.5가 필요합니다. 설치하려면 링크를 클릭하세요.", + "neverShowAgain": "다시 표시 안 함", "trashFailed": "'{0}'을(를) 휴지통으로 이동하지 못함" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/kor/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..33cd2f6b233 --- /dev/null +++ b/i18n/kor/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "'{0}'을(를) 저장하지 못했습니다. {1}", + "saveFileFirst": "더티 파일입니다. 다른 인코딩을 사용하여 파일을 다시 열기 전에 파일을 저장하세요." +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/kor/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..3b1be48a0a7 --- /dev/null +++ b/i18n/kor/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "모든 파일", + "cancel": "취소", + "dontSave": "저장 안 함(&&N)", + "moreFile": "...1개의 추가 파일이 표시되지 않음", + "moreFiles": "...{0}개의 추가 파일이 표시되지 않음", + "noExt": "확장 없음", + "save": "저장(&&S)", + "saveAll": "모두 저장(&&S)", + "saveChangesDetail": "변경 내용을 저장하지 않은 경우 변경 내용이 손실됩니다.", + "saveChangesMessage": "{0}에 대한 변경 내용을 저장할까요?", + "saveChangesMessages": "다음 {0}개 파일에 대한 변경 내용을 저장할까요?" +} \ No newline at end of file diff --git a/i18n/rus/extensions/css/client/out/cssMain.i18n.json b/i18n/rus/extensions/css/client/out/cssMain.i18n.json index b37bc7356b8..73454bf8b97 100644 --- a/i18n/rus/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/rus/extensions/css/client/out/cssMain.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "cssserver.name": "Сервер языка CSS" + "cssserver.name": "Языковой сервер CSS" } \ No newline at end of file diff --git a/i18n/rus/extensions/html/client/out/htmlMain.i18n.json b/i18n/rus/extensions/html/client/out/htmlMain.i18n.json index 6289dec383f..364064582bf 100644 --- a/i18n/rus/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/rus/extensions/html/client/out/htmlMain.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "htmlserver.name": "Сервер языка HTML" + "htmlserver.name": "Языковой сервер HTML" } \ No newline at end of file diff --git a/i18n/rus/extensions/json/client/out/jsonMain.i18n.json b/i18n/rus/extensions/json/client/out/jsonMain.i18n.json index 6ec87a7201d..666d0c168d2 100644 --- a/i18n/rus/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/rus/extensions/json/client/out/jsonMain.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "jsonserver.name": "Сервер языка JSON" + "jsonserver.name": "Языковой сервер JSON" } \ No newline at end of file diff --git a/i18n/rus/extensions/php/package.i18n.json b/i18n/rus/extensions/php/package.i18n.json index ca682fc194e..8c37098ad38 100644 --- a/i18n/rus/extensions/php/package.i18n.json +++ b/i18n/rus/extensions/php/package.i18n.json @@ -7,5 +7,5 @@ "configuration.title": "PHP", "configuration.validate.enable": "Включена ли проверка PHP.", "configuration.validate.executablePath": "Указывает на исполняемый файл PHP.", - "configuration.validate.run": "Запускается ли Linter при сохранении или в типе." + "configuration.validate.run": "Запускается ли анализатор кода при сохранении или при печати." } \ No newline at end of file diff --git a/i18n/rus/extensions/typescript/out/typescriptServiceClient.i18n.json b/i18n/rus/extensions/typescript/out/typescriptServiceClient.i18n.json index b4613d0a872..ebe3cd49761 100644 --- a/i18n/rus/extensions/typescript/out/typescriptServiceClient.i18n.json +++ b/i18n/rus/extensions/typescript/out/typescriptServiceClient.i18n.json @@ -11,7 +11,7 @@ "moreInformation": "Дополнительные сведения", "neverCheckLocalVesion": "Никогда не проверять версию рабочей области.", "noServerFound": "Путь \"{0}\" не указывает на допустимый файл программы установки tsserver. Возможности языка TypeScript будут отключены.", - "serverCouldNotBeStarted": "Не удалось запустить сервер языка TypeScript. Сообщение об ошибке: {0}", + "serverCouldNotBeStarted": "Не удалось запустить языковой сервер TypeScript. Сообщение об ошибке: \"{0}\".", "serverDied": "Служба языка Typescript пять раз непредвиденно завершила работу за последние пять минут. Отправьте отчет об ошибке.", "serverDiedAfterStart": "Языковая служба TypeScript пять раз завершила работу сразу после запуска. Служба не будет перезапущена. Отправьте отчет об ошибке.", "updateGlobalWorkspaceCheck": "Значение параметра пользователя \"typescript.check.workspaceVersion\" изменено на false.", @@ -20,6 +20,6 @@ "updatedtsdk": "Значение параметра рабочей области \"typescript.tsdk\" изменено на {0}.", "use": "Использовать рабочую область ({0})", "useBundled": "Использовать в рамках пакета ({0})", - "versionMismatch": "Обнаружено несоответствие версий глобально установленного компилятора tsc ({0}) и службы языка VS Code ({1}). Это может привести к ошибкам согласованности компиляции.", + "versionMismatch": "Обнаружено несоответствие глобального tsc ({0}) и службы языка VS Code ({1}). Это может привести к ошибкам согласованности компиляции.", "versionNumber.custom": "пользовательский" } \ No newline at end of file diff --git a/i18n/rus/extensions/typescript/package.i18n.json b/i18n/rus/extensions/typescript/package.i18n.json index 7f3c01d3778..0289fe7a66a 100644 --- a/i18n/rus/extensions/typescript/package.i18n.json +++ b/i18n/rus/extensions/typescript/package.i18n.json @@ -8,8 +8,10 @@ "format.insertSpaceAfterCommaDelimiter": "Определяет метод обработки пробелов после разделителя-запятой", "format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": "Определяет метод обработки пробелов после ключевого слова анонимной функции", "format.insertSpaceAfterKeywordsInControlFlowStatements": "Определяет метод обработки пробелов после ключевых слов в операторе потока управления", + "format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": "Определяет метод обработки пробелов после открытия и до закрытия скобок выражения JSX. Требуется TypeScript 2.0.6 или более поздней версии.", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": "Определяет метод обработки пробелов после открытия и до закрытия непустых квадратных скобок", "format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": "Определяет метод обработки пробелов после открытия и до закрытия непустых круглых скобок", + "format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": "Определяет метод обработки пробелов после открытия и до закрытия скобок в строке шаблона. Требуется TypeScript 2.0.6 или более поздней версии.", "format.insertSpaceAfterSemicolonInForStatements": " Определяет метод обработки пробелов после точки с запятой в операторе for", "format.insertSpaceBeforeAndAfterBinaryOperators": "Определяет метод обработки пробелов после двоичного оператора", "format.placeOpenBraceOnNewLineForControlBlocks": "Определяет, помещается ли открывающая фигурная скобка в новую строку для управляющих блоков", @@ -18,6 +20,7 @@ "javascript.validate.enable": "Включить или отключить проверку JavaScript", "typescript.check.tscVersion": "Проверка отличия компилятора TypeScript глобальной установки (например, tsc) от используемой языковой службы TypeScript.", "typescript.check.workspaceVersion": "Проверка наличия версии TypeScript в рабочей области", + "typescript.experimentalAutomaticTypeAcquisition": "Включить автоматическое получение типа. Требуется TypeScript 2.0.6 или более поздней версии и перезапуск после внесения изменений.", "typescript.reloadProjects.title": "Перезагрузка проекта TypeScript", "typescript.tsdk.desc": "Указывает путь к папке, содержащей файлы tsserver и lib*.d.ts, которые необходимо использовать.", "typescript.tsdk_version.desc": "Указывает версию tsserver. Требуется, только если tsserver не установлен с помощью npm.", diff --git a/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json index 0cc5a43f46a..3142a472988 100644 --- a/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -17,6 +17,7 @@ "fontSize": "Управляет размером шрифта в пикселях.", "fontWeight": "Управляет насыщенностью шрифта.", "formatOnType": "Управляет параметром, определяющим, должен ли редактор автоматически форматировать строку после ввода.", + "glyphMargin": "Управляет отображением вертикальных полей глифа в редакторе. Поля глифа в основном используются для отладки.", "hideCursorInOverviewRuler": "Управляет скрытием курсора в обзорной линейке.", "ignoreTrimWhitespace": "Определяет, должен ли редактор несовпадений трактовать несовпадения символов-разделителей как различия.", "insertSpaces": "Вставлять пробелы при нажатии клавиши TAB. Эта настройка переопределяется на основании содержимого файла, когда включен параметр \"editor.detectIndentation\".", @@ -40,7 +41,9 @@ "selectionHighlight": "Определяет, будет ли редактор выделять фрагменты, совпадающие с выделенным текстом.", "sideBySide": "Определяет, как редактор несовпадений отображает отличия: рядом или в тексте.", "snippetSuggestions": "Управляет отображением фрагментов вместе с другими предложениями и их сортировкой.", - "stablePeek": "Оставлять просматривающие редакторы открытыми, даже если дважды щелкнуто их содержимое или нажата клавиша ESC.", + "stablePeek": "Оставлять быстрые редакторы открытыми, даже если дважды щелкнуто их содержимое или нажата клавиша ESC.", + "suggestFontSize": "Размер шрифта мини-приложения предложений", + "suggestLineHeight": "Высота строки мини-приложения с предложениями", "suggestOnTriggerCharacters": "Определяет, должны ли при вводе триггерных символов автоматически отображаться предложения.", "tabCompletion": "Вставка фрагментов при совпадении их префиксов. Функция работает оптимально, если параметр \"quickSuggestions\" отключен.", "tabSize": "Число пробелов в табуляции. Эта настройка переопределяется на основании содержимого файла, когда включен параметр \"editor.detectIndentation\".", diff --git a/i18n/rus/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json b/i18n/rus/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json index f8360af4669..b6652a9a5ad 100644 --- a/i18n/rus/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json +++ b/i18n/rus/src/vs/editor/contrib/goToDeclaration/browser/goToDeclaration.i18n.json @@ -8,5 +8,5 @@ "actions.goToDeclToSide.label": "Открыть определение сбоку", "actions.previewDecl.label": "Показать определение", "meta.title": " — определения {0}", - "multipleResults": "Щелкните, чтобы отобразить найденные определения ({0})." + "multipleResults": "Щелкните, чтобы отобразить определения ({0})." } \ No newline at end of file diff --git a/i18n/rus/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json b/i18n/rus/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json index ca37061159b..cc4d4187e72 100644 --- a/i18n/rus/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json +++ b/i18n/rus/src/vs/editor/contrib/quickFix/browser/quickFix.i18n.json @@ -4,5 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "quickFix": "Показать исправления", + "quickFixWithKb": "Показать исправления ({0})", "quickfix.trigger.label": "Быстрое исправление" } \ No newline at end of file diff --git a/i18n/rus/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json b/i18n/rus/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json index 8081de0bff6..485caa87c1c 100644 --- a/i18n/rus/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json +++ b/i18n/rus/src/vs/platform/actions/browser/menusExtensionPoint.i18n.json @@ -8,6 +8,7 @@ "dupe.command": "Элемент меню ссылается на одну и ту же команду как команду по умолчанию и альтернативную команду", "menuId.invalid": "\"{0}\" не является допустимым идентификатором меню", "menus.editorContext": "Контекстное меню редактора", + "menus.editorTabContext": "Контекстное меню вкладок редактора", "menus.editorTitle": "Главное меню редактора", "menus.explorerContext": "Контекстное меню проводника", "missing.altCommand": "Элемент меню ссылается на альтернативную команду \"{0}\", которая не определена в разделе commands.", diff --git a/i18n/rus/src/vs/platform/environment/node/argv.i18n.json b/i18n/rus/src/vs/platform/environment/node/argv.i18n.json index 084442ebd56..2212d994001 100644 --- a/i18n/rus/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/rus/src/vs/platform/environment/node/argv.i18n.json @@ -6,6 +6,7 @@ { "diff": "Открыть редактор несовпадений. Требуется указать два пути к файлам в качестве аргументов.", "disableExtensions": "Отключить все установленные расширения.", + "disableGPU": "Отключить аппаратное ускорение GPU.", "extensionHomePath": "Задайте корневой путь для расширений.", "goto": "Открыть файл по пути, указанному в определенной строке и столбце (требуется добавить :line[:column] к пути).", "gotoValidation": "Аргументы в режиме \"--goto\" должны быть в формате \"ФАЙЛ(:СТРОКА(:СТОЛБЕЦ))\".", @@ -19,6 +20,7 @@ "paths": "пути", "performance": "Запустите с включенной командой \"Developer: Startup Performance\".", "reuseWindow": "Принудительно открыть файл или папку в последнем активном окне.", + "showVersions": "Показать версии установленных расширений при указании параметра --list-extension.", "uninstallExtension": "Удаляет расширение.", "usage": "Использование", "userDataDir": "Указывает каталог, в котором хранятся данные пользователей, используется в случае выполнения от имени привилегированного пользователя.", diff --git a/i18n/rus/src/vs/platform/extensions/common/extensionsRegistry.i18n.json b/i18n/rus/src/vs/platform/extensions/common/extensionsRegistry.i18n.json index 6fe310be69a..0200bc29633 100644 --- a/i18n/rus/src/vs/platform/extensions/common/extensionsRegistry.i18n.json +++ b/i18n/rus/src/vs/platform/extensions/common/extensionsRegistry.i18n.json @@ -17,6 +17,10 @@ "extensionDescription.publisher": "свойство \"{0}\" является обязательным и должно иметь тип string", "extensionDescription.version": "свойство \"{0}\" является обязательным и должно иметь тип string", "vscode.extension.activationEvents": "События активации для расширения кода VS Code.", + "vscode.extension.badges": "Массив эмблем, отображаемых на боковой панели страницы расширения Marketplace.", + "vscode.extension.badges.description": "Описание эмблемы.", + "vscode.extension.badges.href": "Ссылка на эмблему.", + "vscode.extension.badges.url": "URL-адрес изображения эмблемы.", "vscode.extension.categories": "Категории, используемые коллекцией VS Code для классификации расширения.", "vscode.extension.contributes": "Все публикации расширения VS Code, представленные этим пакетом.", "vscode.extension.displayName": "Отображаемое имя расширения, используемого в коллекции VS Code.", @@ -24,6 +28,8 @@ "vscode.extension.galleryBanner": "Баннер, используемый в магазине VS Code.", "vscode.extension.galleryBanner.color": "Цвет баннера в заголовке страницы магазина VS Code.", "vscode.extension.galleryBanner.theme": "Цветовая тема для шрифта, используемого в баннере.", + "vscode.extension.icon": "Путь к значку размером 128 x 128 пикселей.", + "vscode.extension.preview": "Добавляет метку \"Предварительная версия\" для расширения в Marketplace.", "vscode.extension.publisher": "Издатель расширения VS Code.", "vscode.extension.scripts.prepublish": "Скрипт, выполняемый перед публикацией пакета в качестве расширения VS Code." } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/rus/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index 355c2c06960..3e03b98e62c 100644 --- a/i18n/rus/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/rus/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -4,6 +4,6 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "togglePosition": "Изменить положение боковой панели", + "toggleLocation": "Расположение боковой панели", "view": "Просмотреть" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/browser/parts/panel/panelPart.i18n.json b/i18n/rus/src/vs/workbench/browser/parts/panel/panelPart.i18n.json index 9b37ee42db3..9c2156c6eec 100644 --- a/i18n/rus/src/vs/workbench/browser/parts/panel/panelPart.i18n.json +++ b/i18n/rus/src/vs/workbench/browser/parts/panel/panelPart.i18n.json @@ -6,6 +6,7 @@ { "closePanel": "Закрыть", "focusPanel": "Фокус на панель", + "toggleMaximizedPanel": "Развернутая панель", "togglePanel": "Панель", "view": "Просмотреть" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json b/i18n/rus/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json index 7a244bcbbd5..125c25e6fd2 100644 --- a/i18n/rus/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json +++ b/i18n/rus/src/vs/workbench/browser/parts/quickopen/quickOpenController.i18n.json @@ -11,5 +11,7 @@ "inputModeEntry": "Нажмите клавишу ВВОД, чтобы подтвердить введенные данные, или ESCAPE для отмены", "inputModeEntryDescription": "{0} (нажмите клавишу ВВОД, чтобы подтвердить введенные данные, или ESCAPE для отмены)", "noResultsFound1": "Результаты не найдены", - "quickOpenInput": "Введите \"?\", чтобы узнать, какие отсюда можно выполнить действия" + "pickHistory": "Выбор записи редактора, удаляемой из журнала", + "quickOpenInput": "Введите \"?\", чтобы узнать, какие отсюда можно выполнить действия", + "removeFromEditorHistory": "Удалить из журнала редакторов" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/rus/src/vs/workbench/electron-browser/actions.i18n.json index f3d78737543..f16cd1677c2 100644 --- a/i18n/rus/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/rus/src/vs/workbench/electron-browser/actions.i18n.json @@ -9,6 +9,7 @@ "closeFolder": "Закрыть папку", "closeMessages": "Закрыть уведомления", "closeWindow": "Закрыть окно", + "current": "Текущее окно", "diffLeftRightLabel": "{0} ⟷ {1}", "files": "файлы", "folders": "папки", diff --git a/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json index 1b90b61b061..9dd76bfcb12 100644 --- a/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -17,6 +17,8 @@ "restoreFullscreen": "Определяет, должно ли окно восстанавливаться в полноэкранном режиме, если оно было закрыто в полноэкранном режиме.", "showEditorTabs": "Определяет, должны ли открытые редакторы отображаться на вкладках или нет.", "showIcons": "Определяет, должны ли открытые редакторы отображаться со значком. Требует включить тему значков.", + "sideBarLocation": "Определяет расположение боковой панели: слева или справа от рабочего места.", + "statusBarVisibility": "Управляет видимостью строки состояния в нижней части рабочего места.", "updateChannel": "Настройте канал обновления, по которому вы будете получать обновления. После изменения значения необходим перезапуск.", "updateConfigurationTitle": "Обновить", "view": "Просмотреть", diff --git a/i18n/rus/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json index 803057b3720..8b54650d608 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/browser/breakpointWidget.i18n.json @@ -4,6 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "breakpointWidgetAriaLabel": "Введите условие точки останова для строки {0}. Выполнение программы прервется в этом месте, только если условие выполнится. Нажмите клавишу ВВОД для принятия или ESCAPE для отмены.", - "breakpointWidgetPlaceholder": "Точка останова в строке {0} сработает, только если это условие выполнится. Нажмите клавишу ВВОД для принятия или ESCAPE для отмены." + "breakpointWidgetAriaLabel": "Выполнение программы прервется в этом месте, только если условие выполнится. Нажмите клавишу ВВОД для принятия или ESC для отмены.", + "breakpointWidgetExpressionPlaceholder": "Выполнить прерывание, если выражение равно \"True\"", + "breakpointWidgetHitCountAriaLabel": "Выполнение программы прервется в этом месте, только если достигнуто определенное количество обращений. Нажмите клавишу ВВОД для принятия или ESC для отмены.", + "breakpointWidgetHitCountPlaceholder": "Выполнить прерывание при определенном количестве обращений", + "expression": "Выражение", + "hitCount": "Количество обращений" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/debug/browser/debugActions.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/browser/debugActions.i18n.json index 682b27f58c6..411c89a8ecf 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/browser/debugActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/browser/debugActions.i18n.json @@ -5,12 +5,12 @@ // Do not edit this file. It is machine generated. { "activateBreakpoints": "Активировать точки останова", - "addConditionalBreakpoint": "Добавить условную точку останова", + "addConditionalBreakpoint": "Добавить условную точку останова…", "addFunctionBreakpoint": "Добавить точку останова в функции", "addToWatchExpressions": "Добавить контрольное значение", "addWatchExpression": "Добавить выражение", "clearRepl": "Очистить консоль", - "conditionalBreakpointEditorAction": "Отладка: условная точка останова", + "conditionalBreakpointEditorAction": "Отладка: добавить условную точку останова…", "continueDebug": "Продолжить", "deactivateBreakpoints": "Отключить точки останова", "debugActionLabelAndKeybinding": "{0} ({1})", @@ -20,7 +20,7 @@ "debugFocusConsole": "Фокус консоли отладки", "disableAllBreakpoints": "Отключить все точки останова", "disconnectDebug": "Отключить", - "editConditionalBreakpoint": "Изменить точку останова", + "editConditionalBreakpoint": "Изменить точку останова…", "enableAllBreakpoints": "Включить все точки останова", "launchJsonNeedsConfigurtion": "Настройте или исправьте \"launch.json\"", "openLaunchJson": "Открыть {0}", diff --git a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json index 39b22caa7ea..28e05215d6d 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debug.contribution.i18n.json @@ -4,11 +4,14 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "allowBreakpointsEverywhere": "Разрешает задание точки останова для всех файлов с любым расширением.", "debug": "Отладка", "debugCategory": "Отладка", + "debugConfigurationTitle": "Отладка", "debugErrorEditor": "Ошибка при отладке", "debugPanel": "Консоль отладки", "launchConfigDoesNotExist": "Конфигурация запуска \"{0}\" не существует.", + "openExplorerOnEnd": "Автоматически открывать мини-приложение просмотра проводника по завершении сеанса отладки.", "toggleDebugPanel": "Консоль отладки", "toggleDebugViewlet": "Показать отладочные сведения", "view": "Просмотреть" diff --git a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json index ae2dad9cdde..6191c714b81 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/repl.i18n.json @@ -7,5 +7,5 @@ "actions.repl.acceptInput": "Прием входных данных REPL", "actions.repl.historyNext": "Журнал — далее", "actions.repl.historyPrevious": "Журнал — назад", - "replAriaLabel": "Панель цикла чтение-вычисление-печать" + "replAriaLabel": "Панель read–eval–print loop" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json index cdea422c316..0c33a4ae7d1 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/replViewer.i18n.json @@ -6,9 +6,9 @@ { "fileLink": "Щелкните, чтобы отслеживать (чтобы открыть сбоку экрана, щелкните, удерживая клавишу CTRL)", "fileLinkMac": "Щелкните, чтобы отслеживать (чтобы открыть сбоку экрана, щелкните, удерживая клавишу CMD)", - "replExpressionAriaLabel": "Выражение {0} имеет значение {1}, цикл чтение-вычисление-печать, отладка", - "replKeyValueOutputAriaLabel": "Выходная переменная {0} имеет значение {1}, цикл чтение-вычисление-печать, отладка", - "replValueOutputAriaLabel": "{0}, цикл чтение-вычисление-печать, отладка", - "replVariableAriaLabel": "Переменная {0} имеет значение {1}, цикл чтение-вычисление-печать, отладка", + "replExpressionAriaLabel": "Выражение \"{0}\" имеет значение \"{1}\", read–eval–print loop, отладка", + "replKeyValueOutputAriaLabel": "Выходная переменная \"{0}\" имеет значение \"{1}\", read–eval–print loop, отладка", + "replValueOutputAriaLabel": "{0}, read–eval–print loop, отладка", + "replVariableAriaLabel": "Переменная \"{0}\" имеет значение \"{1}\", read–eval–print loop, отладка", "stateCapture": "Состояние объекта записывается после первого вычисления" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json index 2535f287bea..73afc840e5f 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/node/debugConfigurationManager.i18n.json @@ -5,12 +5,11 @@ // Do not edit this file. It is machine generated. { "DebugConfig.failed": "Не удается создать файл launch.json в папке .vscode ({0}).", - "app.launch.json.configurations": "Список конфигураций. Добавьте новые конфигурации или измените существующие.", + "app.launch.json.configurations": "Список конфигураций. Добавьте новые конфигурации или измените существующие с помощью IntelliSense.", "app.launch.json.title": "Запустить", "app.launch.json.version": "Версия этого формата файла.", "debugNoType": "Параметр type адаптера отладки не может быть опущен и должен иметь тип string.", "duplicateDebuggerType": "Тип отладки \"{0}\" уже зарегистрирован и имеет атрибут \"{1}\". Атрибут \"{1}\" игнорируется.", - "interactiveVariableNotFound": "Адаптер {0} не передает переменную {1}, указанную в конфигурации запуска.", "selectDebug": "Выбор среды", "vscode.extension.contributes.breakpoints": "Добавляет точки останова.", "vscode.extension.contributes.breakpoints.language": "Разрешить точки останова для этого языка.", diff --git a/i18n/rus/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json b/i18n/rus/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json index 3b1b50558d5..863eeb647d6 100644 --- a/i18n/rus/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/execution/electron-browser/terminalService.i18n.json @@ -6,7 +6,7 @@ { "console.title": "Консоль VS Code", "linux.term.failed": "Сбой \"{0}\" с кодом выхода {1}", - "mac.terminal.script.failed": "сбой скрипта \"{0}\" с кодом выхода {1}", + "mac.terminal.script.failed": "Сбой скрипта \"{0}\" с кодом выхода {1}", "mac.terminal.type.not.supported": "\"{0}\" не поддерживается", "press.any.key": "Для продолжения нажмите любую клавишу..." } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json new file mode 100644 index 00000000000..eed745d8286 --- /dev/null +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/dependenciesViewer.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensions.open": "Открыть", + "extensions.openSide": "Открыть сбоку" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json index eb6248b2597..a2d0d731c1b 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.i18n.json @@ -12,18 +12,24 @@ "debugger name": "Имя", "debuggers": "Отладчики ({0})", "default": "По умолчанию", + "dependencies": "Зависимости", "description": "Описание", "details": "Подробности", + "extension id": "Идентификатор расширений", "file extensions": "Расширения файлов", "grammar": "Грамматика", + "install count": "Число установок", "keyboard shortcuts": "&&Сочетания клавиш", "language id": "Идентификатор", "language name": "Имя", "languages": "Языки ({0})", "license": "Лицензия", "menuContexts": "Контексты меню", + "name": "Имя расширения", "noChangelog": "Журнал изменений недоступен.", "noReadme": "Файл сведений недоступен.", + "publisher": "Имя издателя", + "rating": "Оценка", "setting name": "Имя", "settings": "Параметры ({0})", "snippets": "Фрагменты", diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json index dbab8fd69d6..6a4aa00b176 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.i18n.json @@ -4,6 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { + "disableGlobalExtensions": "Настроить отключенные расширения", + "disableWorkspaceExtensions": "Настроить отключенные расширения (рабочая область)", "extension": "Расширение", "extensions": "Расширения", "extensionsAutoUpdate": "Автоматически обновлять расширения", diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json index 85b021b5aff..1f7b7c4a951 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.i18n.json @@ -6,9 +6,10 @@ { "ConfigureWorkspaceRecommendations.noWorkspace": "Рекомендации доступны только для папки рабочей области.", "OpenExtensionsFile.failed": "Не удается создать файл \"extensions.json\" в папке \".vscode\" ({0}).", + "OpenGlobalExtensionsStorageFile.failed": "Не удалось создать файл \"extensions.json\" внутри папки \"{0}\" ({1}).", "builtin": "Встроенное", "clearExtensionsInput": "Очистить входные данные расширений", - "configureWorkspaceRecommendedExtensions": "Настроить рекомендуемые расширения рабочей области", + "configureWorkspaceRecommendedExtensions": "Настроить рекомендуемые расширения (рабочая область)", "deleteSure": "Действительно удалить \"{0}\"?", "enableAction": "Включить", "installAction": "Установить", @@ -19,6 +20,7 @@ "postUninstallMessage": "Расширение \"{0}\" было успешно удалено. Чтобы отключить его, выполните перезапуск.", "restart": "Чтобы включить это расширение, необходимо перезапустить это окно VS Code.\n\nПродолжить?", "restartNow": "Перезагрузка", + "showDisabledExtensions": "Показать отключенные расширения", "showInstalledExtensions": "Показать установленные расширения", "showOutdatedExtensions": "Показать устаревшие расширения", "showPopularExtensions": "Показать популярные расширения", diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json index 63efc9d476b..aaecf6bb680 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsFileTemplate.i18n.json @@ -6,5 +6,7 @@ { "app.extension.identifier.errorMessage": "Ожидается формат \"${publisher}.${name}\". Пример: \"vscode.csharp\".", "app.extensions.json.recommendations": "Список рекомендаций по расширениям. Идентификатор расширения — всегда \"${publisher}.${name}\". Например, \"vscode.csharp\".", - "app.extensions.json.title": "Расширения" + "app.extensions.json.title": "Расширения", + "app.extensionsstorage.json.disabled": "Список отключенных расширений. Идентификатор расширения всегда имеет вид \"${publisher}.${name}\". Например, \"vscode.csharp\".", + "app.extensionsstorage.json.title": "Хранилище расширений" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index f0a6342e535..010060dfcac 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -7,6 +7,7 @@ "ascending": "Порядок сортировки: ↑", "descending": "Порядок сортировки: ↓", "extensions": "Расширения", + "no extensions found": "Расширений не найдено.", "outdatedExtensions": "Устаревшие расширения: {0}", "searchExtensions": "Поиск расширений в Marketplace", "sort by installs": "Сортировать по: числу установок", diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json index 77f59908655..6e3d9e9f1fa 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsWidgets.i18n.json @@ -4,10 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "extensions": "Расширения", - "extensionsInstalling": "Расширения (установка {0}...)", - "multipleIssues": "Расширения (ошибок: {0})", - "multipleUpdates": "Расширения (доступно обновлений: {0})", - "oneIssue": "Расширения (1 ошибка)", - "oneUpdate": "Расширения (1 обновление доступно)" + "active": "Активный", + "disabled": "Отключено", + "disabledWorkspace": "Отключено (рабочая область)" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/files/browser/fileActions.i18n.json b/i18n/rus/src/vs/workbench/parts/files/browser/fileActions.i18n.json index 4611660b058..39dde64e6f7 100644 --- a/i18n/rus/src/vs/workbench/parts/files/browser/fileActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/files/browser/fileActions.i18n.json @@ -46,6 +46,7 @@ "openToSide": "Открыть сбоку", "pasteFile": "Вставить", "permDelete": "Удалить навсегда", + "pickHistory": "Выберите запись журнала редактора для сравнения", "refresh": "Обновить", "refreshExplorer": "Обновить окно проводника", "rename": "Переименовать", diff --git a/i18n/rus/src/vs/workbench/parts/git/browser/gitActions.i18n.json b/i18n/rus/src/vs/workbench/parts/git/browser/gitActions.i18n.json index 4c2169e7727..8ca28de0f81 100644 --- a/i18n/rus/src/vs/workbench/parts/git/browser/gitActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/git/browser/gitActions.i18n.json @@ -5,6 +5,7 @@ // Do not edit this file. It is machine generated. { "authFailed": "Сбой аутентификации для команды git remote.", + "cancel": "Отмена", "cleanChangesLabel": "&&Отменить изменения", "commit": "Commit", "commitAll": "Зафиксировать все", @@ -22,16 +23,21 @@ "confirmUndoMessage": "Действительно отменить все изменения?", "dirtyTreeCheckout": "Не удается извлечь. Сначала нужно зафиксировать работу или промежуточно сохранить ее.", "dirtyTreePull": "Не удается запросить. Сначала нужно зафиксировать работу или промежуточно сохранить ее.", + "do you want to continue": "Вы действительно хотите продолжить?", "init": "Инициализация", "irreversible": "Это действие необратимо!", + "never again": "ОК, больше не показывать", + "ok": "ОК", "openChange": "Открыть изменение", "openFile": "Открыть файл", "publish": "Опубликовать", "publishPickMessage": "Выберите удаленный сервер, на котором нужно опубликовать ветвь \"{0}\":", + "pushToRemote": "Отправить в:", + "pushToRemotePickMessage": "Выберите удаленный компьютер, на который следует отправить ветвь \"{0}\":", "refresh": "Обновить", "stageAllChanges": "Промежуточно сохранить все", "stageChanges": "Промежуточно сохранить", - "sureSync": "Вы действительно хотите синхронизировать репозиторий Git?", + "sync is unpredictable": "Это действие отправляет фиксации в \"{0}\" и извлекает их из этого расположения.", "undoAllChanges": "Очистить все", "undoChanges": "Очистить", "undoLastCommit": "Отменить последнюю фиксацию", diff --git a/i18n/rus/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json b/i18n/rus/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json new file mode 100644 index 00000000000..7db022be87e --- /dev/null +++ b/i18n/rus/src/vs/workbench/parts/markers/electron-browser/markersElectronContributions.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copyMarker": "Копировать" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/search/browser/search.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/search/browser/search.contribution.i18n.json index c4382108754..fb1fd11b3c3 100644 --- a/i18n/rus/src/vs/workbench/parts/search/browser/search.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/search/browser/search.contribution.i18n.json @@ -7,12 +7,14 @@ "exclude": "Настройте стандартные маски для исключения файлов и папок при поиске. Все стандартные маски наследуются от параметра file.exclude.", "exclude.boolean": "Стандартная маска, соответствующая путям к файлам. Задайте значение true или false, чтобы включить или отключить маску.", "exclude.when": "Дополнительная проверка элементов того же уровня соответствующего файла. Используйте $(basename) в качестве переменной для соответствующего имени файла.", + "findInFiles": "Найти в файлах", "findInFolder": "Найти в папке", "name": "Поиск", "openAnythingHandlerDescription": "Перейти к файлу", "openSymbolDescriptionNormal": "Перейти к символу в рабочей области", "search.quickOpen.includeSymbols": "Настройте для включения результатов поиска глобальных символов в файлы по запросу для Quick Open.", "searchConfigurationTitle": "Поиск", + "showSearchViewlet": "Показать средство поиска", "showTriggerActions": "Перейти к символу в рабочей области...", "view": "Просмотреть" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/rus/src/vs/workbench/parts/search/browser/searchActions.i18n.json index aeabb850335..922dfed53bd 100644 --- a/i18n/rus/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -10,11 +10,10 @@ "RemoveAction.label": "Удалить", "file.replaceAll.label": "Заменить все", "findInFolder": "Найти в папке", - "focusNextInputbox": "Фокус на следующем поле ввода", - "focusPreviousInputbox": "Фокус на предыдущем поле ввода", + "focusNextInputBox": "Фокус на следующем поле ввода", + "focusPreviousInputBox": "Фокус на предыдущем поле ввода", "match.replace.label": "Заменить", "nextSearchTerm": "Показать следующее условие поиска", "previousSearchTerm": "Показать предыдущее условие поиска", - "replaceInFiles": "Заменить в файлах", - "showSearchViewlet": "Показать средство поиска" + "replaceInFiles": "Заменить в файлах" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json index 8517082e135..ba592584cdd 100644 --- a/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/task.contribution.i18n.json @@ -83,6 +83,7 @@ "TerminateAction.noProcess": "Запущенный процесс больше не существует. Если задача породила фоновые задачи, выход из Visual Studio Code может привести к появлению потерянных процессов.", "TestAction.label": "Выполнить задачу тестирования", "manyMarkers": "99+", + "problems": "Проблемы", "taskCommands": "Выполнить задачу", "tasks": "Задачи", "tasksCategory": "Задачи" diff --git a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 679d3092995..28e793eb978 100644 --- a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -17,6 +17,7 @@ "terminal.integrated.shell.windows": "Путь оболочки, который используется терминалом в Windows. При работе с оболочкой, поставляемой с Windows (cmd, PowerShell или Bash на Ubuntu), укажите C:Windowssysnative вместо C:WindowsSystem32 для использования 64-разрядных версий.", "terminal.integrated.shellArgs.linux": "Аргументы командной строки, которые следует использовать в терминале Linux.", "terminal.integrated.shellArgs.osx": "Аргументы командной строки, которые следует использовать в терминале OS X.", + "terminal.integrated.shellArgs.windows": "Аргументы командной строки, используемые в терминале Windows.", "terminalCategory": "Терминал", "terminalIntegratedConfigurationTitle": "Интегрированный терминал", "viewCategory": "Просмотреть" diff --git a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index dc48db788dc..a89a7f0b89d 100644 --- a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -17,6 +17,8 @@ "workbench.action.terminal.runSelectedText": "Запуск выбранного текста в активном терминале", "workbench.action.terminal.scrollDown": "Прокрутка вниз (построчно)", "workbench.action.terminal.scrollDownPage": "Прокрутить вниз (страницу)", + "workbench.action.terminal.scrollToBottom": "Прокрутить до нижней границы", + "workbench.action.terminal.scrollToTop": "Прокрутить до верхней границы", "workbench.action.terminal.scrollUp": "Прокрутка вверх (построчно)", "workbench.action.terminal.scrollUpPage": "Прокрутить вверх (страницу)", "workbench.action.terminal.switchTerminalInstance": "Переключить экземпляр терминала", diff --git a/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index c83ca9ad76a..1290f89f61e 100644 --- a/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "close": "Закрыть", - "insiderBuilds": "Сборки для участников программы становятся ежедневными.", + "insiderBuilds": "Ежедневные сборки и выпуски для участников программы предварительной оценки.", "license": "Прочитать лицензию", "licenseChanged": "Условия использования лицензии изменились, ознакомьтесь с ними.", "neverShowAgain": "Больше не показывать", diff --git a/i18n/rus/src/vs/workbench/parts/watermark/browser/watermark.i18n.json b/i18n/rus/src/vs/workbench/parts/watermark/browser/watermark.i18n.json new file mode 100644 index 00000000000..14c6f89e3d7 --- /dev/null +++ b/i18n/rus/src/vs/workbench/parts/watermark/browser/watermark.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "watermark.addCursor": "Добавить курсоры выше или ниже", + "watermark.moveLines": "Переместить строки вверх или вниз", + "watermark.quickOpen": "Перейти к файлу", + "watermark.showCommands": "Палитра команд", + "watermark.toggleTerminal": "Терминал", + "watermark.unboundCommand": "свободный" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json b/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json new file mode 100644 index 00000000000..b52005d448d --- /dev/null +++ b/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionHost.i18n.json @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "extensionHostProcess.crash": "Хост-процесс для расширений неожиданно завершил работу. Загрузите окно повторно для восстановления.", + "extensionHostProcess.error": "Ошибка в хост-процессе для расширений: {0}", + "extensionHostProcess.startupFail": "Хост-процесс для расширений не запустился спустя 10 секунд. Возможно, произошла ошибка.", + "extensionHostProcess.startupFailDebug": "Хост-процесс для расширений не был запущен в течение 10 секунд. Возможно, он был остановлен в первой строке, а для продолжения требуется отладчик.", + "extensionUnderDevelopment": "Идет загрузка расширения разработки в {0}", + "overwritingExtension": "Идет перезапись расширения {0} на {1}." +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/files/electron-browser/fileService.i18n.json b/i18n/rus/src/vs/workbench/services/files/electron-browser/fileService.i18n.json index ad63249b21e..95cd3070f32 100644 --- a/i18n/rus/src/vs/workbench/services/files/electron-browser/fileService.i18n.json +++ b/i18n/rus/src/vs/workbench/services/files/electron-browser/fileService.i18n.json @@ -6,5 +6,6 @@ { "installNet": "Скачать .NET Framework 4.5", "netVersionError": "Требуется платформа Microsoft .NET Framework 4.5. Нажмите ссылку, чтобы установить ее.", + "neverShowAgain": "Больше не показывать", "trashFailed": "Не удалось переместить \"{0}\" в корзину." } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json b/i18n/rus/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json new file mode 100644 index 00000000000..267824f87b1 --- /dev/null +++ b/i18n/rus/src/vs/workbench/services/textfile/common/textFileEditorModel.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "genericSaveError": "Не удалось сохранить \"{0}\": {1}", + "saveFileFirst": "Файл изменен. Сохраните его, прежде чем открыть его вновь в другой кодировке." +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json b/i18n/rus/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json new file mode 100644 index 00000000000..fd66681718e --- /dev/null +++ b/i18n/rus/src/vs/workbench/services/textfile/electron-browser/textFileService.i18n.json @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "allFiles": "Все файлы", + "cancel": "Отмена", + "dontSave": "&&Не сохранять", + "moreFile": "...1 дополнительный файл не показан", + "moreFiles": "...не показано дополнительных файлов: {0}", + "noExt": "Нет расширений", + "save": "&&Сохранить", + "saveAll": "&&Сохранить все", + "saveChangesDetail": "Если не сохранить изменения, они будут утеряны.", + "saveChangesMessage": "Сохранить изменения, внесенные в {0}?", + "saveChangesMessages": "Сохранить изменения в указанных файлах ({0})?" +} \ No newline at end of file From 8a3c5f7c84b97e52598d08c5b0b345ec7078c15c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 12:29:58 +0200 Subject: [PATCH 175/242] fix telemetry event for save participants --- .../api/node/mainThreadSaveParticipant.ts | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts index fcee60aee33..2eab8be139a 100644 --- a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts +++ b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts @@ -22,7 +22,13 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel'; import { ExtHostContext, ExtHostDocumentSaveParticipantShape } from './extHost.protocol'; -class TrimWhitespaceParticipant implements ISaveParticipant { +interface INamedSaveParticpant extends ISaveParticipant { + readonly name: string; +} + +class TrimWhitespaceParticipant implements INamedSaveParticpant { + + readonly name = 'TrimWhitespaceParticipant'; constructor( @IConfigurationService private configurationService: IConfigurationService, @@ -76,7 +82,9 @@ class TrimWhitespaceParticipant implements ISaveParticipant { } } -class FormatOnSaveParticipant implements ISaveParticipant { +class FormatOnSaveParticipant implements INamedSaveParticpant { + + readonly name = 'FormatOnSaveParticipant'; constructor( @ICodeEditorService private _editorService: ICodeEditorService, @@ -159,10 +167,12 @@ class FormatOnSaveParticipant implements ISaveParticipant { } } -class ExtHostSaveParticipant implements ISaveParticipant { +class ExtHostSaveParticipant implements INamedSaveParticpant { private _proxy: ExtHostDocumentSaveParticipantShape; + readonly name = 'ExtHostSaveParticipant'; + constructor( @IThreadService threadService: IThreadService) { this._proxy = threadService.get(ExtHostContext.ExtHostDocumentSaveParticipant); } @@ -181,7 +191,7 @@ class ExtHostSaveParticipant implements ISaveParticipant { // The save participant can change a model before its saved to support various scenarios like trimming trailing whitespace export class SaveParticipant implements ISaveParticipant { - private _saveParticipants: ISaveParticipant[]; + private _saveParticipants: INamedSaveParticpant[]; constructor( @ITelemetryService private _telemetryService: ITelemetryService, @@ -204,7 +214,7 @@ export class SaveParticipant implements ISaveParticipant { const promiseFactory = this._saveParticipants.map(p => () => { - const {name} = Object.getPrototypeOf(p).constructor; + const {name} = p; const t1 = Date.now(); return TPromise.as(p.participate(model, env)).then(() => { @@ -216,7 +226,7 @@ export class SaveParticipant implements ISaveParticipant { }); return sequence(promiseFactory).then(() => { - this._telemetryService.publicLog('saveParticipantTimes', stats); + this._telemetryService.publicLog('saveParticipantStats', stats); }); } } From 9a929da4f7db4a9f8b509ce0b3fe9c90c88756f4 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:30:02 +0200 Subject: [PATCH 176/242] debug: fix loadMoreStackFrames scenario fixes #14614 --- .../parts/debug/electron-browser/debugViewer.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts index 69fc9bea6be..f242c03a8cb 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts @@ -212,8 +212,12 @@ export class BaseDebugController extends treedefaults.DefaultController { // call stack -class ThreadAndProcessIds { +class ThreadAndProcessIds implements debug.ITreeElement { constructor(public processId: string, public threadId: number) { } + + public getId(): string { + return `${this.processId}:${this.threadId}`; + } } export class CallStackController extends BaseDebugController { @@ -340,9 +344,6 @@ export class CallStackActionProvider implements renderer.IActionProvider { export class CallStackDataSource implements tree.IDataSource { public getId(tree: tree.ITree, element: any): string { - if (typeof element === 'number') { - return element.toString(); - } if (typeof element === 'string') { return element; } From 85328f53e68f6deb2a453265f28fdb82a3b6d237 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:55:15 +0200 Subject: [PATCH 177/242] debug: fix issue with not passing outFiles #14655 --- src/vs/workbench/parts/debug/common/debug.ts | 1 + src/vs/workbench/parts/debug/electron-browser/debugService.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index c97d8d042dc..33a7c77c119 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -302,6 +302,7 @@ export interface IExtHostConfig extends IEnvConfig { port?: number; sourceMaps?: boolean; outDir?: string; + outFiles?: string; } export interface IConfig extends IEnvConfig { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 1ddf8591d22..78a6ed53169 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -770,7 +770,7 @@ export class DebugService implements debug.IDebugService { request: 'attach', port, sourceMaps: configuration.sourceMaps, - outDir: configuration.outDir, + outFiles: configuration.outDir || configuration.outFiles, debugServer: configuration.debugServer }) ); From 3148c9224c0982b4aafcea0f2c5e05d00c1e5a4d Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 12:59:34 +0200 Subject: [PATCH 178/242] debug: get rid of IExtHostConfig --- src/vs/workbench/parts/debug/common/debug.ts | 7 ------- .../parts/debug/electron-browser/debugService.ts | 13 +++---------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 33a7c77c119..ad059f2ca4e 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -298,13 +298,6 @@ export interface IEnvConfig { configurationNames?: string[]; } -export interface IExtHostConfig extends IEnvConfig { - port?: number; - sourceMaps?: boolean; - outDir?: string; - outFiles?: string; -} - export interface IConfig extends IEnvConfig { windows?: IEnvConfig; osx?: IEnvConfig; diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 78a6ed53169..7b44c769d3b 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -601,7 +601,7 @@ export class DebugService implements debug.IDebugService { })))); } - private doCreateProcess(sessionId: string, configuration: debug.IExtHostConfig): TPromise { + private doCreateProcess(sessionId: string, configuration: debug.IConfig): TPromise { return this.telemetryService.getTelemetryInfo().then(info => { const telemetryInfo: { [key: string]: string } = Object.create(null); @@ -764,15 +764,8 @@ export class DebugService implements debug.IDebugService { const sessionId = uuid.generateUuid(); this.setStateAndEmit(sessionId, debug.State.Initializing); - return this.configurationManager.getConfiguration(this.viewModel.selectedConfigurationName).then((configuration: debug.IExtHostConfig) => - this.doCreateProcess(sessionId, { - type: configuration.type, - request: 'attach', - port, - sourceMaps: configuration.sourceMaps, - outFiles: configuration.outDir || configuration.outFiles, - debugServer: configuration.debugServer - }) + return this.configurationManager.getConfiguration(this.viewModel.selectedConfigurationName).then(config => + this.doCreateProcess(sessionId, config) ); } From 0706b425537d8cfe2766eac00662ecf988c7ed7f Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Fri, 28 Oct 2016 14:48:01 +0200 Subject: [PATCH 179/242] fixes #14659 --- src/vs/workbench/parts/git/common/gitModel.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/parts/git/common/gitModel.ts b/src/vs/workbench/parts/git/common/gitModel.ts index 1eaf566f550..b36fbfaa982 100644 --- a/src/vs/workbench/parts/git/common/gitModel.ts +++ b/src/vs/workbench/parts/git/common/gitModel.ts @@ -10,7 +10,7 @@ import { EventEmitter } from 'vs/base/common/eventEmitter'; import { IStatusModel, IStatusSummary, IRawFileStatus, ModelEvents, IFileStatus, IStatusGroup, Status, StatusType, - IBranch, IRef, IRemote, IModel, IRawStatus + IBranch, IRef, IRemote, IModel, IRawStatus, RefType } from 'vs/workbench/parts/git/common/git'; export class FileStatus implements IFileStatus { @@ -389,9 +389,9 @@ export class Model extends EventEmitter implements IModel { return ''; } - const ref = this.getRefs().filter(iref => iref.commit === this.HEAD.commit)[0]; - const refName = ref && ref.name; - const head = refName || this.HEAD.name || this.HEAD.commit.substr(0, 8); + const tag = this.getRefs().filter(iref => iref.type === RefType.Tag && iref.commit === this.HEAD.commit)[0]; + const tagName = tag && tag.name; + const head = this.HEAD.name || tagName || this.HEAD.commit.substr(0, 8); const statusSummary = this.getStatus().getSummary(); From 9225658a23d5e27c06078c7c3631bb7e6696409c Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 14:54:59 +0200 Subject: [PATCH 180/242] fixes #14615 --- src/vs/workbench/parts/debug/browser/debugActions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/browser/debugActions.ts b/src/vs/workbench/parts/debug/browser/debugActions.ts index adee9d30765..5ce1dadd9a3 100644 --- a/src/vs/workbench/parts/debug/browser/debugActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugActions.ts @@ -457,7 +457,7 @@ export class ReapplyBreakpointsAction extends AbstractDebugAction { protected isEnabled(state: debug.State): boolean { const model = this.debugService.getModel(); return super.isEnabled(state) && state !== debug.State.Disabled && state !== debug.State.Inactive && - (model.getFunctionBreakpoints().length + model.getBreakpoints().length > 0); + (model.getFunctionBreakpoints().length + model.getBreakpoints().length + model.getExceptionBreakpoints().length > 0); } } From 055d37a6dcb798e92579c6ac7142b5d078247974 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 15:09:32 +0200 Subject: [PATCH 181/242] debug: make breakpoint decoration span the whole line fixes #14643 --- src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts index b7e2a7573de..0a479198fbe 100644 --- a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts +++ b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts @@ -264,7 +264,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution { return breakpoints.map((breakpoint) => { return { options: this.getBreakpointDecorationOptions(breakpoint), - range: createRange(breakpoint.lineNumber, 1, breakpoint.lineNumber, 2) + range: createRange(breakpoint.lineNumber, 1, breakpoint.lineNumber, Number.MAX_VALUE) }; }); } From 4ef113d3f22c3eb9ac87a46af1a4583a62d33e10 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 15:35:34 +0200 Subject: [PATCH 182/242] debugViewer: destructure imports --- .../debug/electron-browser/debugViewer.ts | 514 +++++++++--------- 1 file changed, 257 insertions(+), 257 deletions(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts index f242c03a8cb..cb6f0ab1a92 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts @@ -3,28 +3,28 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import nls = require('vs/nls'); +import * as nls from 'vs/nls'; import { TPromise } from 'vs/base/common/winjs.base'; -import lifecycle = require('vs/base/common/lifecycle'); +import * as lifecycle from 'vs/base/common/lifecycle'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; -import paths = require('vs/base/common/paths'); -import async = require('vs/base/common/async'); -import errors = require('vs/base/common/errors'); -import strings = require('vs/base/common/strings'); +import * as paths from 'vs/base/common/paths'; +import * as async from 'vs/base/common/async'; +import * as errors from 'vs/base/common/errors'; +import { equalsIgnoreCase } from 'vs/base/common/strings'; import { isMacintosh } from 'vs/base/common/platform'; -import dom = require('vs/base/browser/dom'); +import * as dom from 'vs/base/browser/dom'; import { IMouseEvent } from 'vs/base/browser/mouseEvent'; -import labels = require('vs/base/common/labels'); -import actions = require('vs/base/common/actions'); -import actionbar = require('vs/base/browser/ui/actionbar/actionbar'); -import tree = require('vs/base/parts/tree/browser/tree'); +import { getPathLabel } from 'vs/base/common/labels'; +import { IAction, IActionRunner } from 'vs/base/common/actions'; +import { IActionItem, Separator, ActionBar } from 'vs/base/browser/ui/actionbar/actionbar'; +import { ITree, IAccessibilityProvider, ContextMenuEvent, IDataSource, IRenderer } from 'vs/base/parts/tree/browser/tree'; import { InputBox, IInputValidationOptions } from 'vs/base/browser/ui/inputbox/inputBox'; -import treedefaults = require('vs/base/parts/tree/browser/treeDefaults'); -import renderer = require('vs/base/parts/tree/browser/actionsRenderer'); -import debug = require('vs/workbench/parts/debug/common/debug'); -import model = require('vs/workbench/parts/debug/common/debugModel'); -import viewmodel = require('vs/workbench/parts/debug/common/debugViewModel'); -import debugactions = require('vs/workbench/parts/debug/browser/debugActions'); +import { DefaultController } from 'vs/base/parts/tree/browser/treeDefaults'; +import { IActionProvider } from 'vs/base/parts/tree/browser/actionsRenderer'; +import * as debug from 'vs/workbench/parts/debug/common/debug'; +import { Expression, Variable, FunctionBreakpoint, StackFrame, Thread, Process, Breakpoint, ExceptionBreakpoint, Model, Scope } from 'vs/workbench/parts/debug/common/debugModel'; +import { ViewModel } from 'vs/workbench/parts/debug/common/debugViewModel'; +import { ContinueAction, StepOverAction, PauseAction, AddFunctionBreakpointAction, ReapplyBreakpointsAction, DisableAllBreakpointsAction, RemoveBreakpointAction, ToggleEnablementAction, RenameFunctionBreakpointAction, RemoveWatchExpressionAction, AddWatchExpressionAction, EditWatchExpressionAction, RemoveAllBreakpointsAction, EnableAllBreakpointsAction, StepOutAction, StepIntoAction, SetValueAction, RemoveAllWatchExpressionsAction, ToggleBreakpointsActivatedAction, RestartFrameAction, AddToWatchExpressionsAction } from 'vs/workbench/parts/debug/browser/debugActions'; import { CopyValueAction } from 'vs/workbench/parts/debug/electron-browser/electronDebugActions'; import { IContextViewService, IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; @@ -43,9 +43,9 @@ export function renderExpressionValue(expressionOrValue: debug.IExpression | str // remove stale classes container.className = 'value'; // when resolving expressions we represent errors from the server as a variable with name === null. - if (value === null || ((expressionOrValue instanceof model.Expression || expressionOrValue instanceof model.Variable) && !expressionOrValue.available)) { + if (value === null || ((expressionOrValue instanceof Expression || expressionOrValue instanceof Variable) && !expressionOrValue.available)) { dom.addClass(container, 'unavailable'); - if (value !== model.Expression.DEFAULT_VALUE) { + if (value !== Expression.DEFAULT_VALUE) { dom.addClass(container, 'error'); } } else if (!isNaN(+value)) { @@ -68,7 +68,7 @@ export function renderExpressionValue(expressionOrValue: debug.IExpression | str container.title = value; } -export function renderVariable(tree: tree.ITree, variable: model.Variable, data: IVariableTemplateData, showChanged: boolean): void { +export function renderVariable(tree: ITree, variable: Variable, data: IVariableTemplateData, showChanged: boolean): void { if (variable.available) { data.name.textContent = variable.name; data.name.title = variable.type ? variable.type : ''; @@ -91,7 +91,7 @@ interface IRenameBoxOptions { validationOptions?: IInputValidationOptions; } -function renderRenameBox(debugService: debug.IDebugService, contextViewService: IContextViewService, tree: tree.ITree, element: any, container: HTMLElement, options: IRenameBoxOptions): void { +function renderRenameBox(debugService: debug.IDebugService, contextViewService: IContextViewService, tree: ITree, element: any, container: HTMLElement, options: IRenameBoxOptions): void { let inputBoxContainer = dom.append(container, $('.inputBoxContainer')); let inputBox = new InputBox(inputBoxContainer, contextViewService, { validationOptions: options.validationOptions, @@ -109,15 +109,15 @@ function renderRenameBox(debugService: debug.IDebugService, contextViewService: const wrapUp = async.once((renamed: boolean) => { if (!disposed) { disposed = true; - if (element instanceof model.Expression && renamed && inputBox.value) { + if (element instanceof Expression && renamed && inputBox.value) { debugService.renameWatchExpression(element.getId(), inputBox.value).done(null, errors.onUnexpectedError); - } else if (element instanceof model.Expression && !element.name) { + } else if (element instanceof Expression && !element.name) { debugService.removeWatchExpressions(element.getId()); - } else if (element instanceof model.FunctionBreakpoint && renamed && inputBox.value) { + } else if (element instanceof FunctionBreakpoint && renamed && inputBox.value) { debugService.renameFunctionBreakpoint(element.getId(), inputBox.value).done(null, errors.onUnexpectedError); - } else if (element instanceof model.FunctionBreakpoint && !element.name) { + } else if (element instanceof FunctionBreakpoint && !element.name) { debugService.removeFunctionBreakpoints(element.getId()).done(null, errors.onUnexpectedError); - } else if (element instanceof model.Variable) { + } else if (element instanceof Variable) { element.errorMessage = null; if (renamed && element.value !== inputBox.value) { element.setVariable(inputBox.value) @@ -153,15 +153,15 @@ function getSourceName(source: Source, contextService: IWorkspaceContextService) return source.name; } - return labels.getPathLabel(paths.basename(source.uri.fsPath), contextService); + return getPathLabel(paths.basename(source.uri.fsPath), contextService); } -export class BaseDebugController extends treedefaults.DefaultController { +export class BaseDebugController extends DefaultController { constructor( protected debugService: debug.IDebugService, private contextMenuService: IContextMenuService, - private actionProvider: renderer.IActionProvider, + private actionProvider: IActionProvider, private focusOnContextMenu = true ) { super(); @@ -174,7 +174,7 @@ export class BaseDebugController extends treedefaults.DefaultController { } } - public onContextMenu(tree: tree.ITree, element: debug.IEnablement, event: tree.ContextMenuEvent): boolean { + public onContextMenu(tree: ITree, element: debug.IEnablement, event: ContextMenuEvent): boolean { if (event.target && event.target.tagName && event.target.tagName.toLowerCase() === 'input') { return false; } @@ -205,7 +205,7 @@ export class BaseDebugController extends treedefaults.DefaultController { return false; } - protected onDelete(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onDelete(tree: ITree, event: IKeyboardEvent): boolean { return false; } } @@ -222,51 +222,51 @@ class ThreadAndProcessIds implements debug.ITreeElement { export class CallStackController extends BaseDebugController { - protected onLeftClick(tree: tree.ITree, element: any, event: IMouseEvent): boolean { + protected onLeftClick(tree: ITree, element: any, event: IMouseEvent): boolean { if (element instanceof ThreadAndProcessIds) { return this.showMoreStackFrames(tree, element); } - if (element instanceof model.StackFrame) { + if (element instanceof StackFrame) { this.focusStackFrame(element, event, true); } return super.onLeftClick(tree, element, event); } - protected onEnter(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onEnter(tree: ITree, event: IKeyboardEvent): boolean { const element = tree.getFocus(); if (element instanceof ThreadAndProcessIds) { return this.showMoreStackFrames(tree, element); } - if (element instanceof model.StackFrame) { + if (element instanceof StackFrame) { this.focusStackFrame(element, event, false); } return super.onEnter(tree, event); } - protected onUp(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onUp(tree: ITree, event: IKeyboardEvent): boolean { super.onUp(tree, event); this.focusStackFrame(tree.getFocus(), event, true); return true; } - protected onPageUp(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onPageUp(tree: ITree, event: IKeyboardEvent): boolean { super.onPageUp(tree, event); this.focusStackFrame(tree.getFocus(), event, true); return true; } - protected onDown(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onDown(tree: ITree, event: IKeyboardEvent): boolean { super.onDown(tree, event); this.focusStackFrame(tree.getFocus(), event, true); return true; } - protected onPageDown(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onPageDown(tree: ITree, event: IKeyboardEvent): boolean { super.onPageDown(tree, event); this.focusStackFrame(tree.getFocus(), event, true); @@ -274,7 +274,7 @@ export class CallStackController extends BaseDebugController { } // user clicked / pressed on 'Load More Stack Frames', get those stack frames and refresh the tree. - private showMoreStackFrames(tree: tree.ITree, threadAndProcessIds: ThreadAndProcessIds): boolean { + private showMoreStackFrames(tree: ITree, threadAndProcessIds: ThreadAndProcessIds): boolean { const process = this.debugService.getModel().getProcesses().filter(p => p.getId() === threadAndProcessIds.processId).pop(); const thread = process && process.getThread(threadAndProcessIds.threadId); if (thread) { @@ -296,54 +296,54 @@ export class CallStackController extends BaseDebugController { } -export class CallStackActionProvider implements renderer.IActionProvider { +export class CallStackActionProvider implements IActionProvider { constructor( @IInstantiationService private instantiationService: IInstantiationService, @debug.IDebugService private debugService: debug.IDebugService) { // noop } - public hasActions(tree: tree.ITree, element: any): boolean { + public hasActions(tree: ITree, element: any): boolean { return false; } - public getActions(tree: tree.ITree, element: any): TPromise { + public getActions(tree: ITree, element: any): TPromise { return TPromise.as([]); } - public hasSecondaryActions(tree: tree.ITree, element: any): boolean { - return element instanceof model.Thread || element instanceof model.StackFrame; + public hasSecondaryActions(tree: ITree, element: any): boolean { + return element instanceof Thread || element instanceof StackFrame; } - public getSecondaryActions(tree: tree.ITree, element: any): TPromise { - const actions: actions.Action[] = []; - if (element instanceof model.Thread) { - const thread = element; + public getSecondaryActions(tree: ITree, element: any): TPromise { + const actions: IAction[] = []; + if (element instanceof Thread) { + const thread = element; if (thread.stopped) { - actions.push(this.instantiationService.createInstance(debugactions.ContinueAction, debugactions.ContinueAction.ID, debugactions.ContinueAction.LABEL)); - actions.push(this.instantiationService.createInstance(debugactions.StepOverAction, debugactions.StepOverAction.ID, debugactions.StepOverAction.LABEL)); - actions.push(this.instantiationService.createInstance(debugactions.StepIntoAction, debugactions.StepIntoAction.ID, debugactions.StepIntoAction.LABEL)); - actions.push(this.instantiationService.createInstance(debugactions.StepOutAction, debugactions.StepOutAction.ID, debugactions.StepOutAction.LABEL)); + actions.push(this.instantiationService.createInstance(ContinueAction, ContinueAction.ID, ContinueAction.LABEL)); + actions.push(this.instantiationService.createInstance(StepOverAction, StepOverAction.ID, StepOverAction.LABEL)); + actions.push(this.instantiationService.createInstance(StepIntoAction, StepIntoAction.ID, StepIntoAction.LABEL)); + actions.push(this.instantiationService.createInstance(StepOutAction, StepOutAction.ID, StepOutAction.LABEL)); } else { - actions.push(this.instantiationService.createInstance(debugactions.PauseAction, debugactions.PauseAction.ID, debugactions.PauseAction.LABEL)); + actions.push(this.instantiationService.createInstance(PauseAction, PauseAction.ID, PauseAction.LABEL)); } - } else if (element instanceof model.StackFrame) { + } else if (element instanceof StackFrame) { const capabilities = this.debugService.getViewModel().focusedProcess.session.configuration.capabilities; if (typeof capabilities.supportsRestartFrame === 'boolean' && capabilities.supportsRestartFrame) { - actions.push(this.instantiationService.createInstance(debugactions.RestartFrameAction, debugactions.RestartFrameAction.ID, debugactions.RestartFrameAction.LABEL)); + actions.push(this.instantiationService.createInstance(RestartFrameAction, RestartFrameAction.ID, RestartFrameAction.LABEL)); } } return TPromise.as(actions); } - public getActionItem(tree: tree.ITree, element: any, action: actions.IAction): actionbar.IActionItem { + public getActionItem(tree: ITree, element: any, action: IAction): IActionItem { return null; } } -export class CallStackDataSource implements tree.IDataSource { +export class CallStackDataSource implements IDataSource { - public getId(tree: tree.ITree, element: any): string { + public getId(tree: ITree, element: any): string { if (typeof element === 'string') { return element; } @@ -351,15 +351,15 @@ export class CallStackDataSource implements tree.IDataSource { return element.getId(); } - public hasChildren(tree: tree.ITree, element: any): boolean { - return element instanceof model.Model || element instanceof model.Process || (element instanceof model.Thread && (element).stopped); + public hasChildren(tree: ITree, element: any): boolean { + return element instanceof Model || element instanceof Process || (element instanceof Thread && (element).stopped); } - public getChildren(tree: tree.ITree, element: any): TPromise { - if (element instanceof model.Thread) { + public getChildren(tree: ITree, element: any): TPromise { + if (element instanceof Thread) { return this.getThreadChildren(element); } - if (element instanceof model.Model) { + if (element instanceof Model) { return TPromise.as(element.getProcesses()); } @@ -380,7 +380,7 @@ export class CallStackDataSource implements tree.IDataSource { }); } - public getParent(tree: tree.ITree, element: any): TPromise { + public getParent(tree: ITree, element: any): TPromise { return TPromise.as(null); } } @@ -413,7 +413,7 @@ interface IStackFrameTemplateData { lineNumber: HTMLElement; } -export class CallStackRenderer implements tree.IRenderer { +export class CallStackRenderer implements IRenderer { private static THREAD_TEMPLATE_ID = 'thread'; private static STACK_FRAME_TEMPLATE_ID = 'stackFrame'; @@ -425,18 +425,18 @@ export class CallStackRenderer implements tree.IRenderer { // noop } - public getHeight(tree: tree.ITree, element: any): number { + public getHeight(tree: ITree, element: any): number { return 22; } - public getTemplateId(tree: tree.ITree, element: any): string { - if (element instanceof model.Process) { + public getTemplateId(tree: ITree, element: any): string { + if (element instanceof Process) { return CallStackRenderer.PROCESS_TEMPLATE_ID; } - if (element instanceof model.Thread) { + if (element instanceof Thread) { return CallStackRenderer.THREAD_TEMPLATE_ID; } - if (element instanceof model.StackFrame) { + if (element instanceof StackFrame) { return CallStackRenderer.STACK_FRAME_TEMPLATE_ID; } if (typeof element === 'string') { @@ -446,7 +446,7 @@ export class CallStackRenderer implements tree.IRenderer { return CallStackRenderer.LOAD_MORE_TEMPLATE_ID; } - public renderTemplate(tree: tree.ITree, templateId: string, container: HTMLElement): any { + public renderTemplate(tree: ITree, templateId: string, container: HTMLElement): any { if (templateId === CallStackRenderer.PROCESS_TEMPLATE_ID) { let data: IProcessTemplateData = Object.create(null); data.process = dom.append(container, $('.process')); @@ -487,7 +487,7 @@ export class CallStackRenderer implements tree.IRenderer { return data; } - public renderElement(tree: tree.ITree, element: any, templateId: string, templateData: any): void { + public renderElement(tree: ITree, element: any, templateId: string, templateData: any): void { if (templateId === CallStackRenderer.PROCESS_TEMPLATE_ID) { this.renderProcess(element, templateData); } else if (templateId === CallStackRenderer.THREAD_TEMPLATE_ID) { @@ -536,23 +536,23 @@ export class CallStackRenderer implements tree.IRenderer { } } - public disposeTemplate(tree: tree.ITree, templateId: string, templateData: any): void { + public disposeTemplate(tree: ITree, templateId: string, templateData: any): void { // noop } } -export class CallstackAccessibilityProvider implements tree.IAccessibilityProvider { +export class CallstackAccessibilityProvider implements IAccessibilityProvider { constructor( @IWorkspaceContextService private contextService: IWorkspaceContextService) { // noop } - public getAriaLabel(tree: tree.ITree, element: any): string { - if (element instanceof model.Thread) { - return nls.localize('threadAriaLabel', "Thread {0}, callstack, debug", (element).name); + public getAriaLabel(tree: ITree, element: any): string { + if (element instanceof Thread) { + return nls.localize('threadAriaLabel', "Thread {0}, callstack, debug", (element).name); } - if (element instanceof model.StackFrame) { - return nls.localize('stackFrameAriaLabel', "Stack Frame {0} line {1} {2}, callstack, debug", (element).name, (element).lineNumber, getSourceName((element).source, this.contextService)); + if (element instanceof StackFrame) { + return nls.localize('stackFrameAriaLabel', "Stack Frame {0} line {1} {2}, callstack, debug", (element).name, (element).lineNumber, getSourceName((element).source, this.contextService)); } return null; @@ -561,68 +561,68 @@ export class CallstackAccessibilityProvider implements tree.IAccessibilityProvid // variables -export class VariablesActionProvider implements renderer.IActionProvider { +export class VariablesActionProvider implements IActionProvider { constructor(private instantiationService: IInstantiationService) { // noop } - public hasActions(tree: tree.ITree, element: any): boolean { + public hasActions(tree: ITree, element: any): boolean { return false; } - public getActions(tree: tree.ITree, element: any): TPromise { + public getActions(tree: ITree, element: any): TPromise { return TPromise.as([]); } - public hasSecondaryActions(tree: tree.ITree, element: any): boolean { - return element instanceof model.Variable; + public hasSecondaryActions(tree: ITree, element: any): boolean { + return element instanceof Variable; } - public getSecondaryActions(tree: tree.ITree, element: any): TPromise { - let actions: actions.Action[] = []; - const variable = element; + public getSecondaryActions(tree: ITree, element: any): TPromise { + let actions: IAction[] = []; + const variable = element; if (variable.reference === 0) { - actions.push(this.instantiationService.createInstance(debugactions.SetValueAction, debugactions.SetValueAction.ID, debugactions.SetValueAction.LABEL, variable)); + actions.push(this.instantiationService.createInstance(SetValueAction, SetValueAction.ID, SetValueAction.LABEL, variable)); actions.push(this.instantiationService.createInstance(CopyValueAction, CopyValueAction.ID, CopyValueAction.LABEL, variable)); - actions.push(new actionbar.Separator()); + actions.push(new Separator()); } - actions.push(this.instantiationService.createInstance(debugactions.AddToWatchExpressionsAction, debugactions.AddToWatchExpressionsAction.ID, debugactions.AddToWatchExpressionsAction.LABEL, variable)); + actions.push(this.instantiationService.createInstance(AddToWatchExpressionsAction, AddToWatchExpressionsAction.ID, AddToWatchExpressionsAction.LABEL, variable)); return TPromise.as(actions); } - public getActionItem(tree: tree.ITree, element: any, action: actions.IAction): actionbar.IActionItem { + public getActionItem(tree: ITree, element: any, action: IAction): IActionItem { return null; } } -export class VariablesDataSource implements tree.IDataSource { +export class VariablesDataSource implements IDataSource { - public getId(tree: tree.ITree, element: any): string { + public getId(tree: ITree, element: any): string { return element.getId(); } - public hasChildren(tree: tree.ITree, element: any): boolean { - if (element instanceof viewmodel.ViewModel || element instanceof model.Scope) { + public hasChildren(tree: ITree, element: any): boolean { + if (element instanceof ViewModel || element instanceof Scope) { return true; } - let variable = element; - return variable.reference !== 0 && !strings.equalsIgnoreCase(variable.value, 'null'); + let variable = element; + return variable.reference !== 0 && !equalsIgnoreCase(variable.value, 'null'); } - public getChildren(tree: tree.ITree, element: any): TPromise { - if (element instanceof viewmodel.ViewModel) { - const focusedStackFrame = (element).focusedStackFrame; + public getChildren(tree: ITree, element: any): TPromise { + if (element instanceof ViewModel) { + const focusedStackFrame = (element).focusedStackFrame; return focusedStackFrame ? focusedStackFrame.getScopes() : TPromise.as([]); } - let scope = element; + let scope = element; return scope.getChildren(); } - public getParent(tree: tree.ITree, element: any): TPromise { + public getParent(tree: ITree, element: any): TPromise { return TPromise.as(null); } } @@ -637,7 +637,7 @@ export interface IVariableTemplateData { value: HTMLElement; } -export class VariablesRenderer implements tree.IRenderer { +export class VariablesRenderer implements IRenderer { private static SCOPE_TEMPLATE_ID = 'scope'; private static VARIABLE_TEMPLATE_ID = 'variable'; @@ -649,22 +649,22 @@ export class VariablesRenderer implements tree.IRenderer { // noop } - public getHeight(tree: tree.ITree, element: any): number { + public getHeight(tree: ITree, element: any): number { return 22; } - public getTemplateId(tree: tree.ITree, element: any): string { - if (element instanceof model.Scope) { + public getTemplateId(tree: ITree, element: any): string { + if (element instanceof Scope) { return VariablesRenderer.SCOPE_TEMPLATE_ID; } - if (element instanceof model.Variable) { + if (element instanceof Variable) { return VariablesRenderer.VARIABLE_TEMPLATE_ID; } return null; } - public renderTemplate(tree: tree.ITree, templateId: string, container: HTMLElement): any { + public renderTemplate(tree: ITree, templateId: string, container: HTMLElement): any { if (templateId === VariablesRenderer.SCOPE_TEMPLATE_ID) { let data: IScopeTemplateData = Object.create(null); data.name = dom.append(container, $('.scope')); @@ -680,11 +680,11 @@ export class VariablesRenderer implements tree.IRenderer { return data; } - public renderElement(tree: tree.ITree, element: any, templateId: string, templateData: any): void { + public renderElement(tree: ITree, element: any, templateId: string, templateData: any): void { if (templateId === VariablesRenderer.SCOPE_TEMPLATE_ID) { this.renderScope(element, templateData); } else { - const variable = element; + const variable = element; if (variable === this.debugService.getViewModel().getSelectedExpression() || variable.errorMessage) { renderRenameBox(this.debugService, this.contextViewService, tree, variable, (templateData).expression, { initialValue: variable.value, @@ -699,23 +699,23 @@ export class VariablesRenderer implements tree.IRenderer { } } - private renderScope(scope: model.Scope, data: IScopeTemplateData): void { + private renderScope(scope: Scope, data: IScopeTemplateData): void { data.name.textContent = scope.name; } - public disposeTemplate(tree: tree.ITree, templateId: string, templateData: any): void { + public disposeTemplate(tree: ITree, templateId: string, templateData: any): void { // noop } } -export class VariablesAccessibilityProvider implements tree.IAccessibilityProvider { +export class VariablesAccessibilityProvider implements IAccessibilityProvider { - public getAriaLabel(tree: tree.ITree, element: any): string { - if (element instanceof model.Scope) { - return nls.localize('variableScopeAriaLabel', "Scope {0}, variables, debug", (element).name); + public getAriaLabel(tree: ITree, element: any): string { + if (element instanceof Scope) { + return nls.localize('variableScopeAriaLabel', "Scope {0}, variables, debug", (element).name); } - if (element instanceof model.Variable) { - return nls.localize('variableAriaLabel', "{0} value {1}, variables, debug", (element).name, (element).value); + if (element instanceof Variable) { + return nls.localize('variableAriaLabel', "{0} value {1}, variables, debug", (element).name, (element).value); } return null; @@ -724,14 +724,14 @@ export class VariablesAccessibilityProvider implements tree.IAccessibilityProvid export class VariablesController extends BaseDebugController { - constructor(debugService: debug.IDebugService, contextMenuService: IContextMenuService, actionProvider: renderer.IActionProvider) { + constructor(debugService: debug.IDebugService, contextMenuService: IContextMenuService, actionProvider: IActionProvider) { super(debugService, contextMenuService, actionProvider); this.downKeyBindingDispatcher.set(KeyCode.Enter, this.setSelectedExpression.bind(this)); } - protected onLeftClick(tree: tree.ITree, element: any, event: IMouseEvent): boolean { + protected onLeftClick(tree: ITree, element: any, event: IMouseEvent): boolean { // double click on primitive value: open input box to be able to set the value - if (element instanceof model.Variable && event.detail === 2) { + if (element instanceof Variable && event.detail === 2) { const expression = element; if (expression.reference === 0) { this.debugService.getViewModel().setSelectedExpression(expression); @@ -742,9 +742,9 @@ export class VariablesController extends BaseDebugController { return super.onLeftClick(tree, element, event); } - protected setSelectedExpression(tree: tree.ITree, event: KeyboardEvent): boolean { + protected setSelectedExpression(tree: ITree, event: KeyboardEvent): boolean { const element = tree.getFocus(); - if (element instanceof model.Variable && element.reference === 0) { + if (element instanceof Variable && element.reference === 0) { this.debugService.getViewModel().setSelectedExpression(element); return true; } @@ -755,7 +755,7 @@ export class VariablesController extends BaseDebugController { // watch expressions -export class WatchExpressionsActionProvider implements renderer.IActionProvider { +export class WatchExpressionsActionProvider implements IActionProvider { private instantiationService: IInstantiationService; @@ -763,89 +763,89 @@ export class WatchExpressionsActionProvider implements renderer.IActionProvider this.instantiationService = instantiationService; } - public hasActions(tree: tree.ITree, element: any): boolean { - return element instanceof model.Expression && !!element.name; + public hasActions(tree: ITree, element: any): boolean { + return element instanceof Expression && !!element.name; } - public hasSecondaryActions(tree: tree.ITree, element: any): boolean { + public hasSecondaryActions(tree: ITree, element: any): boolean { return true; } - public getActions(tree: tree.ITree, element: any): TPromise { + public getActions(tree: ITree, element: any): TPromise { return TPromise.as(this.getExpressionActions()); } - public getExpressionActions(): actions.IAction[] { - return [this.instantiationService.createInstance(debugactions.RemoveWatchExpressionAction, debugactions.RemoveWatchExpressionAction.ID, debugactions.RemoveWatchExpressionAction.LABEL)]; + public getExpressionActions(): IAction[] { + return [this.instantiationService.createInstance(RemoveWatchExpressionAction, RemoveWatchExpressionAction.ID, RemoveWatchExpressionAction.LABEL)]; } - public getSecondaryActions(tree: tree.ITree, element: any): TPromise { - const actions: actions.Action[] = []; - if (element instanceof model.Expression) { - const expression = element; - actions.push(this.instantiationService.createInstance(debugactions.AddWatchExpressionAction, debugactions.AddWatchExpressionAction.ID, debugactions.AddWatchExpressionAction.LABEL)); - actions.push(this.instantiationService.createInstance(debugactions.EditWatchExpressionAction, debugactions.EditWatchExpressionAction.ID, debugactions.EditWatchExpressionAction.LABEL, expression)); + public getSecondaryActions(tree: ITree, element: any): TPromise { + const actions: IAction[] = []; + if (element instanceof Expression) { + const expression = element; + actions.push(this.instantiationService.createInstance(AddWatchExpressionAction, AddWatchExpressionAction.ID, AddWatchExpressionAction.LABEL)); + actions.push(this.instantiationService.createInstance(EditWatchExpressionAction, EditWatchExpressionAction.ID, EditWatchExpressionAction.LABEL, expression)); if (expression.reference === 0) { actions.push(this.instantiationService.createInstance(CopyValueAction, CopyValueAction.ID, CopyValueAction.LABEL, expression.value)); } - actions.push(new actionbar.Separator()); + actions.push(new Separator()); - actions.push(this.instantiationService.createInstance(debugactions.RemoveWatchExpressionAction, debugactions.RemoveWatchExpressionAction.ID, debugactions.RemoveWatchExpressionAction.LABEL)); - actions.push(this.instantiationService.createInstance(debugactions.RemoveAllWatchExpressionsAction, debugactions.RemoveAllWatchExpressionsAction.ID, debugactions.RemoveAllWatchExpressionsAction.LABEL)); + actions.push(this.instantiationService.createInstance(RemoveWatchExpressionAction, RemoveWatchExpressionAction.ID, RemoveWatchExpressionAction.LABEL)); + actions.push(this.instantiationService.createInstance(RemoveAllWatchExpressionsAction, RemoveAllWatchExpressionsAction.ID, RemoveAllWatchExpressionsAction.LABEL)); } else { - actions.push(this.instantiationService.createInstance(debugactions.AddWatchExpressionAction, debugactions.AddWatchExpressionAction.ID, debugactions.AddWatchExpressionAction.LABEL)); - if (element instanceof model.Variable) { - const variable = element; + actions.push(this.instantiationService.createInstance(AddWatchExpressionAction, AddWatchExpressionAction.ID, AddWatchExpressionAction.LABEL)); + if (element instanceof Variable) { + const variable = element; if (variable.reference === 0) { actions.push(this.instantiationService.createInstance(CopyValueAction, CopyValueAction.ID, CopyValueAction.LABEL, variable.value)); } - actions.push(new actionbar.Separator()); + actions.push(new Separator()); } - actions.push(this.instantiationService.createInstance(debugactions.RemoveAllWatchExpressionsAction, debugactions.RemoveAllWatchExpressionsAction.ID, debugactions.RemoveAllWatchExpressionsAction.LABEL)); + actions.push(this.instantiationService.createInstance(RemoveAllWatchExpressionsAction, RemoveAllWatchExpressionsAction.ID, RemoveAllWatchExpressionsAction.LABEL)); } return TPromise.as(actions); } - public getActionItem(tree: tree.ITree, element: any, action: actions.IAction): actionbar.IActionItem { + public getActionItem(tree: ITree, element: any, action: IAction): IActionItem { return null; } } -export class WatchExpressionsDataSource implements tree.IDataSource { +export class WatchExpressionsDataSource implements IDataSource { - public getId(tree: tree.ITree, element: any): string { + public getId(tree: ITree, element: any): string { return element.getId(); } - public hasChildren(tree: tree.ITree, element: any): boolean { - if (element instanceof model.Model) { + public hasChildren(tree: ITree, element: any): boolean { + if (element instanceof Model) { return true; } - const watchExpression = element; - return watchExpression.reference !== 0 && !strings.equalsIgnoreCase(watchExpression.value, 'null'); + const watchExpression = element; + return watchExpression.reference !== 0 && !equalsIgnoreCase(watchExpression.value, 'null'); } - public getChildren(tree: tree.ITree, element: any): TPromise { - if (element instanceof model.Model) { - return TPromise.as((element).getWatchExpressions()); + public getChildren(tree: ITree, element: any): TPromise { + if (element instanceof Model) { + return TPromise.as((element).getWatchExpressions()); } - let expression = element; + let expression = element; return expression.getChildren(); } - public getParent(tree: tree.ITree, element: any): TPromise { + public getParent(tree: ITree, element: any): TPromise { return TPromise.as(null); } } interface IWatchExpressionTemplateData extends IVariableTemplateData { - actionBar: actionbar.ActionBar; + actionBar: ActionBar; } -export class WatchExpressionsRenderer implements tree.IRenderer { +export class WatchExpressionsRenderer implements IRenderer { private static WATCH_EXPRESSION_TEMPLATE_ID = 'watchExpression'; private static VARIABLE_TEMPLATE_ID = 'variables'; @@ -853,8 +853,8 @@ export class WatchExpressionsRenderer implements tree.IRenderer { private actionProvider: WatchExpressionsActionProvider; constructor( - actionProvider: renderer.IActionProvider, - private actionRunner: actions.IActionRunner, + actionProvider: IActionProvider, + private actionRunner: IActionRunner, @debug.IDebugService private debugService: debug.IDebugService, @IContextViewService private contextViewService: IContextViewService ) { @@ -862,22 +862,22 @@ export class WatchExpressionsRenderer implements tree.IRenderer { this.actionProvider = actionProvider; } - public getHeight(tree: tree.ITree, element: any): number { + public getHeight(tree: ITree, element: any): number { return 22; } - public getTemplateId(tree: tree.ITree, element: any): string { - if (element instanceof model.Expression) { + public getTemplateId(tree: ITree, element: any): string { + if (element instanceof Expression) { return WatchExpressionsRenderer.WATCH_EXPRESSION_TEMPLATE_ID; } return WatchExpressionsRenderer.VARIABLE_TEMPLATE_ID; } - public renderTemplate(tree: tree.ITree, templateId: string, container: HTMLElement): any { + public renderTemplate(tree: ITree, templateId: string, container: HTMLElement): any { let data: IWatchExpressionTemplateData = Object.create(null); if (templateId === WatchExpressionsRenderer.WATCH_EXPRESSION_TEMPLATE_ID) { - data.actionBar = new actionbar.ActionBar(container, { actionRunner: this.actionRunner }); + data.actionBar = new ActionBar(container, { actionRunner: this.actionRunner }); data.actionBar.push(this.actionProvider.getExpressionActions(), { icon: true, label: false }); } @@ -888,7 +888,7 @@ export class WatchExpressionsRenderer implements tree.IRenderer { return data; } - public renderElement(tree: tree.ITree, element: any, templateId: string, templateData: any): void { + public renderElement(tree: ITree, element: any, templateId: string, templateData: any): void { if (templateId === WatchExpressionsRenderer.WATCH_EXPRESSION_TEMPLATE_ID) { this.renderWatchExpression(tree, element, templateData); } else { @@ -896,9 +896,9 @@ export class WatchExpressionsRenderer implements tree.IRenderer { } } - private renderWatchExpression(tree: tree.ITree, watchExpression: debug.IExpression, data: IWatchExpressionTemplateData): void { + private renderWatchExpression(tree: ITree, watchExpression: debug.IExpression, data: IWatchExpressionTemplateData): void { let selectedExpression = this.debugService.getViewModel().getSelectedExpression(); - if ((selectedExpression instanceof model.Expression && selectedExpression.getId() === watchExpression.getId()) || (watchExpression instanceof model.Expression && !watchExpression.name)) { + if ((selectedExpression instanceof Expression && selectedExpression.getId() === watchExpression.getId()) || (watchExpression instanceof Expression && !watchExpression.name)) { renderRenameBox(this.debugService, this.contextViewService, tree, watchExpression, data.expression, { initialValue: watchExpression.name, placeholder: nls.localize('watchExpressionPlaceholder', "Expression to watch"), @@ -915,7 +915,7 @@ export class WatchExpressionsRenderer implements tree.IRenderer { } } - public disposeTemplate(tree: tree.ITree, templateId: string, templateData: any): void { + public disposeTemplate(tree: ITree, templateId: string, templateData: any): void { if (templateId === WatchExpressionsRenderer.WATCH_EXPRESSION_TEMPLATE_ID) { (templateData).actionBar.dispose(); } @@ -926,14 +926,14 @@ export class WatchExpressionsRenderer implements tree.IRenderer { } } -export class WatchExpressionsAccessibilityProvider implements tree.IAccessibilityProvider { +export class WatchExpressionsAccessibilityProvider implements IAccessibilityProvider { - public getAriaLabel(tree: tree.ITree, element: any): string { - if (element instanceof model.Expression) { - return nls.localize('watchExpressionAriaLabel', "{0} value {1}, watch, debug", (element).name, (element).value); + public getAriaLabel(tree: ITree, element: any): string { + if (element instanceof Expression) { + return nls.localize('watchExpressionAriaLabel', "{0} value {1}, watch, debug", (element).name, (element).value); } - if (element instanceof model.Variable) { - return nls.localize('watchVariableAriaLabel', "{0} value {1}, watch, debug", (element).name, (element).value); + if (element instanceof Variable) { + return nls.localize('watchVariableAriaLabel', "{0} value {1}, watch, debug", (element).name, (element).value); } return null; @@ -942,7 +942,7 @@ export class WatchExpressionsAccessibilityProvider implements tree.IAccessibilit export class WatchExpressionsController extends BaseDebugController { - constructor(debugService: debug.IDebugService, contextMenuService: IContextMenuService, actionProvider: renderer.IActionProvider) { + constructor(debugService: debug.IDebugService, contextMenuService: IContextMenuService, actionProvider: IActionProvider) { super(debugService, contextMenuService, actionProvider); if (isMacintosh) { @@ -952,9 +952,9 @@ export class WatchExpressionsController extends BaseDebugController { } } - protected onLeftClick(tree: tree.ITree, element: any, event: IMouseEvent): boolean { + protected onLeftClick(tree: ITree, element: any, event: IMouseEvent): boolean { // double click on primitive value: open input box to be able to select and copy value. - if (element instanceof model.Expression && event.detail === 2) { + if (element instanceof Expression && event.detail === 2) { const expression = element; if (expression.reference === 0) { this.debugService.getViewModel().setSelectedExpression(expression); @@ -965,10 +965,10 @@ export class WatchExpressionsController extends BaseDebugController { return super.onLeftClick(tree, element, event); } - protected onRename(tree: tree.ITree, event: KeyboardEvent): boolean { + protected onRename(tree: ITree, event: KeyboardEvent): boolean { const element = tree.getFocus(); - if (element instanceof model.Expression) { - const watchExpression = element; + if (element instanceof Expression) { + const watchExpression = element; if (watchExpression.reference === 0) { this.debugService.getViewModel().setSelectedExpression(watchExpression); } @@ -978,10 +978,10 @@ export class WatchExpressionsController extends BaseDebugController { return false; } - protected onDelete(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onDelete(tree: ITree, event: IKeyboardEvent): boolean { const element = tree.getFocus(); - if (element instanceof model.Expression) { - const we = element; + if (element instanceof Expression) { + const we = element; this.debugService.removeWatchExpressions(we.getId()); return true; @@ -993,83 +993,83 @@ export class WatchExpressionsController extends BaseDebugController { // breakpoints -export class BreakpointsActionProvider implements renderer.IActionProvider { +export class BreakpointsActionProvider implements IActionProvider { constructor(private instantiationService: IInstantiationService) { // noop } - public hasActions(tree: tree.ITree, element: any): boolean { - return element instanceof model.Breakpoint; + public hasActions(tree: ITree, element: any): boolean { + return element instanceof Breakpoint; } - public hasSecondaryActions(tree: tree.ITree, element: any): boolean { - return element instanceof model.Breakpoint || element instanceof model.ExceptionBreakpoint || element instanceof model.FunctionBreakpoint; + public hasSecondaryActions(tree: ITree, element: any): boolean { + return element instanceof Breakpoint || element instanceof ExceptionBreakpoint || element instanceof FunctionBreakpoint; } - public getActions(tree: tree.ITree, element: any): TPromise { - if (element instanceof model.Breakpoint) { + public getActions(tree: ITree, element: any): TPromise { + if (element instanceof Breakpoint) { return TPromise.as(this.getBreakpointActions()); } return TPromise.as([]); } - public getBreakpointActions(): actions.IAction[] { - return [this.instantiationService.createInstance(debugactions.RemoveBreakpointAction, debugactions.RemoveBreakpointAction.ID, debugactions.RemoveBreakpointAction.LABEL)]; + public getBreakpointActions(): IAction[] { + return [this.instantiationService.createInstance(RemoveBreakpointAction, RemoveBreakpointAction.ID, RemoveBreakpointAction.LABEL)]; } - public getSecondaryActions(tree: tree.ITree, element: any): TPromise { - const actions: actions.Action[] = [this.instantiationService.createInstance(debugactions.ToggleEnablementAction, debugactions.ToggleEnablementAction.ID, debugactions.ToggleEnablementAction.LABEL)]; - actions.push(new actionbar.Separator()); + public getSecondaryActions(tree: ITree, element: any): TPromise { + const actions: IAction[] = [this.instantiationService.createInstance(ToggleEnablementAction, ToggleEnablementAction.ID, ToggleEnablementAction.LABEL)]; + actions.push(new Separator()); - if (element instanceof model.Breakpoint || element instanceof model.FunctionBreakpoint) { - actions.push(this.instantiationService.createInstance(debugactions.RemoveBreakpointAction, debugactions.RemoveBreakpointAction.ID, debugactions.RemoveBreakpointAction.LABEL)); + if (element instanceof Breakpoint || element instanceof FunctionBreakpoint) { + actions.push(this.instantiationService.createInstance(RemoveBreakpointAction, RemoveBreakpointAction.ID, RemoveBreakpointAction.LABEL)); } - actions.push(this.instantiationService.createInstance(debugactions.RemoveAllBreakpointsAction, debugactions.RemoveAllBreakpointsAction.ID, debugactions.RemoveAllBreakpointsAction.LABEL)); - actions.push(new actionbar.Separator()); + actions.push(this.instantiationService.createInstance(RemoveAllBreakpointsAction, RemoveAllBreakpointsAction.ID, RemoveAllBreakpointsAction.LABEL)); + actions.push(new Separator()); - actions.push(this.instantiationService.createInstance(debugactions.ToggleBreakpointsActivatedAction, debugactions.ToggleBreakpointsActivatedAction.ID, debugactions.ToggleBreakpointsActivatedAction.ACTIVATE_LABEL)); - actions.push(new actionbar.Separator()); + actions.push(this.instantiationService.createInstance(ToggleBreakpointsActivatedAction, ToggleBreakpointsActivatedAction.ID, ToggleBreakpointsActivatedAction.ACTIVATE_LABEL)); + actions.push(new Separator()); - actions.push(this.instantiationService.createInstance(debugactions.EnableAllBreakpointsAction, debugactions.EnableAllBreakpointsAction.ID, debugactions.EnableAllBreakpointsAction.LABEL)); - actions.push(this.instantiationService.createInstance(debugactions.DisableAllBreakpointsAction, debugactions.DisableAllBreakpointsAction.ID, debugactions.DisableAllBreakpointsAction.LABEL)); - actions.push(new actionbar.Separator()); + actions.push(this.instantiationService.createInstance(EnableAllBreakpointsAction, EnableAllBreakpointsAction.ID, EnableAllBreakpointsAction.LABEL)); + actions.push(this.instantiationService.createInstance(DisableAllBreakpointsAction, DisableAllBreakpointsAction.ID, DisableAllBreakpointsAction.LABEL)); + actions.push(new Separator()); - actions.push(this.instantiationService.createInstance(debugactions.AddFunctionBreakpointAction, debugactions.AddFunctionBreakpointAction.ID, debugactions.AddFunctionBreakpointAction.LABEL)); - if (element instanceof model.FunctionBreakpoint) { - actions.push(this.instantiationService.createInstance(debugactions.RenameFunctionBreakpointAction, debugactions.RenameFunctionBreakpointAction.ID, debugactions.RenameFunctionBreakpointAction.LABEL)); + actions.push(this.instantiationService.createInstance(AddFunctionBreakpointAction, AddFunctionBreakpointAction.ID, AddFunctionBreakpointAction.LABEL)); + if (element instanceof FunctionBreakpoint) { + actions.push(this.instantiationService.createInstance(RenameFunctionBreakpointAction, RenameFunctionBreakpointAction.ID, RenameFunctionBreakpointAction.LABEL)); } - actions.push(new actionbar.Separator()); + actions.push(new Separator()); - actions.push(this.instantiationService.createInstance(debugactions.ReapplyBreakpointsAction, debugactions.ReapplyBreakpointsAction.ID, debugactions.ReapplyBreakpointsAction.LABEL)); + actions.push(this.instantiationService.createInstance(ReapplyBreakpointsAction, ReapplyBreakpointsAction.ID, ReapplyBreakpointsAction.LABEL)); return TPromise.as(actions); } - public getActionItem(tree: tree.ITree, element: any, action: actions.IAction): actionbar.IActionItem { + public getActionItem(tree: ITree, element: any, action: IAction): IActionItem { return null; } } -export class BreakpointsDataSource implements tree.IDataSource { +export class BreakpointsDataSource implements IDataSource { - public getId(tree: tree.ITree, element: any): string { + public getId(tree: ITree, element: any): string { return element.getId(); } - public hasChildren(tree: tree.ITree, element: any): boolean { - return element instanceof model.Model; + public hasChildren(tree: ITree, element: any): boolean { + return element instanceof Model; } - public getChildren(tree: tree.ITree, element: any): TPromise { - const model = element; + public getChildren(tree: ITree, element: any): TPromise { + const model = element; const exBreakpoints = model.getExceptionBreakpoints(); return TPromise.as(exBreakpoints.concat(model.getFunctionBreakpoints()).concat(model.getBreakpoints())); } - public getParent(tree: tree.ITree, element: any): TPromise { + public getParent(tree: ITree, element: any): TPromise { return TPromise.as(null); } } @@ -1082,16 +1082,16 @@ interface IExceptionBreakpointTemplateData { } interface IBreakpointTemplateData extends IExceptionBreakpointTemplateData { - actionBar: actionbar.ActionBar; + actionBar: ActionBar; lineNumber: HTMLElement; filePath: HTMLElement; } interface IFunctionBreakpointTemplateData extends IExceptionBreakpointTemplateData { - actionBar: actionbar.ActionBar; + actionBar: ActionBar; } -export class BreakpointsRenderer implements tree.IRenderer { +export class BreakpointsRenderer implements IRenderer { private static EXCEPTION_BREAKPOINT_TEMPLATE_ID = 'exceptionBreakpoint'; private static FUNCTION_BREAKPOINT_TEMPLATE_ID = 'functionBreakpoint'; @@ -1099,7 +1099,7 @@ export class BreakpointsRenderer implements tree.IRenderer { constructor( private actionProvider: BreakpointsActionProvider, - private actionRunner: actions.IActionRunner, + private actionRunner: IActionRunner, @IWorkspaceContextService private contextService: IWorkspaceContextService, @debug.IDebugService private debugService: debug.IDebugService, @IContextViewService private contextViewService: IContextViewService @@ -1107,28 +1107,28 @@ export class BreakpointsRenderer implements tree.IRenderer { // noop } - public getHeight(tree: tree.ITree, element: any): number { + public getHeight(tree: ITree, element: any): number { return 22; } - public getTemplateId(tree: tree.ITree, element: any): string { - if (element instanceof model.Breakpoint) { + public getTemplateId(tree: ITree, element: any): string { + if (element instanceof Breakpoint) { return BreakpointsRenderer.BREAKPOINT_TEMPLATE_ID; } - if (element instanceof model.FunctionBreakpoint) { + if (element instanceof FunctionBreakpoint) { return BreakpointsRenderer.FUNCTION_BREAKPOINT_TEMPLATE_ID; } - if (element instanceof model.ExceptionBreakpoint) { + if (element instanceof ExceptionBreakpoint) { return BreakpointsRenderer.EXCEPTION_BREAKPOINT_TEMPLATE_ID; } return null; } - public renderTemplate(tree: tree.ITree, templateId: string, container: HTMLElement): any { + public renderTemplate(tree: ITree, templateId: string, container: HTMLElement): any { const data: IBreakpointTemplateData = Object.create(null); if (templateId === BreakpointsRenderer.BREAKPOINT_TEMPLATE_ID || templateId === BreakpointsRenderer.FUNCTION_BREAKPOINT_TEMPLATE_ID) { - data.actionBar = new actionbar.ActionBar(container, { actionRunner: this.actionRunner }); + data.actionBar = new ActionBar(container, { actionRunner: this.actionRunner }); data.actionBar.push(this.actionProvider.getBreakpointActions(), { icon: true, label: false }); } @@ -1150,7 +1150,7 @@ export class BreakpointsRenderer implements tree.IRenderer { return data; } - public renderElement(tree: tree.ITree, element: any, templateId: string, templateData: any): void { + public renderElement(tree: ITree, element: any, templateId: string, templateData: any): void { templateData.toDisposeBeforeRender = lifecycle.dispose(templateData.toDisposeBeforeRender); templateData.toDisposeBeforeRender.push(dom.addStandardDisposableListener(templateData.checkbox, 'change', (e) => { this.debugService.enableOrDisableBreakpoints(!element.enabled, element); @@ -1171,7 +1171,7 @@ export class BreakpointsRenderer implements tree.IRenderer { data.checkbox.checked = exceptionBreakpoint.enabled; } - private renderFunctionBreakpoint(tree: tree.ITree, functionBreakpoint: debug.IFunctionBreakpoint, data: IFunctionBreakpointTemplateData): void { + private renderFunctionBreakpoint(tree: ITree, functionBreakpoint: debug.IFunctionBreakpoint, data: IFunctionBreakpointTemplateData): void { const selected = this.debugService.getViewModel().getSelectedFunctionBreakpoint(); if (!functionBreakpoint.name || (selected && selected.getId() === functionBreakpoint.getId())) { renderRenameBox(this.debugService, this.contextViewService, tree, functionBreakpoint, data.breakpoint, { @@ -1198,12 +1198,12 @@ export class BreakpointsRenderer implements tree.IRenderer { data.actionBar.context = functionBreakpoint; } - private renderBreakpoint(tree: tree.ITree, breakpoint: debug.IBreakpoint, data: IBreakpointTemplateData): void { + private renderBreakpoint(tree: ITree, breakpoint: debug.IBreakpoint, data: IBreakpointTemplateData): void { this.debugService.getModel().areBreakpointsActivated() ? tree.removeTraits('disabled', [breakpoint]) : tree.addTraits('disabled', [breakpoint]); - data.name.textContent = labels.getPathLabel(paths.basename(breakpoint.source.uri.fsPath), this.contextService); + data.name.textContent = getPathLabel(paths.basename(breakpoint.source.uri.fsPath), this.contextService); data.lineNumber.textContent = breakpoint.desiredLineNumber !== breakpoint.lineNumber ? breakpoint.desiredLineNumber + ' \u2192 ' + breakpoint.lineNumber : '' + breakpoint.lineNumber; - data.filePath.textContent = labels.getPathLabel(paths.dirname(breakpoint.source.uri.fsPath), this.contextService); + data.filePath.textContent = getPathLabel(paths.dirname(breakpoint.source.uri.fsPath), this.contextService); data.checkbox.checked = breakpoint.enabled; data.actionBar.context = breakpoint; @@ -1218,28 +1218,28 @@ export class BreakpointsRenderer implements tree.IRenderer { } } - public disposeTemplate(tree: tree.ITree, templateId: string, templateData: any): void { + public disposeTemplate(tree: ITree, templateId: string, templateData: any): void { if (templateId === BreakpointsRenderer.BREAKPOINT_TEMPLATE_ID || templateId === BreakpointsRenderer.FUNCTION_BREAKPOINT_TEMPLATE_ID) { templateData.actionBar.dispose(); } } } -export class BreakpointsAccessibilityProvider implements tree.IAccessibilityProvider { +export class BreakpointsAccessibilityProvider implements IAccessibilityProvider { constructor( @IWorkspaceContextService private contextService: IWorkspaceContextService) { // noop } - public getAriaLabel(tree: tree.ITree, element: any): string { - if (element instanceof model.Breakpoint) { - return nls.localize('breakpointAriaLabel', "Breakpoint line {0} {1}, breakpoints, debug", (element).lineNumber, getSourceName((element).source, this.contextService)); + public getAriaLabel(tree: ITree, element: any): string { + if (element instanceof Breakpoint) { + return nls.localize('breakpointAriaLabel', "Breakpoint line {0} {1}, breakpoints, debug", (element).lineNumber, getSourceName((element).source, this.contextService)); } - if (element instanceof model.FunctionBreakpoint) { - return nls.localize('functionBreakpointAriaLabel', "Function breakpoint {0}, breakpoints, debug", (element).name); + if (element instanceof FunctionBreakpoint) { + return nls.localize('functionBreakpointAriaLabel', "Function breakpoint {0}, breakpoints, debug", (element).name); } - if (element instanceof model.ExceptionBreakpoint) { - return nls.localize('exceptionBreakpointAriaLabel', "Exception breakpoint {0}, breakpoints, debug", (element).filter); + if (element instanceof ExceptionBreakpoint) { + return nls.localize('exceptionBreakpointAriaLabel', "Exception breakpoint {0}, breakpoints, debug", (element).filter); } return null; @@ -1248,7 +1248,7 @@ export class BreakpointsAccessibilityProvider implements tree.IAccessibilityProv export class BreakpointsController extends BaseDebugController { - constructor(debugService: debug.IDebugService, contextMenuService: IContextMenuService, actionProvider: renderer.IActionProvider) { + constructor(debugService: debug.IDebugService, contextMenuService: IContextMenuService, actionProvider: IActionProvider) { super(debugService, contextMenuService, actionProvider); if (isMacintosh) { this.downKeyBindingDispatcher.set(KeyCode.Enter, this.onRename.bind(this)); @@ -1257,32 +1257,32 @@ export class BreakpointsController extends BaseDebugController { } } - protected onLeftClick(tree: tree.ITree, element: any, event: IMouseEvent): boolean { - if (element instanceof model.FunctionBreakpoint && event.detail === 2) { + protected onLeftClick(tree: ITree, element: any, event: IMouseEvent): boolean { + if (element instanceof FunctionBreakpoint && event.detail === 2) { this.debugService.getViewModel().setSelectedFunctionBreakpoint(element); return true; } - if (element instanceof model.Breakpoint) { + if (element instanceof Breakpoint) { this.openBreakpointSource(element, event, true); } return super.onLeftClick(tree, element, event); } - protected onRename(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onRename(tree: ITree, event: IKeyboardEvent): boolean { const element = tree.getFocus(); - if (element instanceof model.FunctionBreakpoint && element.name) { + if (element instanceof FunctionBreakpoint && element.name) { this.debugService.getViewModel().setSelectedFunctionBreakpoint(element); return true; } - if (element instanceof model.Breakpoint) { + if (element instanceof Breakpoint) { this.openBreakpointSource(element, event, false); } return super.onEnter(tree, event); } - protected onSpace(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onSpace(tree: ITree, event: IKeyboardEvent): boolean { super.onSpace(tree, event); const element = tree.getFocus(); this.debugService.enableOrDisableBreakpoints(!element.enabled, element).done(null, errors.onUnexpectedError); @@ -1290,13 +1290,13 @@ export class BreakpointsController extends BaseDebugController { return true; } - protected onDelete(tree: tree.ITree, event: IKeyboardEvent): boolean { + protected onDelete(tree: ITree, event: IKeyboardEvent): boolean { const element = tree.getFocus(); - if (element instanceof model.Breakpoint) { - this.debugService.removeBreakpoints((element).getId()).done(null, errors.onUnexpectedError); + if (element instanceof Breakpoint) { + this.debugService.removeBreakpoints((element).getId()).done(null, errors.onUnexpectedError); return true; - } else if (element instanceof model.FunctionBreakpoint) { - const fbp = element; + } else if (element instanceof FunctionBreakpoint) { + const fbp = element; this.debugService.removeFunctionBreakpoints(fbp.getId()).done(null, errors.onUnexpectedError); return true; From bf4a478f688c494bb610c4360d53c787e11ad6bd Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 16:04:20 +0200 Subject: [PATCH 183/242] debug: do not surface expression.reference --- src/vs/workbench/parts/debug/common/debug.ts | 2 +- .../workbench/parts/debug/common/debugModel.ts | 7 +++++-- .../parts/debug/electron-browser/debugHover.ts | 2 +- .../debug/electron-browser/debugViewer.ts | 18 +++++++++--------- .../parts/debug/electron-browser/replViewer.ts | 2 +- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index ad059f2ca4e..84cd7a2814a 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -53,8 +53,8 @@ export interface ITreeElement { } export interface IExpressionContainer extends ITreeElement { - reference: number; stackFrame: IStackFrame; + hasChildren: boolean; getChildren(debugService: IDebugService): TPromise; } diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 87b3ef7ccff..8f0e4f49cec 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -168,6 +168,10 @@ export abstract class ExpressionContainer implements debug.IExpressionContainer return this._value; } + public get hasChildren(): boolean { + return this.reference > 0; + } + private fetchVariables(start: number, count: number, filter: 'indexed' | 'named'): TPromise { return this.stackFrame.thread.process.session.variables({ variablesReference: this.reference, @@ -296,7 +300,7 @@ export class Variable extends ExpressionContainer implements debug.IExpression { return this.stackFrame.thread.process.session.setVariable({ name: this.name, value, - variablesReference: this.parent.reference + variablesReference: (this.parent).reference }).then(response => { if (response && response.body) { this.value = response.body.value; @@ -919,7 +923,6 @@ export class Model implements debug.IModel { this.watchExpressions.forEach(we => { we.value = Expression.DEFAULT_VALUE; we.available = false; - we.reference = 0; }); this._onDidChangeWatchExpressions.fire(); diff --git a/src/vs/workbench/parts/debug/electron-browser/debugHover.ts b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts index e21ed66f442..a731609d321 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugHover.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts @@ -215,7 +215,7 @@ export class DebugHoverWidget implements editorbrowser.IContentWidget { this.isVisible = true; this.stoleFocus = focus; - if (expression.reference === 0 || forceValueHover) { + if (!expression.hasChildren || forceValueHover) { this.complexValueContainer.hidden = true; this.valueContainer.hidden = false; viewer.renderExpressionValue(expression, this.valueContainer, false, MAX_VALUE_RENDER_LENGTH_IN_HOVER); diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts index cb6f0ab1a92..8800d2313c7 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts @@ -582,7 +582,7 @@ export class VariablesActionProvider implements IActionProvider { public getSecondaryActions(tree: ITree, element: any): TPromise { let actions: IAction[] = []; const variable = element; - if (variable.reference === 0) { + if (!variable.hasChildren) { actions.push(this.instantiationService.createInstance(SetValueAction, SetValueAction.ID, SetValueAction.LABEL, variable)); actions.push(this.instantiationService.createInstance(CopyValueAction, CopyValueAction.ID, CopyValueAction.LABEL, variable)); actions.push(new Separator()); @@ -609,7 +609,7 @@ export class VariablesDataSource implements IDataSource { } let variable = element; - return variable.reference !== 0 && !equalsIgnoreCase(variable.value, 'null'); + return variable.hasChildren && !equalsIgnoreCase(variable.value, 'null'); } public getChildren(tree: ITree, element: any): TPromise { @@ -733,7 +733,7 @@ export class VariablesController extends BaseDebugController { // double click on primitive value: open input box to be able to set the value if (element instanceof Variable && event.detail === 2) { const expression = element; - if (expression.reference === 0) { + if (!expression.hasChildren) { this.debugService.getViewModel().setSelectedExpression(expression); } return true; @@ -744,7 +744,7 @@ export class VariablesController extends BaseDebugController { protected setSelectedExpression(tree: ITree, event: KeyboardEvent): boolean { const element = tree.getFocus(); - if (element instanceof Variable && element.reference === 0) { + if (element instanceof Variable && !element.hasChildren) { this.debugService.getViewModel().setSelectedExpression(element); return true; } @@ -785,7 +785,7 @@ export class WatchExpressionsActionProvider implements IActionProvider { const expression = element; actions.push(this.instantiationService.createInstance(AddWatchExpressionAction, AddWatchExpressionAction.ID, AddWatchExpressionAction.LABEL)); actions.push(this.instantiationService.createInstance(EditWatchExpressionAction, EditWatchExpressionAction.ID, EditWatchExpressionAction.LABEL, expression)); - if (expression.reference === 0) { + if (!expression.hasChildren) { actions.push(this.instantiationService.createInstance(CopyValueAction, CopyValueAction.ID, CopyValueAction.LABEL, expression.value)); } actions.push(new Separator()); @@ -796,7 +796,7 @@ export class WatchExpressionsActionProvider implements IActionProvider { actions.push(this.instantiationService.createInstance(AddWatchExpressionAction, AddWatchExpressionAction.ID, AddWatchExpressionAction.LABEL)); if (element instanceof Variable) { const variable = element; - if (variable.reference === 0) { + if (!variable.hasChildren) { actions.push(this.instantiationService.createInstance(CopyValueAction, CopyValueAction.ID, CopyValueAction.LABEL, variable.value)); } actions.push(new Separator()); @@ -824,7 +824,7 @@ export class WatchExpressionsDataSource implements IDataSource { } const watchExpression = element; - return watchExpression.reference !== 0 && !equalsIgnoreCase(watchExpression.value, 'null'); + return watchExpression.hasChildren && !equalsIgnoreCase(watchExpression.value, 'null'); } public getChildren(tree: ITree, element: any): TPromise { @@ -956,7 +956,7 @@ export class WatchExpressionsController extends BaseDebugController { // double click on primitive value: open input box to be able to select and copy value. if (element instanceof Expression && event.detail === 2) { const expression = element; - if (expression.reference === 0) { + if (!expression.hasChildren) { this.debugService.getViewModel().setSelectedExpression(expression); } return true; @@ -969,7 +969,7 @@ export class WatchExpressionsController extends BaseDebugController { const element = tree.getFocus(); if (element instanceof Expression) { const watchExpression = element; - if (watchExpression.reference === 0) { + if (!watchExpression.hasChildren) { this.debugService.getViewModel().setSelectedExpression(watchExpression); } return true; diff --git a/src/vs/workbench/parts/debug/electron-browser/replViewer.ts b/src/vs/workbench/parts/debug/electron-browser/replViewer.ts index ad42805c97d..fc115be6a36 100644 --- a/src/vs/workbench/parts/debug/electron-browser/replViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/replViewer.ts @@ -218,7 +218,7 @@ export class ReplExpressionsRenderer implements tree.IRenderer { private renderInputOutputPair(tree: tree.ITree, expression: debug.IExpression, templateData: IInputOutputPairTemplateData): void { templateData.input.textContent = expression.name; debugviewer.renderExpressionValue(expression, templateData.value, false); - if (expression.reference > 0) { + if (expression.hasChildren) { templateData.annotation.className = 'annotation octicon octicon-info'; templateData.annotation.title = nls.localize('stateCapture', "Object state is captured from first evaluation"); } From 879fa61153c8cb050785e080486697d31f511a86 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 16:07:13 +0200 Subject: [PATCH 184/242] debug: no need for model.clearWatchExpressions --- src/vs/workbench/parts/debug/common/debugModel.ts | 9 --------- .../parts/debug/electron-browser/debugService.ts | 8 ++------ .../workbench/parts/debug/test/node/debugModel.test.ts | 2 +- 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 8f0e4f49cec..6c6d90aeb5e 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -919,15 +919,6 @@ export class Model implements debug.IModel { }); } - public clearWatchExpressionValues(): void { - this.watchExpressions.forEach(we => { - we.value = Expression.DEFAULT_VALUE; - we.available = false; - }); - - this._onDidChangeWatchExpressions.fire(); - } - public removeWatchExpressions(id: string = null): void { this.watchExpressions = id ? this.watchExpressions.filter(we => we.getId() !== id) : []; this._onDidChangeWatchExpressions.fire(); diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 7b44c769d3b..b46b28bca56 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -450,12 +450,8 @@ export class DebugService implements debug.IDebugService { this.viewModel.setFocusedStackFrame(focusedStackFrame, process); this._onDidChangeState.fire(); - if (focusedStackFrame) { - return this.model.evaluateWatchExpressions(process, focusedStackFrame); - } else { - this.model.clearWatchExpressionValues(); - return TPromise.as(null); - } + + return this.model.evaluateWatchExpressions(process, focusedStackFrame); } public enableOrDisableBreakpoints(enable: boolean, breakpoint?: debug.IEnablement): TPromise { diff --git a/src/vs/workbench/parts/debug/test/node/debugModel.test.ts b/src/vs/workbench/parts/debug/test/node/debugModel.test.ts index 09b8b2ae9a6..889ee4a6a9c 100644 --- a/src/vs/workbench/parts/debug/test/node/debugModel.test.ts +++ b/src/vs/workbench/parts/debug/test/node/debugModel.test.ts @@ -303,7 +303,7 @@ suite('Debug - Model', () => { model.renameWatchExpression(process, stackFrame, watchExpressions[1].getId(), 'new_name').done(); assertWatchExpressions(model.getWatchExpressions(), 'new_name'); - model.clearWatchExpressionValues(); + model.evaluateWatchExpressions(process, null); assertWatchExpressions(model.getWatchExpressions(), 'new_name'); model.removeWatchExpressions(); From 4e92a12c20bd89ddfe8fefd6103328d58fe932e6 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 28 Oct 2016 16:11:07 +0200 Subject: [PATCH 185/242] Rename column to character #14598 --- .../workbench/parts/markers/common/messages.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/vs/workbench/parts/markers/common/messages.ts b/src/vs/workbench/parts/markers/common/messages.ts index 7da1ade1d30..6129f27dd88 100644 --- a/src/vs/workbench/parts/markers/common/messages.ts +++ b/src/vs/workbench/parts/markers/common/messages.ts @@ -43,18 +43,18 @@ export default class Messages { public static MARKERS_TREE_ARIA_LABEL_MARKER = (marker: IMarker): string => { switch (marker.severity) { case Severity.Error: - return marker.source ? nls.localize('problems.tree.aria.label.error.marker', "Error generated by {0}: {1} at line {2} and column {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn) - : nls.localize('problems.tree.aria.label.error.marker.nosource', "Error: {0} at line {1} and column {2}", marker.message, marker.startLineNumber, marker.startColumn); + return marker.source ? nls.localize('problems.tree.aria.label.error.marker', "Error generated by {0}: {1} at line {2} and character {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn) + : nls.localize('problems.tree.aria.label.error.marker.nosource', "Error: {0} at line {1} and character {2}", marker.message, marker.startLineNumber, marker.startColumn); case Severity.Warning: - return marker.source ? nls.localize('problems.tree.aria.label.warning.marker', "Warning generated by {0}: {1} at line {2} and column {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn) - : nls.localize('problems.tree.aria.label.warning.marker.nosource', "Warning: {0} at line {1} and column {2}", marker.message, marker.startLineNumber, marker.startColumn); + return marker.source ? nls.localize('problems.tree.aria.label.warning.marker', "Warning generated by {0}: {1} at line {2} and character {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn) + : nls.localize('problems.tree.aria.label.warning.marker.nosource', "Warning: {0} at line {1} and character {2}", marker.message, marker.startLineNumber, marker.startColumn); case Severity.Info: - return marker.source ? nls.localize('problems.tree.aria.label.info.marker', "Info generated by {0}: {1} at line {2} and column {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn) - : nls.localize('problems.tree.aria.label.info.marker.nosource', "Info: {0} at line {1} and column {2}", marker.message, marker.startLineNumber, marker.startColumn); + return marker.source ? nls.localize('problems.tree.aria.label.info.marker', "Info generated by {0}: {1} at line {2} and character {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn) + : nls.localize('problems.tree.aria.label.info.marker.nosource', "Info: {0} at line {1} and character {2}", marker.message, marker.startLineNumber, marker.startColumn); default: - return marker.source ? nls.localize('problems.tree.aria.label.marker', "Problem generated by {0}: {1} at line {2} and column {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn) - : nls.localize('problems.tree.aria.label.marker.nosource', "Problem: {0} at line {1} and column {2}", marker.message, marker.startLineNumber, marker.startColumn); + return marker.source ? nls.localize('problems.tree.aria.label.marker', "Problem generated by {0}: {1} at line {2} and character {3}", marker.source, marker.message, marker.startLineNumber, marker.startColumn) + : nls.localize('problems.tree.aria.label.marker.nosource', "Problem: {0} at line {1} and character {2}", marker.message, marker.startLineNumber, marker.startColumn); } } From 099b686c69d129598861511cf2cc90121fcf9e25 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 28 Oct 2016 16:18:21 +0200 Subject: [PATCH 186/242] Fix #14547 --- extensions/typescript/package.nls.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/typescript/package.nls.json b/extensions/typescript/package.nls.json index 5ff951eea40..51b9649ab91 100644 --- a/extensions/typescript/package.nls.json +++ b/extensions/typescript/package.nls.json @@ -1,7 +1,7 @@ { "typescript.reloadProjects.title": "Reload TypeScript Project", "javascript.reloadProjects.title": "Reload JavaScript Project", - "configuration.typescript": "TypeScript.", + "configuration.typescript": "TypeScript", "typescript.useCodeSnippetsOnMethodSuggest.dec": "Complete functions with their parameter signature.", "typescript.tsdk.desc": "Specifies the folder path containing the tsserver and lib*.d.ts files to use.", "typescript.tsdk_version.desc": "Specifies the version of the tsserver. Only necessary if the tsserver is not installed using npm.", From 9b74d12c2e686444362a145e3bf84c9b46084c91 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 16:31:54 +0200 Subject: [PATCH 187/242] also take number of highlight ranges into account, fixes #14660 --- src/vs/editor/contrib/suggest/common/completionModel.ts | 5 +++-- .../contrib/suggest/test/common/completionModel.test.ts | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index a08f54a8d20..5ec672e8ba8 100644 --- a/src/vs/editor/contrib/suggest/common/completionModel.ts +++ b/src/vs/editor/contrib/suggest/common/completionModel.ts @@ -231,12 +231,13 @@ export class CompletionModel { } } - // combine the four scoring values into one + // combine the five scoring values into one // value using base_100. Values further left // are more important return (CompletionModel._base ** 4) * caseSensitiveMatches + (CompletionModel._base ** 3) * caseInsensitiveMatches + (CompletionModel._base ** 2) * (CompletionModel._base - firstMatchStart) - + (CompletionModel._base ** 1) * (CompletionModel._base - notMatching); + + (CompletionModel._base ** 1) * (CompletionModel._base - highlights.length) + + (CompletionModel._base ** 0) * (CompletionModel._base - notMatching); } } diff --git a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts index eb98e106325..aaea80dfccd 100644 --- a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts @@ -144,5 +144,6 @@ suite('CompletionModel', function () { assertTopScore('editor.R', 1, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); assertTopScore('Editor.r', 0, 'diffEditor.renderSideBySide', 'editor.overviewRulerlanes', 'editor.renderControlCharacter', 'editor.renderWhitespace'); + assertTopScore('-mo', 1, '-ms-ime-mode', '-moz-columns'); }); }); From 5fad066fec3a8f011c2b462ef09dedced0b76e52 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 28 Oct 2016 17:06:50 +0200 Subject: [PATCH 188/242] Wrong usage of fs.utimes (fixes #14645) --- src/vs/base/node/pfs.ts | 6 ++++-- src/vs/workbench/services/files/node/fileService.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/vs/base/node/pfs.ts b/src/vs/base/node/pfs.ts index 7366e49d0c8..0d4589b34be 100644 --- a/src/vs/base/node/pfs.ts +++ b/src/vs/base/node/pfs.ts @@ -101,8 +101,10 @@ export function readlink(path: string): TPromise { return nfcall(fs.readlink, path); } -export function utimes(path: string, atime: Date, mtime: Date): TPromise { - return nfcall(fs.utimes, path, atime, mtime); +export function touch(path: string): TPromise { + const now = Date.now() / 1000; // the value should be a Unix timestamp in seconds + + return nfcall(fs.utimes, path, now, now); } export function readFile(path: string): TPromise; diff --git a/src/vs/workbench/services/files/node/fileService.ts b/src/vs/workbench/services/files/node/fileService.ts index 738ce04a72c..53c3445a6ee 100644 --- a/src/vs/workbench/services/files/node/fileService.ts +++ b/src/vs/workbench/services/files/node/fileService.ts @@ -324,7 +324,7 @@ export class FileService implements IFileService { return createPromise.then(() => { // 3.) update atime and mtime - return pfs.utimes(absolutePath, new Date(), new Date()).then(() => { + return pfs.touch(absolutePath).then(() => { // 4.) resolve return this.resolve(resource); From 76a214c78094434b27c71efa9bf0cd4c3815be7a Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 28 Oct 2016 17:16:25 +0200 Subject: [PATCH 189/242] .asar file comes and goes (fixes #14630) --- src/vs/base/node/mime.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/vs/base/node/mime.ts b/src/vs/base/node/mime.ts index cc1f90a2027..92549a81b0e 100644 --- a/src/vs/base/node/mime.ts +++ b/src/vs/base/node/mime.ts @@ -6,7 +6,6 @@ 'use strict'; import streams = require('stream'); -import paths = require('path'); import mime = require('vs/base/common/mime'); @@ -52,7 +51,6 @@ import encoding = require('vs/base/node/encoding'); */ const BUFFER_READ_MAX_LEN = 512; // max buffer len to use when detecting encoding/mime -const ASAR_EXT = '.asar'; export interface IMimeAndEncoding { encoding: string; @@ -66,10 +64,6 @@ function doDetectMimesFromStream(instream: streams.Readable, callback: (error: E } function doDetectMimesFromFile(absolutePath: string, callback: (error: Error, result: IMimeAndEncoding) => void): void { - if (paths.extname(absolutePath) === ASAR_EXT) { - return callback(null, { encoding: encoding.UTF8, mimes: [mime.MIME_BINARY] }); // https://github.com/Microsoft/vscode/issues/646 - } - stream.readExactlyByFile(absolutePath, BUFFER_READ_MAX_LEN, (err, buffer, bytesRead) => { handleReadResult(err, buffer, bytesRead, callback); }); From 4fa6342ae43e25cd8756d30afe3fa790238f3b3f Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 28 Oct 2016 17:17:08 +0200 Subject: [PATCH 190/242] bump 1.8.0 --- npm-shrinkwrap.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 9eb516cbc0f..6dd0bc3e903 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "code-oss-dev", - "version": "1.7.0", + "version": "1.8.0", "dependencies": { "agent-base": { "version": "1.0.2", diff --git a/package.json b/package.json index 23adea51c47..bb9b77963bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "code-oss-dev", - "version": "1.7.0", + "version": "1.8.0", "electronVersion": "1.3.8", "distro": "53e30f0e2907d30c579b0ef07de97c586e6750a4", "author": { From 8c82d9569272760420d8737ac85728e694153e95 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 17:14:52 +0200 Subject: [PATCH 191/242] use Range.contains instead of Position.isBefore, fixes #14561 --- src/vs/editor/contrib/gotoError/browser/gotoError.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/vs/editor/contrib/gotoError/browser/gotoError.ts b/src/vs/editor/contrib/gotoError/browser/gotoError.ts index 5ac18c20422..8f1b36583d6 100644 --- a/src/vs/editor/contrib/gotoError/browser/gotoError.ts +++ b/src/vs/editor/contrib/gotoError/browser/gotoError.ts @@ -88,8 +88,7 @@ class MarkerModel { var found = false; var position = this._editor.getPosition(); for (var i = 0, len = this._markers.length; i < len && !found; i++) { - var pos = { lineNumber: this._markers[i].startLineNumber, column: this._markers[i].startColumn }; - if (position.isBeforeOrEqual(pos)) { + if (Range.containsPosition(this._markers[i], position)) { this._nextIdx = i + (fwd ? 0 : -1); found = true; } From 130a272913da9a139fae8509f7d166fca7c8d79c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 17:20:08 +0200 Subject: [PATCH 192/242] debt - remove 'var' usage --- .../contrib/gotoError/browser/gotoError.ts | 40 ++++++------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/src/vs/editor/contrib/gotoError/browser/gotoError.ts b/src/vs/editor/contrib/gotoError/browser/gotoError.ts index 8f1b36583d6..36e62e28c22 100644 --- a/src/vs/editor/contrib/gotoError/browser/gotoError.ts +++ b/src/vs/editor/contrib/gotoError/browser/gotoError.ts @@ -84,13 +84,14 @@ class MarkerModel { } } - private initIdx(fwd: boolean): void { - var found = false; - var position = this._editor.getPosition(); - for (var i = 0, len = this._markers.length; i < len && !found; i++) { + private _initIdx(fwd: boolean): void { + let found = false; + const position = this._editor.getPosition(); + for (let i = 0; i < this._markers.length; i++) { if (Range.containsPosition(this._markers[i], position)) { this._nextIdx = i + (fwd ? 0 : -1); found = true; + break; } } if (!found) { @@ -109,7 +110,7 @@ class MarkerModel { } if (this._nextIdx === -1) { - this.initIdx(fwd); + this._initIdx(fwd); } else if (fwd) { this._nextIdx += 1; @@ -122,7 +123,7 @@ class MarkerModel { this._nextIdx = this._markers.length - 1; } } - var marker = this._markers[this._nextIdx]; + const marker = this._markers[this._nextIdx]; this._onCurrentMarkerChanged.fire(marker); } @@ -146,20 +147,6 @@ class MarkerModel { } } - public get stats(): { errors: number; others: number; } { - let errors = 0; - let others = 0; - - for (let marker of this._markers) { - if (marker.severity === Severity.Error) { - errors += 1; - } else { - others += 1; - } - } - return { errors, others }; - } - public get total() { return this._markers.length; } @@ -175,7 +162,7 @@ class MarkerModel { } this.withoutWatchingEditorPosition(() => { - var pos = new Position(this._markers[this._nextIdx].startLineNumber, this._markers[this._nextIdx].startColumn); + const pos = new Position(this._markers[this._nextIdx].startLineNumber, this._markers[this._nextIdx].startColumn); this._editor.setPosition(pos); this._editor.revealPositionInCenter(pos); }); @@ -328,7 +315,7 @@ class MarkerNavigationAction extends EditorAction { public run(accessor: ServicesAccessor, editor: editorCommon.ICommonCodeEditor): void { const telemetryService = accessor.get(ITelemetryService); - let controller = MarkerController.get(editor); + const controller = MarkerController.get(editor); if (!controller) { return; } @@ -392,7 +379,7 @@ class MarkerController implements editorCommon.IEditorContribution { return this._model; } - var markers = this._getMarkers(); + const markers = this._getMarkers(); this._model = new MarkerModel(this._editor, markers); this._zone = new MarkerNavigationWidget(this._editor, this._model, this._commandService); this._markersNavigationVisible.set(true); @@ -419,10 +406,7 @@ class MarkerController implements editorCommon.IEditorContribution { } private _getMarkers(): IMarker[] { - var resource = this._editor.getModel().uri, - markers = this._markerService.read({ resource: resource }); - - return markers; + return this._markerService.read({ resource: this._editor.getModel().uri }); } } @@ -458,7 +442,7 @@ class PrevMarkerAction extends MarkerNavigationAction { } } -var CONTEXT_MARKERS_NAVIGATION_VISIBLE = new RawContextKey('markersNavigationVisible', false); +const CONTEXT_MARKERS_NAVIGATION_VISIBLE = new RawContextKey('markersNavigationVisible', false); const MarkerCommand = EditorCommand.bindToContribution(MarkerController.get); From bfa5bb78ccf1d3f504f75a0f5b0d75be4835c2a8 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 17:23:31 +0200 Subject: [PATCH 193/242] add user-select style, fixes #4761 --- src/vs/editor/contrib/gotoError/browser/gotoError.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vs/editor/contrib/gotoError/browser/gotoError.css b/src/vs/editor/contrib/gotoError/browser/gotoError.css index 39de1f8fa7b..a15a8d57380 100644 --- a/src/vs/editor/contrib/gotoError/browser/gotoError.css +++ b/src/vs/editor/contrib/gotoError/browser/gotoError.css @@ -38,4 +38,6 @@ .monaco-editor .marker-widget .descriptioncontainer { white-space: pre; + -webkit-user-select: text; + user-select: text; } From ba854752810fb943896fe707fe0f9f36a6fe5592 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 28 Oct 2016 17:26:14 +0200 Subject: [PATCH 194/242] more promise handler for #14596 --- src/vs/test/utils/servicesTestUtils.ts | 11 +++ .../files/test/node/fileService.test.ts | 8 +- .../textfile/test/textFileEditorModel.test.ts | 75 +++++++++---------- .../test/textFileEditorModelManager.test.ts | 20 ++--- .../textfile/test/textFileService.test.ts | 40 +++++----- 5 files changed, 75 insertions(+), 79 deletions(-) diff --git a/src/vs/test/utils/servicesTestUtils.ts b/src/vs/test/utils/servicesTestUtils.ts index 6d9a4a8b0b1..b0e56281897 100644 --- a/src/vs/test/utils/servicesTestUtils.ts +++ b/src/vs/test/utils/servicesTestUtils.ts @@ -11,6 +11,7 @@ import { Promise, TPromise } from 'vs/base/common/winjs.base'; import { TestInstantiationService } from 'vs/test/utils/instantiationTestUtils'; import { EventEmitter } from 'vs/base/common/eventEmitter'; import * as paths from 'vs/base/common/paths'; +import * as assert from 'assert'; import URI from 'vs/base/common/uri'; import { ITelemetryService, NullTelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { Storage, InMemoryLocalStorage } from 'vs/workbench/common/storage'; @@ -619,4 +620,14 @@ export class TestLifecycleService implements ILifecycleService { export function createMockModelService(instantiationService: TestInstantiationService): IModelService { instantiationService.stub(IConfigurationService, new TestConfigurationService()); return instantiationService.createInstance(ModelServiceImpl); +} + +export function onError(error: Error, done: () => void): void { + assert.fail(error); + + done(); +} + +export function toResource(path) { + return URI.file(paths.join('C:\\', new Buffer(this.test.fullTitle()).toString('base64'), path)); } \ No newline at end of file diff --git a/src/vs/workbench/services/files/test/node/fileService.test.ts b/src/vs/workbench/services/files/test/node/fileService.test.ts index 353a9921746..fa545b24e26 100644 --- a/src/vs/workbench/services/files/test/node/fileService.test.ts +++ b/src/vs/workbench/services/files/test/node/fileService.test.ts @@ -19,12 +19,7 @@ import uuid = require('vs/base/common/uuid'); import extfs = require('vs/base/node/extfs'); import encodingLib = require('vs/base/node/encoding'); import utils = require('vs/workbench/services/files/test/node/utils'); - -function onError(error:Error, done: () => void): void { - assert.fail(error); - - done(); -} +import { onError } from 'vs/test/utils/servicesTestUtils'; suite('FileService', () => { let events: utils.TestEventService; @@ -32,7 +27,6 @@ suite('FileService', () => { let parentDir = path.join(os.tmpdir(), 'vsctests', 'service'); let testDir: string; - setup(function (done) { let id = uuid.generateUuid(); testDir = path.join(parentDir, id); diff --git a/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts b/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts index db4410bb4fe..0d96a219933 100644 --- a/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts @@ -8,21 +8,15 @@ import * as assert from 'assert'; import { TPromise } from 'vs/base/common/winjs.base'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import URI from 'vs/base/common/uri'; -import paths = require('vs/base/common/paths'); import { EncodingMode } from 'vs/workbench/common/editor'; import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel'; import { IEventService } from 'vs/platform/event/common/event'; import { ITextFileService, ModelState, StateChange } from 'vs/workbench/services/textfile/common/textfiles'; -import { workbenchInstantiationService, TestTextFileService, createFileInput } from 'vs/test/utils/servicesTestUtils'; +import { workbenchInstantiationService, TestTextFileService, createFileInput, onError, toResource } from 'vs/test/utils/servicesTestUtils'; import { TextFileEditorModelManager } from 'vs/workbench/services/textfile/common/textFileEditorModelManager'; import { FileOperationResult, IFileOperationResult } from 'vs/platform/files/common/files'; import { IModelService } from 'vs/editor/common/services/modelService'; -function toResource(path) { - return URI.file(paths.join('C:\\', new Buffer(this.test.fullTitle()).toString('base64'), path)); -} - class ServiceAccessor { constructor( @IEventService public eventService: IEventService, @ITextFileService public textFileService: TestTextFileService, @IModelService public modelService: IModelService) { } @@ -46,7 +40,7 @@ suite('Files - TextFileEditorModel', () => { test('Save', function (done) { const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('bar'); assert.ok(model.getLastModifiedTime() <= Date.now()); @@ -59,7 +53,7 @@ suite('Files - TextFileEditorModel', () => { done(); }); - }); + }, error => onError(error, done)); }); test('setEncoding - encode', function () { @@ -88,13 +82,13 @@ suite('Files - TextFileEditorModel', () => { test('disposes when underlying model is destroyed', function (done) { const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.destroy(); assert.ok(model.isDisposed()); done(); - }); + }, error => onError(error, done)); }); test('Load does not trigger save', function (done) { @@ -109,7 +103,7 @@ suite('Files - TextFileEditorModel', () => { assert.ok(e !== StateChange.DIRTY && e !== StateChange.SAVED); }); - model.load().then(() => { + model.load().done(() => { assert.ok(model.isResolved()); model.dispose(); @@ -117,25 +111,25 @@ suite('Files - TextFileEditorModel', () => { assert.ok(!accessor.modelService.getModel(model.getResource())); done(); - }); + }, error => onError(error, done)); }); test('Load returns dirty model as long as model is dirty', function (done) { const model = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(model.isDirty()); assert.equal(model.getState(), ModelState.DIRTY); - model.load().then(() => { + return model.load().then(() => { assert.ok(model.isDirty()); model.dispose(); done(); }); - }); + }, error => onError(error, done)); }); test('Revert', function (done) { @@ -150,12 +144,12 @@ suite('Files - TextFileEditorModel', () => { } }); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(model.isDirty()); - model.revert().then(() => { + return model.revert().then(() => { assert.ok(!model.isDirty()); assert.equal(model.textEditorModel.getValue(), 'Hello Html'); assert.equal(eventCounter, 1); @@ -164,33 +158,33 @@ suite('Files - TextFileEditorModel', () => { done(); }); - }); + }, error => onError(error, done)); }); test('File not modified error is handled gracefully', function (done) { const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); - model.load().then(() => { + model.load().done(() => { const mtime = model.getLastModifiedTime(); accessor.textFileService.setResolveTextContentErrorOnce({ message: 'error', fileOperationResult: FileOperationResult.FILE_NOT_MODIFIED_SINCE }); - model.load().then((model: TextFileEditorModel) => { + return model.load().then((model: TextFileEditorModel) => { assert.ok(model); assert.equal(model.getLastModifiedTime(), mtime); model.dispose(); done(); }); - }); + }, error => onError(error, done)); }); test('Conflict Resolution Mode', function (done) { const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); - model.load().then(() => { + model.load().done(() => { model.setConflictResolutionMode(); model.textEditorModel.setValue('foo'); @@ -198,7 +192,7 @@ suite('Files - TextFileEditorModel', () => { assert.equal(model.getState(), ModelState.CONFLICT); assert.ok(model.isInConflictResolutionMode()); - model.revert().then(() => { + return model.revert().then(() => { model.textEditorModel.setValue('bar'); assert.ok(model.isDirty()); @@ -210,7 +204,7 @@ suite('Files - TextFileEditorModel', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('Auto Save triggered when model changes', function (done) { @@ -226,7 +220,7 @@ suite('Files - TextFileEditorModel', () => { } }); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); return TPromise.timeout(50).then(() => { @@ -239,15 +233,15 @@ suite('Files - TextFileEditorModel', () => { done(); }); - }); + }, error => onError(error, done)); }); test('save() and isDirty() - proper with check for mtimes', function (done) { const input1 = createFileInput(instantiationService, toResource.call(this, '/path/index_async2.txt')); const input2 = createFileInput(instantiationService, toResource.call(this, '/path/index_async.txt')); - input1.resolve().then((model1: TextFileEditorModel) => { - input2.resolve().then((model2: TextFileEditorModel) => { + input1.resolve().done((model1: TextFileEditorModel) => { + return input2.resolve().then((model2: TextFileEditorModel) => { model1.textEditorModel.setValue('foo'); const m1Mtime = model1.getLastModifiedTime(); @@ -278,7 +272,7 @@ suite('Files - TextFileEditorModel', () => { }); }); }); - }); + }, error => onError(error, done)); }); test('Save Participant', function (done) { @@ -303,20 +297,20 @@ suite('Files - TextFileEditorModel', () => { } }); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); - model.save().then(() => { + return model.save().then(() => { model.dispose(); assert.equal(eventCounter, 2); done(); }); - }); + }, error => onError(error, done)); }); - test('Save Participant, async participant', function () { + test('Save Participant, async participant', function (done) { const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); @@ -326,18 +320,19 @@ suite('Files - TextFileEditorModel', () => { } }); - return model.load().then(() => { + return model.load().done(() => { model.textEditorModel.setValue('foo'); const now = Date.now(); return model.save().then(() => { assert.ok(Date.now() - now >= 10); model.dispose(); + + done(); }); - }); + }, error => onError(error, done)); }); - test('Save Participant, bad participant', function () { - + test('Save Participant, bad participant', function (done) { const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); TextFileEditorModel.setSaveParticipant({ @@ -351,9 +346,11 @@ suite('Files - TextFileEditorModel', () => { return model.save().then(() => { assert.ok(true); model.dispose(); + + done(); }, err => { assert.ok(false); }); - }); + }, error => onError(error, done)); }); }); \ No newline at end of file diff --git a/src/vs/workbench/services/textfile/test/textFileEditorModelManager.test.ts b/src/vs/workbench/services/textfile/test/textFileEditorModelManager.test.ts index 21dbcf7e911..75944688d17 100644 --- a/src/vs/workbench/services/textfile/test/textFileEditorModelManager.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileEditorModelManager.test.ts @@ -11,7 +11,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { TextFileEditorModelManager } from 'vs/workbench/services/textfile/common/textFileEditorModelManager'; import { EditorModel } from 'vs/workbench/common/editor'; import { join, basename } from 'vs/base/common/paths'; -import { workbenchInstantiationService, TestEditorGroupService, createFileInput } from 'vs/test/utils/servicesTestUtils'; +import { workbenchInstantiationService, TestEditorGroupService, createFileInput, onError } from 'vs/test/utils/servicesTestUtils'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel'; import { IEventService } from 'vs/platform/event/common/event'; @@ -99,7 +99,7 @@ suite('Files - TextFileEditorModelManager', () => { const resource = URI.file('/test.html'); const encoding = 'utf8'; - manager.loadOrCreate(resource, encoding, true).then(model => { + manager.loadOrCreate(resource, encoding, true).done(model => { assert.ok(model); assert.equal(model.getEncoding(), encoding); assert.equal(manager.get(resource), model); @@ -118,7 +118,7 @@ suite('Files - TextFileEditorModelManager', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('removed from cache when model disposed', function () { @@ -254,9 +254,9 @@ suite('Files - TextFileEditorModelManager', () => { assert.ok(!model.isDisposed()); - model.load().then(resolved => { + model.load().done(resolved => { model.textEditorModel.setValue('changed'); - model.save().then(() => { + return model.save().then(() => { // change event (watcher) accessor.eventService.emit(CommonFileEventType.FILE_CHANGES, new FileChangesEvent([{ resource, type: FileChangeType.UPDATED }])); @@ -269,7 +269,7 @@ suite('Files - TextFileEditorModelManager', () => { manager.dispose(); done(); }); - }); + }, error => onError(error, done)); }); test('events', function (done) { @@ -303,7 +303,7 @@ suite('Files - TextFileEditorModelManager', () => { assert.equal(e.resource.toString(), resource1.toString()); }); - manager.loadOrCreate(resource1, 'utf8').then(model1 => { + manager.loadOrCreate(resource1, 'utf8').done(model1 => { return manager.loadOrCreate(resource2, 'utf8').then(model2 => { model1.textEditorModel.setValue('changed'); model1.updatePreferredEncoding('utf16'); @@ -332,7 +332,7 @@ suite('Files - TextFileEditorModelManager', () => { }); }); }); - }); + }, error => onError(error, done)); }); test('disposing model takes it out of the manager', function (done) { @@ -340,7 +340,7 @@ suite('Files - TextFileEditorModelManager', () => { const resource = toResource('/path/index_something.txt'); - manager.loadOrCreate(resource, 'utf8').then(model => { + manager.loadOrCreate(resource, 'utf8').done(model => { model.dispose(); assert.ok(!manager.get(resource)); @@ -348,6 +348,6 @@ suite('Files - TextFileEditorModelManager', () => { manager.dispose(); done(); - }); + }, error => onError(error, done)); }); }); \ No newline at end of file diff --git a/src/vs/workbench/services/textfile/test/textFileService.test.ts b/src/vs/workbench/services/textfile/test/textFileService.test.ts index e4969c6d466..51f01d730e6 100644 --- a/src/vs/workbench/services/textfile/test/textFileService.test.ts +++ b/src/vs/workbench/services/textfile/test/textFileService.test.ts @@ -6,10 +6,8 @@ import { TPromise } from 'vs/base/common/winjs.base'; import * as assert from 'assert'; -import URI from 'vs/base/common/uri'; -import paths = require('vs/base/common/paths'); import { ILifecycleService, ShutdownEvent } from 'vs/platform/lifecycle/common/lifecycle'; -import { workbenchInstantiationService, TestLifecycleService, TestTextFileService } from 'vs/test/utils/servicesTestUtils'; +import { workbenchInstantiationService, TestLifecycleService, TestTextFileService, onError, toResource } from 'vs/test/utils/servicesTestUtils'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { TextFileEditorModel } from 'vs/workbench/services/textfile/common/textFileEditorModel'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; @@ -18,10 +16,6 @@ import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/un import { UntitledEditorModel } from 'vs/workbench/common/editor/untitledEditorModel'; import { TextFileEditorModelManager } from 'vs/workbench/services/textfile/common/textFileEditorModelManager'; -function toResource(path) { - return URI.file(paths.join('C:\\', new Buffer(this.test.fullTitle()).toString('base64'), path)); -} - class ServiceAccessor { constructor( @ILifecycleService public lifecycleService: TestLifecycleService, @@ -75,7 +69,7 @@ suite('Files - TextFileService', () => { const service = accessor.textFileService; service.setConfirmResult(ConfirmResult.CANCEL); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.equal(service.getDirty().length, 1); @@ -86,7 +80,7 @@ suite('Files - TextFileService', () => { assert.ok(event.value); done(); - }); + }, error => onError(error, done)); }); test('confirm onWillShutdown - no veto if user does not want to save', function (done) { @@ -96,7 +90,7 @@ suite('Files - TextFileService', () => { const service = accessor.textFileService; service.setConfirmResult(ConfirmResult.DONT_SAVE); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.equal(service.getDirty().length, 1); @@ -107,7 +101,7 @@ suite('Files - TextFileService', () => { assert.ok(!event.value); done(); - }); + }, error => onError(error, done)); }); test('confirm onWillShutdown - save', function (done) { @@ -117,7 +111,7 @@ suite('Files - TextFileService', () => { const service = accessor.textFileService; service.setConfirmResult(ConfirmResult.SAVE); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.equal(service.getDirty().length, 1); @@ -131,7 +125,7 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('isDirty/getDirty - files and untitled', function (done) { @@ -139,7 +133,7 @@ suite('Files - TextFileService', () => { (accessor.textFileService.models).add(model.getResource(), model); const service = accessor.textFileService; - model.load().then(() => { + model.load().done(() => { assert.ok(!service.isDirty(model.getResource())); model.textEditorModel.setValue('foo'); @@ -159,7 +153,7 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('save - file', function (done) { @@ -168,7 +162,7 @@ suite('Files - TextFileService', () => { const service = accessor.textFileService; - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(service.isDirty(model.getResource())); @@ -179,7 +173,7 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('saveAll - file', function (done) { @@ -188,7 +182,7 @@ suite('Files - TextFileService', () => { const service = accessor.textFileService; - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(service.isDirty(model.getResource())); @@ -201,7 +195,7 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('saveAs - file', function (done) { @@ -211,7 +205,7 @@ suite('Files - TextFileService', () => { const service = accessor.textFileService; service.setPromptPath(model.getResource().fsPath); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(service.isDirty(model.getResource())); @@ -222,7 +216,7 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('revert - file', function (done) { @@ -232,7 +226,7 @@ suite('Files - TextFileService', () => { const service = accessor.textFileService; service.setPromptPath(model.getResource().fsPath); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(service.isDirty(model.getResource())); @@ -243,6 +237,6 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); }); \ No newline at end of file From 5517d1af5e288d89ba95f8c1236a78f4820805a1 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 28 Oct 2016 17:37:26 +0200 Subject: [PATCH 195/242] debt - move some things to browser namespace --- .../feedback.contribution.ts | 2 +- .../feedbackStatusbarItem.ts | 0 .../nps.contribution.ts | 0 .../gettingStarted.contribution.ts} | 6 ++--- .../gettingStarted.ts} | 2 +- .../test/common/gettingStarted.test.ts | 23 ------------------- src/vs/workbench/workbench.main.ts | 6 ++--- 7 files changed, 8 insertions(+), 31 deletions(-) rename src/vs/workbench/parts/feedback/{electron-browser => browser}/feedback.contribution.ts (94%) rename src/vs/workbench/parts/feedback/{electron-browser => browser}/feedbackStatusbarItem.ts (100%) rename src/vs/workbench/parts/nps/{electron-browser => browser}/nps.contribution.ts (100%) rename src/vs/workbench/parts/welcome/{electron-browser/electronGettingStarted.contribution.ts => browser/gettingStarted.contribution.ts} (69%) rename src/vs/workbench/parts/welcome/{electron-browser/electronGettingStarted.ts => browser/gettingStarted.ts} (91%) diff --git a/src/vs/workbench/parts/feedback/electron-browser/feedback.contribution.ts b/src/vs/workbench/parts/feedback/browser/feedback.contribution.ts similarity index 94% rename from src/vs/workbench/parts/feedback/electron-browser/feedback.contribution.ts rename to src/vs/workbench/parts/feedback/browser/feedback.contribution.ts index f5188e76dc4..c16f02d9c80 100644 --- a/src/vs/workbench/parts/feedback/electron-browser/feedback.contribution.ts +++ b/src/vs/workbench/parts/feedback/browser/feedback.contribution.ts @@ -6,7 +6,7 @@ import { Registry } from 'vs/platform/platform'; import { StatusbarAlignment, IStatusbarRegistry, Extensions, StatusbarItemDescriptor } from 'vs/workbench/browser/parts/statusbar/statusbar'; -import { FeedbackStatusbarItem } from 'vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem'; +import { FeedbackStatusbarItem } from 'vs/workbench/parts/feedback/browser/feedbackStatusbarItem'; // Register Statusbar item Registry.as(Extensions.Statusbar).registerStatusbarItem(new StatusbarItemDescriptor( diff --git a/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts b/src/vs/workbench/parts/feedback/browser/feedbackStatusbarItem.ts similarity index 100% rename from src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts rename to src/vs/workbench/parts/feedback/browser/feedbackStatusbarItem.ts diff --git a/src/vs/workbench/parts/nps/electron-browser/nps.contribution.ts b/src/vs/workbench/parts/nps/browser/nps.contribution.ts similarity index 100% rename from src/vs/workbench/parts/nps/electron-browser/nps.contribution.ts rename to src/vs/workbench/parts/nps/browser/nps.contribution.ts diff --git a/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.contribution.ts b/src/vs/workbench/parts/welcome/browser/gettingStarted.contribution.ts similarity index 69% rename from src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.contribution.ts rename to src/vs/workbench/parts/welcome/browser/gettingStarted.contribution.ts index b042d9b68ed..674b43b1805 100644 --- a/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.contribution.ts +++ b/src/vs/workbench/parts/welcome/browser/gettingStarted.contribution.ts @@ -5,9 +5,9 @@ 'use strict'; import { Registry } from 'vs/platform/platform'; -import { ElectronGettingStarted } from 'vs/workbench/parts/welcome/electron-browser/electronGettingStarted'; +import { GettingStarted } from 'vs/workbench/parts/welcome/browser/gettingStarted'; import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions'; -(Registry.as(WorkbenchExtensions.Workbench)).registerWorkbenchContribution( - ElectronGettingStarted +Registry.as(WorkbenchExtensions.Workbench).registerWorkbenchContribution( + GettingStarted ); \ No newline at end of file diff --git a/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts b/src/vs/workbench/parts/welcome/browser/gettingStarted.ts similarity index 91% rename from src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts rename to src/vs/workbench/parts/welcome/browser/gettingStarted.ts index 6dc258ebd12..48759e78af4 100644 --- a/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts +++ b/src/vs/workbench/parts/welcome/browser/gettingStarted.ts @@ -8,7 +8,7 @@ import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { AbstractGettingStarted } from 'vs/workbench/parts/welcome/common/abstractGettingStarted'; import * as platform from 'vs/base/common/platform'; -export class ElectronGettingStarted extends AbstractGettingStarted implements IWorkbenchContribution { +export class GettingStarted extends AbstractGettingStarted implements IWorkbenchContribution { protected openExternal(url: string) { // Don't open the welcome page as the root user on Linux, this is due to a bug with xdg-open diff --git a/src/vs/workbench/parts/welcome/test/common/gettingStarted.test.ts b/src/vs/workbench/parts/welcome/test/common/gettingStarted.test.ts index e80c24da362..a765394acbb 100644 --- a/src/vs/workbench/parts/welcome/test/common/gettingStarted.test.ts +++ b/src/vs/workbench/parts/welcome/test/common/gettingStarted.test.ts @@ -44,27 +44,4 @@ suite('Workbench - GettingStarted', () => { hideWelcomeSettingsValue = null; appName = null; }); - - // test('disabled by default', function() { - // let gettingStarted = instantiation.createInstance(TestGettingStarted); - // assert(gettingStarted.lastUrl === undefined, 'no page is opened when welcomePage is not configured'); - // }); - - // test('base case', function() { - // welcomePageEnvConfig = 'base url'; - // appName = 'some app'; - // machineId = '123'; - // instantiation.stubPromise(ITelemetryService, 'getTelemetryInfo', { machineId: machineId }); - // let gettingStarted = instantiation.createInstance(TestGettingStarted); - // assert(gettingStarted.lastUrl === `${welcomePageEnvConfig}&&from=${appName}&&id=${machineId}`, 'a page is opened when welcomePage is configured && first run'); - // assert(hideWelcomeSettingsValue !== null, 'a flag is set to hide welcome page'); - // }); - - // test('dont show after initial run', function() { - // welcomePageEnvConfig = 'url'; - // hideWelcomeSettingsValue = 'true'; - // let gettingStarted = instantiation.createInstance(TestGettingStarted); - // assert(gettingStarted.lastUrl === undefined, 'no page is opened after initial run'); - // assert(hideWelcomeSettingsValue !== null, 'a flag is set to hide welcome page'); - // }); }); \ No newline at end of file diff --git a/src/vs/workbench/workbench.main.ts b/src/vs/workbench/workbench.main.ts index 44e08cbac2e..78199895ca9 100644 --- a/src/vs/workbench/workbench.main.ts +++ b/src/vs/workbench/workbench.main.ts @@ -78,13 +78,13 @@ import 'vs/workbench/parts/contentprovider/common/contentprovider.contribution'; import 'vs/workbench/parts/themes/electron-browser/themes.contribution'; -import 'vs/workbench/parts/feedback/electron-browser/feedback.contribution'; +import 'vs/workbench/parts/feedback/browser/feedback.contribution'; -import 'vs/workbench/parts/welcome/electron-browser/electronGettingStarted.contribution'; +import 'vs/workbench/parts/welcome/browser/gettingStarted.contribution'; import 'vs/workbench/parts/update/electron-browser/update.contribution'; -import 'vs/workbench/parts/nps/electron-browser/nps.contribution'; +import 'vs/workbench/parts/nps/browser/nps.contribution'; import 'vs/workbench/parts/cli/electron-browser/cli.contribution'; From bf4705b6210a04da9ed3ed4bf28a185318337e9c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 17:53:07 +0200 Subject: [PATCH 196/242] reveal line when triggering suggest, fixes #14195 --- src/vs/editor/contrib/suggest/browser/suggestController.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/editor/contrib/suggest/browser/suggestController.ts b/src/vs/editor/contrib/suggest/browser/suggestController.ts index e4c8c42a35a..3fc842becd8 100644 --- a/src/vs/editor/contrib/suggest/browser/suggestController.ts +++ b/src/vs/editor/contrib/suggest/browser/suggestController.ts @@ -113,6 +113,7 @@ export class SuggestController implements IEditorContribution { triggerSuggest(): void { this.model.trigger(false, false); + this.editor.revealLine(this.editor.getPosition().lineNumber); this.editor.focus(); } From ab404bdf3dbe5e96099b49072d9292c33466239a Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 28 Oct 2016 17:57:32 +0200 Subject: [PATCH 197/242] also reset quickfix state when mode stays the same, fixes #14141 --- .../editor/contrib/quickFix/browser/quickFixModel.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts b/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts index 9acb2c68fcb..f80f5955153 100644 --- a/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts +++ b/src/vs/editor/contrib/quickFix/browser/quickFixModel.ts @@ -130,17 +130,17 @@ export class QuickFixModel { } private _update(): void { - dispose(this._quickFixOracle); + + if (this._quickFixOracle) { + dispose(this._quickFixOracle); + this._onDidChangeFixes.fire(undefined); + } if (this._editor.getModel() && CodeActionProviderRegistry.has(this._editor.getModel()) && !this._editor.getConfiguration().readOnly) { this._quickFixOracle = new QuickFixOracle(this._editor, this._markerService, p => this._onDidChangeFixes.fire(p)); - - } else { - // signal unavailable - this._onDidChangeFixes.fire(undefined); } } From 9f1f36cb1eee8ebbdcdfc2e3f0d37c99572c27ea Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sun, 30 Oct 2016 08:09:17 +0100 Subject: [PATCH 198/242] extensionHomePath => extensions-dir --- src/vs/code/electron-main/window.ts | 2 +- src/vs/code/electron-main/windows.ts | 2 +- src/vs/platform/environment/node/argv.ts | 9 +++++---- src/vs/platform/environment/node/environmentService.ts | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index 1a0d19a57f7..2d90236b64f 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -400,7 +400,7 @@ export class VSCodeWindow { configuration.verbose = cli.verbose; configuration.debugPluginHost = cli.debugPluginHost; configuration.debugBrkPluginHost = cli.debugBrkPluginHost; - configuration.extensionHomePath = cli.extensionHomePath; + configuration['extensions-dir'] = cli['extensions-dir']; } // Load config diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index a40d75ee821..16da9162265 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -1029,7 +1029,7 @@ export class WindowsManager implements IWindowsService { configuration.verbose = currentWindowConfig.verbose; configuration.debugBrkPluginHost = currentWindowConfig.debugBrkPluginHost; configuration.debugPluginHost = currentWindowConfig.debugPluginHost; - configuration.extensionHomePath = currentWindowConfig.extensionHomePath; + configuration['extensions-dir'] = currentWindowConfig['extensions-dir']; } } diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts index d7f86b73818..23142ee7acc 100644 --- a/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts @@ -23,7 +23,7 @@ export interface ParsedArgs extends minimist.ParsedArgs { verbose?: boolean; logExtensionHostCommunication?: boolean; 'disable-extensions'?: boolean; - extensionHomePath?: string; + 'extensions-dir'?: string; extensionDevelopmentPath?: string; extensionTestsPath?: string; debugBrkPluginHost?: string; @@ -39,7 +39,7 @@ const options: minimist.Opts = { string: [ 'locale', 'user-data-dir', - 'extensionHomePath', + 'extensions-dir', 'extensionDevelopmentPath', 'extensionTestsPath', 'install-extension', @@ -73,7 +73,8 @@ const options: minimist.Opts = { 'new-window': 'n', 'reuse-window': 'r', performance: 'p', - 'disable-extensions': 'disableExtensions' + 'disable-extensions': 'disableExtensions', + 'extensions-dir': 'extensionHomePath' } }; @@ -137,7 +138,7 @@ export const optionsHelp: { [name: string]: string; } = { '--user-data-dir ': localize('userDataDir', "Specifies the directory that user data is kept in, useful when running as root."), '--verbose': localize('verbose', "Print verbose output (implies --wait)."), '-w, --wait': localize('wait', "Wait for the window to be closed before returning."), - '--extensionHomePath': localize('extensionHomePath', "Set the root path for extensions."), + '--extensions-dir ': localize('extensionHomePath', "Set the root path for extensions."), '--list-extensions': localize('listExtensions', "List the installed extensions."), '--show-versions': localize('showVersions', "Show versions of installed extensions, when using --list-extension."), '--install-extension ': localize('installExtension', "Installs an extension."), diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts index 96fb1f4368b..990d047edb1 100644 --- a/src/vs/platform/environment/node/environmentService.ts +++ b/src/vs/platform/environment/node/environmentService.ts @@ -78,7 +78,7 @@ export class EnvironmentService implements IEnvironmentService { get appKeybindingsPath(): string { return path.join(this.appSettingsHome, 'keybindings.json'); } @memoize - get extensionsPath(): string { return path.normalize(this._args.extensionHomePath || path.join(this.userHome, 'extensions')); } + get extensionsPath(): string { return path.normalize(this._args['extensions-dir'] || path.join(this.userHome, 'extensions')); } @memoize get extensionDevelopmentPath(): string { return this._args.extensionDevelopmentPath ? path.normalize(this._args.extensionDevelopmentPath) : this._args.extensionDevelopmentPath; } From a744e4e1bda12e3860bf36e9f70f2d8c80648b8b Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sun, 30 Oct 2016 08:19:29 +0100 Subject: [PATCH 199/242] debt - workspace settings only supports specific files --- .../configuration/common/configuration.ts | 7 +++- .../services/configuration/common/model.ts | 11 +++--- .../node/configurationEditingService.ts | 7 +--- .../node/configurationService.ts | 34 +++++++++++++------ .../configuration/test/common/model.test.ts | 22 ------------ .../node/configurationEditingService.test.ts | 3 +- 6 files changed, 37 insertions(+), 47 deletions(-) diff --git a/src/vs/workbench/services/configuration/common/configuration.ts b/src/vs/workbench/services/configuration/common/configuration.ts index ff8a218a15d..8b6ae6145f2 100644 --- a/src/vs/workbench/services/configuration/common/configuration.ts +++ b/src/vs/workbench/services/configuration/common/configuration.ts @@ -27,4 +27,9 @@ export interface IWorkspaceConfigurationService extends IConfigurationService { export interface IWorkspaceConfigurationValue extends IConfigurationValue { workspace: T; -} \ No newline at end of file +} + +export const WORKSPACE_STANDALONE_CONFIGURATIONS = { + 'tasks': '.vscode/tasks.json', + 'launch': '.vscode/launch.json' +}; \ No newline at end of file diff --git a/src/vs/workbench/services/configuration/common/model.ts b/src/vs/workbench/services/configuration/common/model.ts index f3f897928b9..b1a21a51eb7 100644 --- a/src/vs/workbench/services/configuration/common/model.ts +++ b/src/vs/workbench/services/configuration/common/model.ts @@ -51,7 +51,7 @@ export function merge(base: any, add: any, overwrite: boolean): void { export function consolidate(configMap: { [key: string]: IConfigFile; }): { contents: any; parseErrors: string[]; } { const finalConfig: any = Object.create(null); const parseErrors: string[] = []; - const regexp = /\/(team\.)?([^\.]*)*\.json/; + const regexp = /\/([^\.]*)*\.json/; // We want to use the default settings file as base and let all other config // files overwrite the base one @@ -69,15 +69,12 @@ export function consolidate(configMap: { [key: string]: IConfigFile; }): { conte return; } - // If a file is team.foo.json, it indicates team settings, strip this away - const isTeamSetting = !!matches[1]; - // Extract the config key from the file name (except for settings.json which is the default) let configElement: any = finalConfig; - if (matches && matches[2] && matches[2] !== CONFIG_DEFAULT_NAME) { + if (matches && matches[1] && matches[1] !== CONFIG_DEFAULT_NAME) { // Use the name of the file as top level config section for all settings inside - const configSection = matches[2]; + const configSection = matches[1]; let element = configElement[configSection]; if (!element) { element = Object.create(null); @@ -86,7 +83,7 @@ export function consolidate(configMap: { [key: string]: IConfigFile; }): { conte configElement = element; } - merge(configElement, config.contents, !isTeamSetting /* user settings overrule team settings */); + merge(configElement, config.contents, false); if (config.parseError) { parseErrors.push(configFileName); } diff --git a/src/vs/workbench/services/configuration/node/configurationEditingService.ts b/src/vs/workbench/services/configuration/node/configurationEditingService.ts index 664e52e984d..b971f7c50fe 100644 --- a/src/vs/workbench/services/configuration/node/configurationEditingService.ts +++ b/src/vs/workbench/services/configuration/node/configurationEditingService.ts @@ -19,15 +19,10 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { WORKSPACE_CONFIG_DEFAULT_PATH } from 'vs/workbench/services/configuration/common/configuration'; +import { WORKSPACE_CONFIG_DEFAULT_PATH, WORKSPACE_STANDALONE_CONFIGURATIONS } from 'vs/workbench/services/configuration/common/configuration'; import { IFileService } from 'vs/platform/files/common/files'; import { IConfigurationEditingService, ConfigurationEditingErrorCode, IConfigurationEditingError, ConfigurationTarget, IConfigurationValue } from 'vs/workbench/services/configuration/common/configurationEditing'; -export const WORKSPACE_STANDALONE_CONFIGURATIONS = { - 'tasks': '.vscode/tasks.json', - 'launch': '.vscode/launch.json' -}; - interface IConfigurationEditOperation extends IConfigurationValue { target: URI; isWorkspaceStandalone?: boolean; diff --git a/src/vs/workbench/services/configuration/node/configurationService.ts b/src/vs/workbench/services/configuration/node/configurationService.ts index 85fdda3659f..6f88c4cf56e 100644 --- a/src/vs/workbench/services/configuration/node/configurationService.ts +++ b/src/vs/workbench/services/configuration/node/configurationService.ts @@ -21,7 +21,7 @@ import errors = require('vs/base/common/errors'); import { IConfigFile, consolidate, newConfigFile } from 'vs/workbench/services/configuration/common/model'; import { IConfigurationServiceEvent, getConfigurationValue } from 'vs/platform/configuration/common/configuration'; import { ConfigurationService as BaseConfigurationService } from 'vs/platform/configuration/node/configurationService'; -import { IWorkspaceConfigurationService, IWorkspaceConfigurationValue, CONFIG_DEFAULT_NAME, WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME } from 'vs/workbench/services/configuration/common/configuration'; +import { IWorkspaceConfigurationService, IWorkspaceConfigurationValue, CONFIG_DEFAULT_NAME, WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME, WORKSPACE_STANDALONE_CONFIGURATIONS, WORKSPACE_CONFIG_DEFAULT_PATH } from 'vs/workbench/services/configuration/common/configuration'; import { EventType as FileEventType, FileChangeType, FileChangesEvent } from 'vs/platform/files/common/files'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import Event, { Emitter } from 'vs/base/common/event'; @@ -172,14 +172,21 @@ export class WorkspaceConfigurationService implements IWorkspaceConfigurationSer return TPromise.as(Object.create(null)); } - // once: when invoked for the first time we fetch *all* json files using the bulk stats and content routes + // once: when invoked for the first time we fetch json files that contribute settings if (!this.bulkFetchFromWorkspacePromise) { this.bulkFetchFromWorkspacePromise = resolveStat(this.contextService.toResource(this.workspaceSettingsRootFolder)).then(stat => { if (!stat.isDirectory) { return TPromise.as([]); } - return resolveContents(stat.children.filter(stat => paths.extname(stat.resource.fsPath) === '.json').map(stat => stat.resource)); + return resolveContents(stat.children.filter(stat => { + const isJson = paths.extname(stat.resource.fsPath) === '.json'; + if (!isJson) { + return false; // only JSON files + } + + return this.isWorkspaceConfigurationFile(this.contextService.toWorkspaceRelativePath(stat.resource)); // only workspace config files + }).map(stat => stat.resource)); }, (err) => { if (err) { return []; // never fail this call @@ -200,7 +207,13 @@ export class WorkspaceConfigurationService implements IWorkspaceConfigurationSer // Find changes that affect workspace configuration files for (let i = 0, len = events.length; i < len; i++) { - const workspacePath = this.contextService.toWorkspaceRelativePath(events[i].resource); + const resource = events[i].resource; + const isJson = paths.extname(resource.fsPath) === '.json'; + if (!isJson) { + continue; // only JSON files + } + + const workspacePath = this.contextService.toWorkspaceRelativePath(resource); if (!workspacePath) { continue; // event is not inside workspace } @@ -211,11 +224,8 @@ export class WorkspaceConfigurationService implements IWorkspaceConfigurationSer affectedByChanges = true; } - // outside my folder or not a *.json file - if ( - paths.extname(workspacePath) !== '.json' || // we only care about *.json files - paths.dirname(workspacePath) !== this.workspaceSettingsRootFolder // which are top level in .vscode - ) { + // only valid workspace config files + if (!this.isWorkspaceConfigurationFile(workspacePath)) { continue; } @@ -227,7 +237,7 @@ export class WorkspaceConfigurationService implements IWorkspaceConfigurationSer break; case FileChangeType.UPDATED: case FileChangeType.ADDED: - this.workspaceFilePathToConfiguration[workspacePath] = resolveContent(events[i].resource).then(content => newConfigFile(content.value), errors.onUnexpectedError); + this.workspaceFilePathToConfiguration[workspacePath] = resolveContent(resource).then(content => newConfigFile(content.value), errors.onUnexpectedError); affectedByChanges = true; } } @@ -238,6 +248,10 @@ export class WorkspaceConfigurationService implements IWorkspaceConfigurationSer } } + private isWorkspaceConfigurationFile(workspaceRelativePath: string): boolean { + return [WORKSPACE_CONFIG_DEFAULT_PATH, WORKSPACE_STANDALONE_CONFIGURATIONS.launch, WORKSPACE_STANDALONE_CONFIGURATIONS.tasks].some(p => p === workspaceRelativePath); + } + public set telemetryService(value: ITelemetryService) { this.baseConfigurationService.telemetryService = value; } diff --git a/src/vs/workbench/services/configuration/test/common/model.test.ts b/src/vs/workbench/services/configuration/test/common/model.test.ts index 2d849704591..2c5ba252cb3 100644 --- a/src/vs/workbench/services/configuration/test/common/model.test.ts +++ b/src/vs/workbench/services/configuration/test/common/model.test.ts @@ -24,28 +24,6 @@ suite('ConfigurationService - Model', () => { assert.deepEqual(base, { 'a': { 'b': 2 } }); }); - test('Test consolidate (settings)', () => { - const config1: model.IConfigFile = { - contents: { - awesome: true - } - }; - - const config2: model.IConfigFile = { - contents: { - awesome: false - } - }; - - const expected = { - awesome: false - }; - - assert.deepEqual(model.consolidate({ '.vscode/team.settings.json': config1, '.vscode/settings.json': config2 }).contents, expected); - assert.deepEqual(model.consolidate({ 'settings.json': config2, 'team.settings.json': config1 }).contents, {}); - assert.deepEqual(model.consolidate({ '.vscode/team.settings.json': config1, '.vscode/settings.json': config2, '.vscode/team2.settings.json': config1 }).contents, expected); - }); - test('Test consolidate (settings and tasks)', () => { const settingsConfig: model.IConfigFile = { contents: { diff --git a/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts b/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts index a4186bd02ba..c1946eae725 100644 --- a/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts +++ b/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts @@ -23,12 +23,13 @@ import { WorkspaceConfigurationService } from 'vs/workbench/services/configurati import URI from 'vs/base/common/uri'; import utils = require('vs/workbench/services/files/test/node/utils'); import { FileService } from 'vs/workbench/services/files/node/fileService'; -import { ConfigurationEditingService, WORKSPACE_STANDALONE_CONFIGURATIONS } from 'vs/workbench/services/configuration/node/configurationEditingService'; +import { ConfigurationEditingService } from 'vs/workbench/services/configuration/node/configurationEditingService'; import { ConfigurationTarget, IConfigurationEditingError, ConfigurationEditingErrorCode } from 'vs/workbench/services/configuration/common/configurationEditing'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { IFileService } from 'vs/platform/files/common/files'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { WORKSPACE_STANDALONE_CONFIGURATIONS } from 'vs/workbench/services/configuration/common/configuration'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IUntitledEditorService } from 'vs/workbench/services/untitled/common/untitledEditorService'; import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; From 85580d84488b3dcfef0b28cd01511345c485215f Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sun, 30 Oct 2016 08:45:10 +0100 Subject: [PATCH 200/242] storage => storageService --- src/vs/test/utils/servicesTestUtils.ts | 6 +++--- src/vs/workbench/electron-browser/shell.ts | 6 +++--- .../storage/common/storageService.ts} | 18 +++++++++--------- .../storage/test/storageService.test.ts} | 18 +++++++++--------- src/vs/workbench/test/browser/part.test.ts | 4 ++-- src/vs/workbench/test/common/memento.test.ts | 4 ++-- 6 files changed, 28 insertions(+), 28 deletions(-) rename src/vs/workbench/{common/storage.ts => services/storage/common/storageService.ts} (91%) rename src/vs/workbench/{test/node/storage.test.ts => services/storage/test/storageService.test.ts} (85%) diff --git a/src/vs/test/utils/servicesTestUtils.ts b/src/vs/test/utils/servicesTestUtils.ts index b0e56281897..e0a20651cff 100644 --- a/src/vs/test/utils/servicesTestUtils.ts +++ b/src/vs/test/utils/servicesTestUtils.ts @@ -14,7 +14,7 @@ import * as paths from 'vs/base/common/paths'; import * as assert from 'assert'; import URI from 'vs/base/common/uri'; import { ITelemetryService, NullTelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { Storage, InMemoryLocalStorage } from 'vs/workbench/common/storage'; +import { StorageService, InMemoryLocalStorage } from 'vs/workbench/services/storage/common/storageService'; import { IEditorGroup, ConfirmResult } from 'vs/workbench/common/editor'; import Event, { Emitter } from 'vs/base/common/event'; import Severity from 'vs/base/common/severity'; @@ -274,13 +274,13 @@ export class TestEventService extends EventEmitter implements IEventService { export class TestStorageService extends EventEmitter implements IStorageService { public _serviceBrand: any; - private storage: Storage; + private storage: StorageService; constructor() { super(); let context = new TestContextService(); - this.storage = new Storage(new InMemoryLocalStorage(), null, context, TestEnvironmentService); + this.storage = new StorageService(new InMemoryLocalStorage(), null, context, TestEnvironmentService); } store(key: string, value: any, scope: StorageScope = StorageScope.GLOBAL): void { diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index 429b4b21bc3..a8f11a13d9a 100644 --- a/src/vs/workbench/electron-browser/shell.ts +++ b/src/vs/workbench/electron-browser/shell.ts @@ -21,7 +21,7 @@ import pkg from 'vs/platform/package'; import { ContextViewService } from 'vs/platform/contextview/browser/contextViewService'; import timer = require('vs/base/common/timer'); import { Workbench } from 'vs/workbench/electron-browser/workbench'; -import { Storage, inMemoryLocalStorageInstance } from 'vs/workbench/common/storage'; +import { StorageService, inMemoryLocalStorageInstance } from 'vs/workbench/services/storage/common/storageService'; import { ITelemetryService, NullTelemetryService, loadExperiments } from 'vs/platform/telemetry/common/telemetry'; import { ITelemetryAppenderChannel, TelemetryAppenderClient } from 'vs/platform/telemetry/common/telemetryIpc'; import { TelemetryService, ITelemetryServiceConfig } from 'vs/platform/telemetry/common/telemetryService'; @@ -239,9 +239,9 @@ export class WorkbenchShell { }); }, errors.onUnexpectedError); - // Storage + // Storage Sevice const disableWorkspaceStorage = this.environmentService.extensionTestsPath || (!this.workspace && !this.environmentService.extensionDevelopmentPath); // without workspace or in any extension test, we use inMemory storage unless we develop an extension where we want to preserve state - this.storageService = instantiationService.createInstance(Storage, window.localStorage, disableWorkspaceStorage ? inMemoryLocalStorageInstance : window.localStorage); + this.storageService = instantiationService.createInstance(StorageService, window.localStorage, disableWorkspaceStorage ? inMemoryLocalStorageInstance : window.localStorage); serviceCollection.set(IStorageService, this.storageService); // Telemetry diff --git a/src/vs/workbench/common/storage.ts b/src/vs/workbench/services/storage/common/storageService.ts similarity index 91% rename from src/vs/workbench/common/storage.ts rename to src/vs/workbench/services/storage/common/storageService.ts index 65c0dac4906..ee585b8b6fd 100644 --- a/src/vs/workbench/common/storage.ts +++ b/src/vs/workbench/services/storage/common/storageService.ts @@ -21,13 +21,13 @@ export interface IStorage { removeItem(key: string): void; } -export class Storage implements IStorageService { +export class StorageService implements IStorageService { public _serviceBrand: any; private static COMMON_PREFIX = 'storage://'; - private static GLOBAL_PREFIX = Storage.COMMON_PREFIX + 'global/'; - private static WORKSPACE_PREFIX = Storage.COMMON_PREFIX + 'workspace/'; + private static GLOBAL_PREFIX = StorageService.COMMON_PREFIX + 'global/'; + private static WORKSPACE_PREFIX = StorageService.COMMON_PREFIX + 'workspace/'; private static WORKSPACE_IDENTIFIER = 'workspaceIdentifier'; private static NO_WORKSPACE_IDENTIFIER = '__$noWorkspace__'; @@ -63,7 +63,7 @@ export class Storage implements IStorageService { workspaceUri = workspace.resource.toString(); } - return workspaceUri ? this.calculateWorkspaceKey(workspaceUri) : Storage.NO_WORKSPACE_IDENTIFIER; + return workspaceUri ? this.calculateWorkspaceKey(workspaceUri) : StorageService.NO_WORKSPACE_IDENTIFIER; } private calculateWorkspaceKey(workspaceUrl: string): string { @@ -79,7 +79,7 @@ export class Storage implements IStorageService { private cleanupWorkspaceScope(workspaceId: number, workspaceName: string): void { // Get stored identifier from storage - const id = this.getInteger(Storage.WORKSPACE_IDENTIFIER, StorageScope.WORKSPACE); + const id = this.getInteger(StorageService.WORKSPACE_IDENTIFIER, StorageScope.WORKSPACE); // If identifier differs, assume the workspace got recreated and thus clean all storage for this workspace if (types.isNumber(id) && workspaceId !== id) { @@ -89,7 +89,7 @@ export class Storage implements IStorageService { for (let i = 0; i < length; i++) { const key = this.workspaceStorage.key(i); - if (key.indexOf(Storage.WORKSPACE_PREFIX) < 0) { + if (key.indexOf(StorageService.WORKSPACE_PREFIX) < 0) { continue; // ignore stored things that don't belong to storage service or are defined globally } @@ -111,7 +111,7 @@ export class Storage implements IStorageService { // Store workspace identifier now if (workspaceId !== id) { - this.store(Storage.WORKSPACE_IDENTIFIER, workspaceId, StorageScope.WORKSPACE); + this.store(StorageService.WORKSPACE_IDENTIFIER, workspaceId, StorageScope.WORKSPACE); } } @@ -194,10 +194,10 @@ export class Storage implements IStorageService { private toStorageKey(key: string, scope: StorageScope): string { if (scope === StorageScope.GLOBAL) { - return Storage.GLOBAL_PREFIX + key.toLowerCase(); + return StorageService.GLOBAL_PREFIX + key.toLowerCase(); } - return Storage.WORKSPACE_PREFIX + this.workspaceKey + key.toLowerCase(); + return StorageService.WORKSPACE_PREFIX + this.workspaceKey + key.toLowerCase(); } } diff --git a/src/vs/workbench/test/node/storage.test.ts b/src/vs/workbench/services/storage/test/storageService.test.ts similarity index 85% rename from src/vs/workbench/test/node/storage.test.ts rename to src/vs/workbench/services/storage/test/storageService.test.ts index 8b8f8eabc6e..ed97dd7d6d6 100644 --- a/src/vs/workbench/test/node/storage.test.ts +++ b/src/vs/workbench/services/storage/test/storageService.test.ts @@ -9,13 +9,13 @@ import * as assert from 'assert'; import { clone } from 'vs/base/common/objects'; import { StorageScope } from 'vs/platform/storage/common/storage'; import { TestContextService, TestWorkspace, TestEnvironmentService } from 'vs/test/utils/servicesTestUtils'; -import { Storage, InMemoryLocalStorage } from 'vs/workbench/common/storage'; +import { StorageService, InMemoryLocalStorage } from 'vs/workbench/services/storage/common/storageService'; -suite('Workbench Storage', () => { +suite('Workbench StorageSevice', () => { test('Swap Data with undefined default value', () => { let context = new TestContextService(); - let s = new Storage(new InMemoryLocalStorage(), null, context, TestEnvironmentService); + let s = new StorageService(new InMemoryLocalStorage(), null, context, TestEnvironmentService); s.swap('Monaco.IDE.Core.Storage.Test.swap', 'foobar', 'barfoo'); assert.strictEqual('foobar', s.get('Monaco.IDE.Core.Storage.Test.swap')); @@ -27,7 +27,7 @@ suite('Workbench Storage', () => { test('Remove Data', () => { let context = new TestContextService(); - let s = new Storage(new InMemoryLocalStorage(), null, context, TestEnvironmentService); + let s = new StorageService(new InMemoryLocalStorage(), null, context, TestEnvironmentService); s.store('Monaco.IDE.Core.Storage.Test.remove', 'foobar'); assert.strictEqual('foobar', s.get('Monaco.IDE.Core.Storage.Test.remove')); @@ -37,7 +37,7 @@ suite('Workbench Storage', () => { test('Get Data, Integer, Boolean', () => { let context = new TestContextService(); - let s = new Storage(new InMemoryLocalStorage(), null, context, TestEnvironmentService); + let s = new StorageService(new InMemoryLocalStorage(), null, context, TestEnvironmentService); assert.strictEqual(s.get('Monaco.IDE.Core.Storage.Test.get', StorageScope.GLOBAL, 'foobar'), 'foobar'); assert.strictEqual(s.get('Monaco.IDE.Core.Storage.Test.get', StorageScope.GLOBAL, ''), ''); @@ -69,17 +69,17 @@ suite('Workbench Storage', () => { assert.strictEqual(s.getBoolean('Monaco.IDE.Core.Storage.Test.getBooleanDefault', StorageScope.GLOBAL, true), true); }); - test('Storage cleans up when workspace changes', () => { + test('StorageSevice cleans up when workspace changes', () => { let storageImpl = new InMemoryLocalStorage(); let context = new TestContextService(); - let s = new Storage(storageImpl, null, context, TestEnvironmentService); + let s = new StorageService(storageImpl, null, context, TestEnvironmentService); s.store('key1', 'foobar'); s.store('key2', 'something'); s.store('wkey1', 'foo', StorageScope.WORKSPACE); s.store('wkey2', 'foo2', StorageScope.WORKSPACE); - s = new Storage(storageImpl, null, context, TestEnvironmentService); + s = new StorageService(storageImpl, null, context, TestEnvironmentService); assert.strictEqual(s.get('key1', StorageScope.GLOBAL), 'foobar'); assert.strictEqual(s.get('key1', StorageScope.WORKSPACE, null), null); @@ -91,7 +91,7 @@ suite('Workbench Storage', () => { let ws: any = clone(TestWorkspace); ws.uid = new Date().getTime() + 100; context = new TestContextService(ws); - s = new Storage(storageImpl, null, context, TestEnvironmentService); + s = new StorageService(storageImpl, null, context, TestEnvironmentService); assert.strictEqual(s.get('key1', StorageScope.GLOBAL), 'foobar'); assert.strictEqual(s.get('key1', StorageScope.WORKSPACE, null), null); diff --git a/src/vs/workbench/test/browser/part.test.ts b/src/vs/workbench/test/browser/part.test.ts index 6badb83c14c..eb16071c7ee 100644 --- a/src/vs/workbench/test/browser/part.test.ts +++ b/src/vs/workbench/test/browser/part.test.ts @@ -12,7 +12,7 @@ import * as Types from 'vs/base/common/types'; import * as TestUtils from 'vs/test/utils/servicesTestUtils'; import { IWorkspaceContextService, WorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IStorageService } from 'vs/platform/storage/common/storage'; -import { Storage, InMemoryLocalStorage } from 'vs/workbench/common/storage'; +import { StorageService, InMemoryLocalStorage } from 'vs/workbench/services/storage/common/storageService'; class MyPart extends Part { @@ -105,7 +105,7 @@ suite('Workbench Part', () => { fixture.id = fixtureId; document.body.appendChild(fixture); context = new WorkspaceContextService(TestUtils.TestWorkspace); - storage = new Storage(new InMemoryLocalStorage(), null, context, TestUtils.TestEnvironmentService); + storage = new StorageService(new InMemoryLocalStorage(), null, context, TestUtils.TestEnvironmentService); }); teardown(() => { diff --git a/src/vs/workbench/test/common/memento.test.ts b/src/vs/workbench/test/common/memento.test.ts index a29f55a2cfd..de3e5abc969 100644 --- a/src/vs/workbench/test/common/memento.test.ts +++ b/src/vs/workbench/test/common/memento.test.ts @@ -10,7 +10,7 @@ import { WorkspaceContextService } from 'vs/platform/workspace/common/workspace' import { StorageScope } from 'vs/platform/storage/common/storage'; import * as TestUtils from 'vs/test/utils/servicesTestUtils'; import { Memento, Scope } from 'vs/workbench/common/memento'; -import { Storage, InMemoryLocalStorage } from 'vs/workbench/common/storage'; +import { StorageService, InMemoryLocalStorage } from 'vs/workbench/services/storage/common/storageService'; suite('Workbench Memento', () => { let context; @@ -18,7 +18,7 @@ suite('Workbench Memento', () => { setup(() => { context = new WorkspaceContextService(TestUtils.TestWorkspace); - storage = new Storage(new InMemoryLocalStorage(), null, context, TestUtils.TestEnvironmentService); + storage = new StorageService(new InMemoryLocalStorage(), null, context, TestUtils.TestEnvironmentService); }); test('Loading and Saving Memento with Scopes', () => { From 43bcdb1a1443c7f5d7d23e075195070d32d2ae66 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sun, 30 Oct 2016 08:47:49 +0100 Subject: [PATCH 201/242] fix config tests --- src/vs/workbench/services/configuration/common/model.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/services/configuration/common/model.ts b/src/vs/workbench/services/configuration/common/model.ts index b1a21a51eb7..0d16e272ae5 100644 --- a/src/vs/workbench/services/configuration/common/model.ts +++ b/src/vs/workbench/services/configuration/common/model.ts @@ -83,7 +83,7 @@ export function consolidate(configMap: { [key: string]: IConfigFile; }): { conte configElement = element; } - merge(configElement, config.contents, false); + merge(configElement, config.contents, true); if (config.parseError) { parseErrors.push(configFileName); } From 86453b54fb91c140793164f1291e9e6084f744c1 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 07:34:57 +0100 Subject: [PATCH 202/242] config - add extensions.json too --- .../services/configuration/common/configuration.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/services/configuration/common/configuration.ts b/src/vs/workbench/services/configuration/common/configuration.ts index 8b6ae6145f2..0e922973077 100644 --- a/src/vs/workbench/services/configuration/common/configuration.ts +++ b/src/vs/workbench/services/configuration/common/configuration.ts @@ -8,7 +8,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' export const CONFIG_DEFAULT_NAME = 'settings'; export const WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME = '.vscode'; -export const WORKSPACE_CONFIG_DEFAULT_PATH = '.vscode/settings.json'; +export const WORKSPACE_CONFIG_DEFAULT_PATH = `${WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME}/${CONFIG_DEFAULT_NAME}.json`; export const IWorkspaceConfigurationService = createDecorator('configurationService'); @@ -30,6 +30,7 @@ export interface IWorkspaceConfigurationValue extends IConfigurationValue } export const WORKSPACE_STANDALONE_CONFIGURATIONS = { - 'tasks': '.vscode/tasks.json', - 'launch': '.vscode/launch.json' + 'tasks': `${WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME}/tasks.json`, + 'launch': `${WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME}/launch.json`, + 'extensions': `${WORKSPACE_CONFIG_FOLDER_DEFAULT_NAME}/extensions.json` }; \ No newline at end of file From 7808d00d6ec9e206717ddf6b5661a36ba4e3dfaf Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 07:44:59 +0100 Subject: [PATCH 203/242] Code folding lost when switching files with back/forward (fixes #8202) --- .../editor/browser/widget/codeEditorWidget.ts | 26 +++++++++------- src/vs/editor/common/editorCommon.ts | 5 ++- src/vs/monaco.d.ts | 8 +++-- src/vs/workbench/common/editor.ts | 13 +++++--- .../files/browser/editors/textFileEditor.ts | 31 +++++++++---------- 5 files changed, 48 insertions(+), 35 deletions(-) diff --git a/src/vs/editor/browser/widget/codeEditorWidget.ts b/src/vs/editor/browser/widget/codeEditorWidget.ts index 4548e94f9dd..02981ec6439 100644 --- a/src/vs/editor/browser/widget/codeEditorWidget.ts +++ b/src/vs/editor/browser/widget/codeEditorWidget.ts @@ -251,19 +251,23 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito if (!this.cursor || !this.hasView) { return; } - var s = state; - if (s && s.cursorState && s.viewState) { - var codeEditorState = s; - var cursorState = codeEditorState.cursorState; - if (Array.isArray(cursorState)) { - this.cursor.restoreState(cursorState); - } else { - // Backwards compatibility - this.cursor.restoreState([cursorState]); + if (state) { + var codeEditorState = state; + var cursorState = codeEditorState.cursorState; + if (cursorState) { + if (Array.isArray(cursorState)) { + this.cursor.restoreState(cursorState); + } else { + // Backwards compatibility + this.cursor.restoreState([cursorState]); + } } - this._view.restoreState(codeEditorState.viewState); - let contributionsState = s.contributionsState || {}; + if (codeEditorState.viewState) { + this._view.restoreState(codeEditorState.viewState); + } + + let contributionsState = codeEditorState.contributionsState || {}; let keys = Object.keys(this._contributions); for (let i = 0, len = keys.length; i < len; i++) { let id = keys[i]; diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index 0074cbe6e8d..baa968da486 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -2965,7 +2965,10 @@ export interface IViewState { export interface ICodeEditorViewState extends IEditorViewState { cursorState: ICursorState[]; viewState: IViewState; - contributionsState: { [id: string]: any }; + contributionsState: IContributionsViewState; +} +export interface IContributionsViewState { + [id: string]: any; } /** diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 0329b1eb5c0..3d44d7ed432 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -2665,9 +2665,11 @@ declare module monaco.editor { export interface ICodeEditorViewState extends IEditorViewState { cursorState: ICursorState[]; viewState: IViewState; - contributionsState: { - [id: string]: any; - }; + contributionsState: IContributionsViewState; + } + + export interface IContributionsViewState { + [id: string]: any; } /** diff --git a/src/vs/workbench/common/editor.ts b/src/vs/workbench/common/editor.ts index 316e19103d2..56e84b9beb3 100644 --- a/src/vs/workbench/common/editor.ts +++ b/src/vs/workbench/common/editor.ts @@ -8,7 +8,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import Event, { Emitter } from 'vs/base/common/event'; import types = require('vs/base/common/types'); import URI from 'vs/base/common/uri'; -import { IEditor, ICommonCodeEditor, IEditorViewState, IEditorOptions as ICodeEditorOptions } from 'vs/editor/common/editorCommon'; +import { IEditor, ICommonCodeEditor, IEditorViewState, IEditorOptions as ICodeEditorOptions, ICodeEditorViewState, IContributionsViewState, EditorType } from 'vs/editor/common/editorCommon'; import { IEditorInput, IEditorModel, IEditorOptions, ITextEditorOptions, IResourceInput, Position } from 'vs/platform/editor/common/editor'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; @@ -614,7 +614,7 @@ export class TextEditorOptions extends EditorOptions { * * @return if something was applied */ - public apply(editor: IEditor): boolean { + public apply(editor: IEditor, extraContributionsViewState?: IContributionsViewState): boolean { // Editor options if (this.editorOptions) { @@ -622,10 +622,10 @@ export class TextEditorOptions extends EditorOptions { } // View state - return this.applyViewState(editor); + return this.applyViewState(editor, extraContributionsViewState); } - private applyViewState(editor: IEditor): boolean { + private applyViewState(editor: IEditor, extraContributionsViewState?: IContributionsViewState): boolean { let gotApplied = false; // First try viewstate @@ -637,6 +637,11 @@ export class TextEditorOptions extends EditorOptions { // Otherwise check for selection else if (!types.isUndefinedOrNull(this.startLineNumber) && !types.isUndefinedOrNull(this.startColumn)) { + // Additional Contributions View State only applies if we did not have view state otherwise + if (extraContributionsViewState && editor.getEditorType() === EditorType.ICodeEditor) { + editor.restoreViewState({ contributionsState: extraContributionsViewState } as ICodeEditorViewState); + } + // Select if (!types.isUndefinedOrNull(this.endLineNumber) && !types.isUndefinedOrNull(this.endColumn)) { const range = { diff --git a/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts b/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts index 66e04e1da3b..e8d4425a970 100644 --- a/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts +++ b/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts @@ -10,7 +10,7 @@ import errors = require('vs/base/common/errors'); import { toErrorMessage } from 'vs/base/common/errorMessage'; import types = require('vs/base/common/types'); import paths = require('vs/base/common/paths'); -import { IEditorViewState } from 'vs/editor/common/editorCommon'; +import { ICodeEditorViewState } from 'vs/editor/common/editorCommon'; import { Action } from 'vs/base/common/actions'; import { Scope } from 'vs/workbench/common/memento'; import { IEditorOptions } from 'vs/editor/common/editorCommon'; @@ -37,9 +37,9 @@ import { IThemeService } from 'vs/workbench/services/themes/common/themeService' const TEXT_EDITOR_VIEW_STATE_PREFERENCE_KEY = 'textEditorViewState'; interface ITextEditorViewState { - 0?: IEditorViewState; - 1?: IEditorViewState; - 2?: IEditorViewState; + 0?: ICodeEditorViewState; + 1?: ICodeEditorViewState; + 2?: ICodeEditorViewState; } /** @@ -84,7 +84,7 @@ export class TextFileEditor extends BaseTextEditor { return super.getInput(); } - public setInput(input: FileEditorInput, options: EditorOptions): TPromise { + public setInput(input: FileEditorInput, options: TextEditorOptions): TPromise { const oldInput = this.getInput(); super.setInput(input, options); @@ -105,8 +105,8 @@ export class TextFileEditor extends BaseTextEditor { if (!forceOpen && input.matches(oldInput)) { // TextOptions (avoiding instanceof here for a reason, do not change!) - if (options && types.isFunction((options).apply)) { - (options).apply(this.getControl()); + if (options && types.isFunction(options.apply)) { + options.apply(this.getControl()); } return TPromise.as(null); @@ -145,18 +145,17 @@ export class TextFileEditor extends BaseTextEditor { const textEditor = this.getControl(); textEditor.setModel(textFileModel.textEditorModel); + const previousEditorViewState = this.loadTextEditorViewState(this.storageService, this.getInput().getResource().toString()); + // TextOptions (avoiding instanceof here for a reason, do not change!) let optionsGotApplied = false; - if (options && types.isFunction((options).apply)) { - optionsGotApplied = (options).apply(textEditor); + if (options && types.isFunction(options.apply)) { + optionsGotApplied = options.apply(textEditor, previousEditorViewState && previousEditorViewState.contributionsState); } - // Otherwise restore View State - if (!optionsGotApplied) { - const editorViewState = this.loadTextEditorViewState(this.storageService, this.getInput().getResource().toString()); - if (editorViewState) { - textEditor.restoreViewState(editorViewState); - } + // Otherwise restore previous View State if available + if (!optionsGotApplied && previousEditorViewState) { + textEditor.restoreViewState(previousEditorViewState); } }, (error) => { @@ -267,7 +266,7 @@ export class TextFileEditor extends BaseTextEditor { /** * Loads the text editor view state for the given key and returns it. */ - private loadTextEditorViewState(storageService: IStorageService, key: string): IEditorViewState { + private loadTextEditorViewState(storageService: IStorageService, key: string): ICodeEditorViewState { const memento = this.getMemento(storageService, Scope.WORKSPACE); const textEditorViewStateMemento = memento[TEXT_EDITOR_VIEW_STATE_PREFERENCE_KEY]; if (textEditorViewStateMemento) { From b316d930f25b9519f6a399c2e53600df51f9d5ee Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 08:31:02 +0100 Subject: [PATCH 204/242] Linux: DND of editor tabs flickers (fixes #14470) --- .../browser/parts/editor/tabsTitleControl.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts index 3db22575c02..492eecb1ff1 100644 --- a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts +++ b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts @@ -496,18 +496,29 @@ export class TabsTitleControl extends TitleControl { } })); + // We need to keep track of DRAG_ENTER and DRAG_LEAVE events because a tab is not just a div without children, + // it contains a label and a close button. HTML gives us DRAG_ENTER and DRAG_LEAVE events when hovering over + // these children and this can cause flicker of the drop feedback. The workaround is to count the events and only + // remove the drop feedback when the counter is 0 (see https://github.com/Microsoft/vscode/issues/14470) + let counter = 0; + // Drag over - this.tabDisposeables.push(DOM.addDisposableListener(tab, DOM.EventType.DRAG_OVER, (e: DragEvent) => { + this.tabDisposeables.push(DOM.addDisposableListener(tab, DOM.EventType.DRAG_ENTER, (e: DragEvent) => { + counter++; DOM.addClass(tab, 'dropfeedback'); })); // Drag leave this.tabDisposeables.push(DOM.addDisposableListener(tab, DOM.EventType.DRAG_LEAVE, (e: DragEvent) => { - DOM.removeClass(tab, 'dropfeedback'); + counter--; + if (counter === 0) { + DOM.removeClass(tab, 'dropfeedback'); + } })); // Drag end this.tabDisposeables.push(DOM.addDisposableListener(tab, DOM.EventType.DRAG_END, (e: DragEvent) => { + counter = 0; DOM.removeClass(tab, 'dropfeedback'); this.onEditorDragEnd(); @@ -515,6 +526,7 @@ export class TabsTitleControl extends TitleControl { // Drop this.tabDisposeables.push(DOM.addDisposableListener(tab, DOM.EventType.DROP, (e: DragEvent) => { + counter = 0; DOM.removeClass(tab, 'dropfeedback'); const targetPosition = this.stacks.positionOfGroup(group); From 963435d7b359e1c6e035c5ecbc5c55fe80334e99 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Mon, 31 Oct 2016 09:45:13 +0100 Subject: [PATCH 205/242] fixes #14738 --- .../contrib/parameterHints/browser/parameterHintsWidget.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts b/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts index 7570ef355ba..c79eedf21d8 100644 --- a/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts +++ b/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.ts @@ -296,6 +296,10 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable { const signature = this.hints.signatures[this.currentSignature]; + if (!signature) { + return; + } + const code = dom.append(this.signature, $('.code')); const hasParameters = signature.parameters.length > 0; From 752045ea1a2786f7e98167f7d3072cb558edaba9 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 10:39:20 +0100 Subject: [PATCH 206/242] Revert "fixes #14272" This reverts commit 1dbf76bfb301ff9bf45059d9dfadbc96b84ecb8a. --- .../node/configurationService.ts | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/src/vs/platform/configuration/node/configurationService.ts b/src/vs/platform/configuration/node/configurationService.ts index d647c5e3987..a0254f8aa61 100644 --- a/src/vs/platform/configuration/node/configurationService.ts +++ b/src/vs/platform/configuration/node/configurationService.ts @@ -15,7 +15,6 @@ import { IConfigurationService, IConfigurationServiceEvent, IConfigurationValue, import Event, { Emitter } from 'vs/base/common/event'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { RunOnceScheduler } from 'vs/base/common/async'; export class ConfigurationService implements IConfigurationService, IDisposable { @@ -26,8 +25,6 @@ export class ConfigurationService implements IConfigurationService, IDisposab private rawConfig: ConfigWatcher; private cache: T; - private onConfigurationChangeDelayer: RunOnceScheduler; - private _onDidUpdateConfiguration: Emitter; private _telemetryService: ITelemetryService; @@ -43,26 +40,14 @@ export class ConfigurationService implements IConfigurationService, IDisposab this.rawConfig = new ConfigWatcher(environmentService.appSettingsPath, { changeBufferDelay: 300, defaultConfig: Object.create(null) }); this.disposables.push(toDisposable(() => this.rawConfig.dispose())); - this.onConfigurationChangeDelayer = new RunOnceScheduler(() => this.onConfigurationChange(), 0); - this.disposables.push(this.onConfigurationChangeDelayer); - - this.registerListeners(); - } - - private registerListeners(): void { - - // Emit config change event when the raw config notifies us about a change + // Listeners this.disposables.push(this.rawConfig.onDidUpdateConfiguration(event => { this.onConfigurationChange(); if (this._telemetryService) { this._telemetryService.publicLog('updateUserConfiguration', { userConfigurationKeys: Object.keys(event.config) }); } })); - - // Expect many calls to the registry (e.g. from extensions). So we buffer this event to not - // spam listeners with too many configuration change events - const configurationRegistry = Registry.as(Extensions.Configuration); - this.disposables.push(configurationRegistry.onDidRegisterConfiguration(() => this.onConfigurationChangeDelayer.schedule())); + this.disposables.push(Registry.as(Extensions.Configuration).onDidRegisterConfiguration(() => this.onConfigurationChange())); } private onConfigurationChange(): void { From 71b5a2b385a21067c69453075124f8281c128c32 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 16:24:27 +0200 Subject: [PATCH 207/242] debug: import polish --- src/vs/workbench/parts/debug/common/debug.ts | 8 ++--- .../parts/debug/common/debugModel.ts | 32 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 84cd7a2814a..fc8d05b07a7 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -8,7 +8,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import Event from 'vs/base/common/event'; import severity from 'vs/base/common/severity'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import editor = require('vs/editor/common/editorCommon'); +import { IModel as EditorIModel, IEditorContribution } from 'vs/editor/common/editorCommon'; import { Position } from 'vs/editor/common/core/position'; import { ISuggestion } from 'vs/editor/common/modes'; import { Source } from 'vs/workbench/parts/debug/common/debugSource'; @@ -98,9 +98,9 @@ export interface ISession { export interface IProcess extends ITreeElement { name: string; + session: ISession; getThread(threadId: number): IThread; getAllThreads(): IThread[]; - session: ISession; } export interface IThread extends ITreeElement { @@ -346,7 +346,7 @@ export interface IConfigurationManager { /** * Returns true if breakpoints can be set for a given editor model. Depends on mode. */ - canSetBreakpointsIn(model: editor.IModel): boolean; + canSetBreakpointsIn(model: EditorIModel): boolean; } export const IDebugService = createDecorator(DEBUG_SERVICE_ID); @@ -476,7 +476,7 @@ export interface IDebugService { } // Editor interfaces -export interface IDebugEditorContribution extends editor.IEditorContribution { +export interface IDebugEditorContribution extends IEditorContribution { showHover(range: Range, hoveringOver: string, focus: boolean): TPromise; } diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 6c6d90aeb5e..f61497f42c7 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -4,17 +4,17 @@ *--------------------------------------------------------------------------------------------*/ import { TPromise } from 'vs/base/common/winjs.base'; -import nls = require('vs/nls'); -import lifecycle = require('vs/base/common/lifecycle'); +import * as nls from 'vs/nls'; +import * as lifecycle from 'vs/base/common/lifecycle'; import Event, { Emitter } from 'vs/base/common/event'; -import uuid = require('vs/base/common/uuid'); -import objects = require('vs/base/common/objects'); +import { generateUuid } from 'vs/base/common/uuid'; +import { clone } from 'vs/base/common/objects'; import severity from 'vs/base/common/severity'; -import types = require('vs/base/common/types'); -import arrays = require('vs/base/common/arrays'); +import { isObject, isString } from 'vs/base/common/types'; +import { distinct } from 'vs/base/common/arrays'; import { ISuggestion } from 'vs/editor/common/modes'; import { Position } from 'vs/editor/common/core/position'; -import debug = require('vs/workbench/parts/debug/common/debug'); +import * as debug from 'vs/workbench/parts/debug/common/debug'; import { Source } from 'vs/workbench/parts/debug/common/debugSource'; const MAX_REPL_LENGTH = 10000; @@ -67,9 +67,9 @@ export class KeyValueOutputElement extends OutputElement { this._valueName = 'null'; } else if (Array.isArray(this.valueObj)) { this._valueName = `Array[${this.valueObj.length}]`; - } else if (types.isObject(this.valueObj)) { + } else if (isObject(this.valueObj)) { this._valueName = 'Object'; - } else if (types.isString(this.valueObj)) { + } else if (isString(this.valueObj)) { this._valueName = `"${massageValue(this.valueObj)}"`; } else { this._valueName = String(this.valueObj); @@ -87,7 +87,7 @@ export class KeyValueOutputElement extends OutputElement { if (!this.children) { if (Array.isArray(this.valueObj)) { this.children = (this.valueObj).slice(0, KeyValueOutputElement.MAX_CHILDREN).map((v, index) => new KeyValueOutputElement(String(index), v, null)); - } else if (types.isObject(this.valueObj)) { + } else if (isObject(this.valueObj)) { this.children = Object.getOwnPropertyNames(this.valueObj).slice(0, KeyValueOutputElement.MAX_CHILDREN).map(key => new KeyValueOutputElement(key, this.valueObj[key], null)); } else { this.children = []; @@ -179,7 +179,7 @@ export abstract class ExpressionContainer implements debug.IExpressionContainer count, filter }).then(response => { - return response && response.body && response.body.variables ? arrays.distinct(response.body.variables.filter(v => !!v), v => v.name).map( + return response && response.body && response.body.variables ? distinct(response.body.variables.filter(v => !!v), v => v.name).map( v => new Variable(this.stackFrame, this, v.variablesReference, v.name, v.evaluateName, v.value, v.namedVariables, v.indexedVariables, v.type) ) : []; }, (e: Error) => [new Variable(this.stackFrame, this, 0, null, e.message, '', 0, 0, null, false)]); @@ -204,7 +204,7 @@ export class Expression extends ExpressionContainer implements debug.IExpression public available: boolean; public type: string; - constructor(public name: string, cacheChildren: boolean, id = uuid.generateUuid()) { + constructor(public name: string, cacheChildren: boolean, id = generateUuid()) { super(null, 0, id, cacheChildren, 0, 0); this.value = Expression.DEFAULT_VALUE; this.available = false; @@ -512,7 +512,7 @@ export class Process implements debug.IProcess { // Only update the details if all the threads are stopped // because we don't want to overwrite the details of other // threads that have stopped for a different reason - this.threads[ref].stoppedDetails = objects.clone(data.stoppedDetails); + this.threads[ref].stoppedDetails = clone(data.stoppedDetails); this.threads[ref].stopped = true; this.threads[ref].clearCallStack(); }); @@ -584,7 +584,7 @@ export class Breakpoint implements debug.IBreakpoint { } this.lineNumber = this.desiredLineNumber; this.verified = false; - this.id = uuid.generateUuid(); + this.id = generateUuid(); } public getId(): string { @@ -600,7 +600,7 @@ export class FunctionBreakpoint implements debug.IFunctionBreakpoint { constructor(public name: string, public enabled: boolean, public hitCondition: string) { this.verified = false; - this.id = uuid.generateUuid(); + this.id = generateUuid(); } public getId(): string { @@ -613,7 +613,7 @@ export class ExceptionBreakpoint implements debug.IExceptionBreakpoint { private id: string; constructor(public filter: string, public label: string, public enabled: boolean) { - this.id = uuid.generateUuid(); + this.id = generateUuid(); } public getId(): string { From bf599644a7e8ba3e77a1cebaed7bb68417242ea7 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 28 Oct 2016 16:30:34 +0200 Subject: [PATCH 208/242] debug: polish imports --- .../debug/electron-browser/debugService.ts | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index b46b28bca56..c721fa89fda 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -3,22 +3,22 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import nls = require('vs/nls'); -import lifecycle = require('vs/base/common/lifecycle'); +import * as nls from 'vs/nls'; +import * as lifecycle from 'vs/base/common/lifecycle'; import { guessMimeTypes } from 'vs/base/common/mime'; import Event, { Emitter } from 'vs/base/common/event'; import * as strings from 'vs/base/common/strings'; -import uuid = require('vs/base/common/uuid'); +import { generateUuid } from 'vs/base/common/uuid'; import uri from 'vs/base/common/uri'; import { Action } from 'vs/base/common/actions'; -import arrays = require('vs/base/common/arrays'); -import types = require('vs/base/common/types'); -import errors = require('vs/base/common/errors'); +import { first, distinct } from 'vs/base/common/arrays'; +import { isObject, isUndefinedOrNull } from 'vs/base/common/types'; +import * as errors from 'vs/base/common/errors'; import severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; -import aria = require('vs/base/browser/ui/aria/aria'); +import * as aria from 'vs/base/browser/ui/aria/aria'; import { Client as TelemetryClient } from 'vs/base/parts/ipc/node/ipc.cp'; -import editorbrowser = require('vs/editor/browser/editorBrowser'); +import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IMarkerService } from 'vs/platform/markers/common/markers'; import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; @@ -33,12 +33,12 @@ import { TelemetryAppenderClient } from 'vs/platform/telemetry/common/telemetryI import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { asFileEditorInput } from 'vs/workbench/common/editor'; -import debug = require('vs/workbench/parts/debug/common/debug'); +import * as debug from 'vs/workbench/parts/debug/common/debug'; import { RawDebugSession } from 'vs/workbench/parts/debug/electron-browser/rawDebugSession'; -import model = require('vs/workbench/parts/debug/common/debugModel'); +import { Model, ExceptionBreakpoint, FunctionBreakpoint, Breakpoint, Expression } from 'vs/workbench/parts/debug/common/debugModel'; import { DebugStringEditorInput, DebugErrorEditorInput } from 'vs/workbench/parts/debug/browser/debugEditorInputs'; -import viewmodel = require('vs/workbench/parts/debug/common/debugViewModel'); -import debugactions = require('vs/workbench/parts/debug/browser/debugActions'); +import { ViewModel } from 'vs/workbench/parts/debug/common/debugViewModel'; +import * as debugactions from 'vs/workbench/parts/debug/browser/debugActions'; import { ConfigurationManager } from 'vs/workbench/parts/debug/node/debugConfigurationManager'; import { Source } from 'vs/workbench/parts/debug/common/debugSource'; import { ITaskService, TaskEvent, TaskType, TaskServiceEvents, ITaskSummary } from 'vs/workbench/parts/tasks/common/taskService'; @@ -67,8 +67,8 @@ export class DebugService implements debug.IDebugService { private sessionStates: { [id: string]: debug.State }; private _onDidChangeState: Emitter; - private model: model.Model; - private viewModel: viewmodel.ViewModel; + private model: Model; + private viewModel: ViewModel; private configurationManager: ConfigurationManager; private customTelemetryService: ITelemetryService; private lastTaskEvent: TaskEvent; @@ -108,10 +108,10 @@ export class DebugService implements debug.IDebugService { this.configurationManager = this.instantiationService.createInstance(ConfigurationManager); this.inDebugMode = debug.CONTEXT_IN_DEBUG_MODE.bindTo(contextKeyService); - this.model = new model.Model(this.loadBreakpoints(), this.storageService.getBoolean(DEBUG_BREAKPOINTS_ACTIVATED_KEY, StorageScope.WORKSPACE, true), this.loadFunctionBreakpoints(), + this.model = new Model(this.loadBreakpoints(), this.storageService.getBoolean(DEBUG_BREAKPOINTS_ACTIVATED_KEY, StorageScope.WORKSPACE, true), this.loadFunctionBreakpoints(), this.loadExceptionBreakpoints(), this.loadWatchExpressions()); this.toDispose.push(this.model); - this.viewModel = new viewmodel.ViewModel(this.storageService.get(DEBUG_SELECTED_CONFIG_NAME_KEY, StorageScope.WORKSPACE, null)); + this.viewModel = new ViewModel(this.storageService.get(DEBUG_SELECTED_CONFIG_NAME_KEY, StorageScope.WORKSPACE, null)); this.registerListeners(eventService, lifecycleService); } @@ -190,7 +190,7 @@ export class DebugService implements debug.IDebugService { } // objects & arrays are special because we want to inspect them in the REPL - else if (types.isObject(a) || Array.isArray(a)) { + else if (isObject(a) || Array.isArray(a)) { // flush any existing simple values logged if (simpleVals.length) { @@ -210,7 +210,7 @@ export class DebugService implements debug.IDebugService { for (let j = 0, len = a.length; j < len; j++) { if (a[j] === '%' && (a[j + 1] === 's' || a[j + 1] === 'i' || a[j + 1] === 'd')) { i++; // read over substitution - buf += !types.isUndefinedOrNull(args[i]) ? args[i] : ''; // replace + buf += !isUndefinedOrNull(args[i]) ? args[i] : ''; // replace j++; // read over directive } else { buf += a[j]; @@ -276,7 +276,7 @@ export class DebugService implements debug.IDebugService { thread.getCallStack().then(callStack => { if (callStack.length > 0) { // focus first stack frame from top that has source location - const stackFrameToFocus = arrays.first(callStack, sf => sf.source && sf.source.available, callStack[0]); + const stackFrameToFocus = first(callStack, sf => sf.source && sf.source.available, callStack[0]); this.setFocusedStackFrameAndEvaluate(stackFrameToFocus).done(null, errors.onUnexpectedError); this.windowService.getWindow().focus(); aria.alert(nls.localize('debuggingPaused', "Debugging paused, reason {0}, {1} {2}", event.body.reason, stackFrameToFocus.source ? stackFrameToFocus.source.name : '', stackFrameToFocus.lineNumber)); @@ -368,7 +368,7 @@ export class DebugService implements debug.IDebugService { let result: debug.IBreakpoint[]; try { result = JSON.parse(this.storageService.get(DEBUG_BREAKPOINTS_KEY, StorageScope.WORKSPACE, '[]')).map((breakpoint: any) => { - return new model.Breakpoint(new Source(breakpoint.source.raw ? breakpoint.source.raw : { path: uri.parse(breakpoint.source.uri).fsPath, name: breakpoint.source.name }), + return new Breakpoint(new Source(breakpoint.source.raw ? breakpoint.source.raw : { path: uri.parse(breakpoint.source.uri).fsPath, name: breakpoint.source.name }), breakpoint.desiredLineNumber || breakpoint.lineNumber, breakpoint.enabled, breakpoint.condition, breakpoint.hitCondition); }); } catch (e) { } @@ -380,7 +380,7 @@ export class DebugService implements debug.IDebugService { let result: debug.IFunctionBreakpoint[]; try { result = JSON.parse(this.storageService.get(DEBUG_FUNCTION_BREAKPOINTS_KEY, StorageScope.WORKSPACE, '[]')).map((fb: any) => { - return new model.FunctionBreakpoint(fb.name, fb.enabled, fb.hitCondition); + return new FunctionBreakpoint(fb.name, fb.enabled, fb.hitCondition); }); } catch (e) { } @@ -391,18 +391,18 @@ export class DebugService implements debug.IDebugService { let result: debug.IExceptionBreakpoint[]; try { result = JSON.parse(this.storageService.get(DEBUG_EXCEPTION_BREAKPOINTS_KEY, StorageScope.WORKSPACE, '[]')).map((exBreakpoint: any) => { - return new model.ExceptionBreakpoint(exBreakpoint.filter || exBreakpoint.name, exBreakpoint.label, exBreakpoint.enabled); + return new ExceptionBreakpoint(exBreakpoint.filter || exBreakpoint.name, exBreakpoint.label, exBreakpoint.enabled); }); } catch (e) { } return result || []; } - private loadWatchExpressions(): model.Expression[] { - let result: model.Expression[]; + private loadWatchExpressions(): Expression[] { + let result: Expression[]; try { result = JSON.parse(this.storageService.get(DEBUG_WATCH_EXPRESSIONS_KEY, StorageScope.WORKSPACE, '[]')).map((watchStoredData: { name: string, id: string }) => { - return new model.Expression(watchStoredData.name, false, watchStoredData.id); + return new Expression(watchStoredData.name, false, watchStoredData.id); }); } catch (e) { } @@ -457,9 +457,9 @@ export class DebugService implements debug.IDebugService { public enableOrDisableBreakpoints(enable: boolean, breakpoint?: debug.IEnablement): TPromise { if (breakpoint) { this.model.setEnablement(breakpoint, enable); - if (breakpoint instanceof model.Breakpoint) { - return this.sendBreakpoints((breakpoint).source.uri); - } else if (breakpoint instanceof model.FunctionBreakpoint) { + if (breakpoint instanceof Breakpoint) { + return this.sendBreakpoints((breakpoint).source.uri); + } else if (breakpoint instanceof FunctionBreakpoint) { return this.sendFunctionBreakpoints(); } @@ -472,7 +472,7 @@ export class DebugService implements debug.IDebugService { public addBreakpoints(rawBreakpoints: debug.IRawBreakpoint[]): TPromise { this.model.addBreakpoints(rawBreakpoints); - const uris = arrays.distinct(rawBreakpoints, raw => raw.uri.toString()).map(raw => raw.uri); + const uris = distinct(rawBreakpoints, raw => raw.uri.toString()).map(raw => raw.uri); rawBreakpoints.forEach(rbp => aria.status(nls.localize('breakpointAdded', "Added breakpoint, line {0}, file {1}", rbp.lineNumber, rbp.uri.fsPath))); return TPromise.join(uris.map(uri => this.sendBreakpoints(uri))).then(() => void 0); @@ -481,7 +481,7 @@ export class DebugService implements debug.IDebugService { public removeBreakpoints(id?: string): TPromise { const toRemove = this.model.getBreakpoints().filter(bp => !id || bp.getId() === id); toRemove.forEach(bp => aria.status(nls.localize('breakpointRemoved', "Removed breakpoint, line {0}, file {1}", bp.lineNumber, bp.source.uri.fsPath))); - const urisToClear = arrays.distinct(toRemove, bp => bp.source.uri.toString()).map(bp => bp.source.uri); + const urisToClear = distinct(toRemove, bp => bp.source.uri.toString()).map(bp => bp.source.uri); this.model.removeBreakpoints(toRemove); return TPromise.join(urisToClear.map(uri => this.sendBreakpoints(uri))); @@ -539,7 +539,7 @@ export class DebugService implements debug.IDebugService { public createProcess(configurationOrName: debug.IConfig | string): TPromise { this.removeReplExpressions(); - const sessionId = uuid.generateUuid(); + const sessionId = generateUuid(); this.setStateAndEmit(sessionId, debug.State.Initializing); return this.textFileService.saveAll() // make sure all dirty files are saved @@ -758,7 +758,7 @@ export class DebugService implements debug.IDebugService { return session.attach({ port }); } - const sessionId = uuid.generateUuid(); + const sessionId = generateUuid(); this.setStateAndEmit(sessionId, debug.State.Initializing); return this.configurationManager.getConfiguration(this.viewModel.selectedConfigurationName).then(config => this.doCreateProcess(sessionId, config) @@ -831,7 +831,7 @@ export class DebugService implements debug.IDebugService { if ((fileInput && fileInput.getResource().toString() === source.uri.toString()) || (visibleEditors[i].input instanceof DebugStringEditorInput && (visibleEditors[i].input).getResource().toString() === source.uri.toString())) { - const control = visibleEditors[i].getControl(); + const control = visibleEditors[i].getControl(); if (control) { control.revealLineInCenterIfOutsideViewport(lineNumber); control.setSelection({ startLineNumber: lineNumber, startColumn: 1, endLineNumber: lineNumber, endColumn: 1 }); @@ -912,7 +912,7 @@ export class DebugService implements debug.IDebugService { } private sendAllBreakpoints(session?: RawDebugSession): TPromise { - return TPromise.join(arrays.distinct(this.model.getBreakpoints(), bp => bp.source.uri.toString()).map(bp => this.sendBreakpoints(bp.source.uri, false, session))) + return TPromise.join(distinct(this.model.getBreakpoints(), bp => bp.source.uri.toString()).map(bp => this.sendBreakpoints(bp.source.uri, false, session))) .then(() => this.sendFunctionBreakpoints(session)) // send exception breakpoints at the end since some debug adapters rely on the order .then(() => this.sendExceptionBreakpoints(session)); @@ -929,7 +929,7 @@ export class DebugService implements debug.IDebugService { return TPromise.as(null); } - const breakpointsToSend = arrays.distinct( + const breakpointsToSend = distinct( this.model.getBreakpoints().filter(bp => this.model.areBreakpointsActivated() && bp.enabled && bp.source.uri.toString() === modelUri.toString()), bp => `${bp.desiredLineNumber}` ); From 5bc5ee888722fa731a86fe2029a4b19741a2fb87 Mon Sep 17 00:00:00 2001 From: isidor Date: Mon, 31 Oct 2016 11:13:40 +0100 Subject: [PATCH 209/242] debug: breakpoints reduce reference to Source --- .../parts/debug/browser/breakpointWidget.ts | 7 ++-- .../parts/debug/browser/debugActions.ts | 12 +++--- .../debug/browser/debugEditorModelManager.ts | 15 ++++--- src/vs/workbench/parts/debug/common/debug.ts | 7 ++-- .../parts/debug/common/debugModel.ts | 32 +++++++++++---- .../parts/debug/common/debugSource.ts | 28 +------------ .../debugEditorContribution.ts | 8 ++-- .../debug/electron-browser/debugService.ts | 40 +++++++++--------- .../debug/electron-browser/debugViewer.ts | 8 ++-- .../debug/electron-browser/debugViews.ts | 4 +- .../parts/debug/test/common/mockDebug.ts | 41 +------------------ .../parts/debug/test/node/debugModel.test.ts | 12 +++--- 12 files changed, 82 insertions(+), 132 deletions(-) diff --git a/src/vs/workbench/parts/debug/browser/breakpointWidget.ts b/src/vs/workbench/parts/debug/browser/breakpointWidget.ts index 11fbd6446cc..11bb8fcd009 100644 --- a/src/vs/workbench/parts/debug/browser/breakpointWidget.ts +++ b/src/vs/workbench/parts/debug/browser/breakpointWidget.ts @@ -85,7 +85,7 @@ export class BreakpointWidget extends ZoneWidget { protected _fillContainer(container: HTMLElement): void { dom.addClass(container, 'breakpoint-widget monaco-editor-background'); const uri = this.editor.getModel().uri; - const breakpoint = this.debugService.getModel().getBreakpoints().filter(bp => bp.lineNumber === this.lineNumber && bp.source.uri.toString() === uri.toString()).pop(); + const breakpoint = this.debugService.getModel().getBreakpoints().filter(bp => bp.lineNumber === this.lineNumber && bp.uri.toString() === uri.toString()).pop(); let selected = BreakpointWidget.lastSelected; if (breakpoint && breakpoint.condition) { @@ -124,10 +124,9 @@ export class BreakpointWidget extends ZoneWidget { if (success) { // if there is already a breakpoint on this location - remove it. const oldBreakpoint = this.debugService.getModel().getBreakpoints() - .filter(bp => bp.lineNumber === this.lineNumber && bp.source.uri.toString() === uri.toString()).pop(); + .filter(bp => bp.lineNumber === this.lineNumber && bp.uri.toString() === uri.toString()).pop(); const raw: debug.IRawBreakpoint = { - uri, lineNumber: this.lineNumber, enabled: true, condition: oldBreakpoint && oldBreakpoint.condition, @@ -143,7 +142,7 @@ export class BreakpointWidget extends ZoneWidget { this.debugService.removeBreakpoints(oldBreakpoint.getId()).done(null, errors.onUnexpectedError); } - this.debugService.addBreakpoints([raw]).done(null, errors.onUnexpectedError); + this.debugService.addBreakpoints(uri, [raw]).done(null, errors.onUnexpectedError); } this.dispose(); diff --git a/src/vs/workbench/parts/debug/browser/debugActions.ts b/src/vs/workbench/parts/debug/browser/debugActions.ts index 5ce1dadd9a3..835c20d2c4a 100644 --- a/src/vs/workbench/parts/debug/browser/debugActions.ts +++ b/src/vs/workbench/parts/debug/browser/debugActions.ts @@ -548,13 +548,13 @@ class ToggleBreakpointAction extends EditorAction { const debugService = accessor.get(IDebugService); const lineNumber = editor.getPosition().lineNumber; - const modelUrl = editor.getModel().uri; + const modelUri = editor.getModel().uri; if (debugService.getConfigurationManager().canSetBreakpointsIn(editor.getModel())) { const bp = debugService.getModel().getBreakpoints() - .filter(bp => bp.lineNumber === lineNumber && bp.source.uri.toString() === modelUrl.toString()).pop(); + .filter(bp => bp.lineNumber === lineNumber && bp.uri.toString() === modelUri.toString()).pop(); return bp ? debugService.removeBreakpoints(bp.getId()) - : debugService.addBreakpoints([{ uri: modelUrl, lineNumber: lineNumber }]); + : debugService.addBreakpoints(modelUri, [{ lineNumber }]); } } } @@ -632,7 +632,7 @@ class RunToCursorAction extends EditorAction { const oneTimeListener = debugService.getViewModel().focusedProcess.session.onDidEvent(event => { if (event.event === 'stopped' || event.event === 'exit') { const toRemove = debugService.getModel().getBreakpoints() - .filter(bp => bp.desiredLineNumber === lineNumber && bp.source.uri.toString() === uri.toString()).pop(); + .filter(bp => bp.desiredLineNumber === lineNumber && bp.uri.toString() === uri.toString()).pop(); if (toRemove) { debugService.removeBreakpoints(toRemove.getId()); } @@ -640,8 +640,8 @@ class RunToCursorAction extends EditorAction { } }); - const bpExists = !!(debugService.getModel().getBreakpoints().filter(bp => bp.lineNumber === lineNumber && bp.source.uri.toString() === uri.toString()).pop()); - return (bpExists ? TPromise.as(null) : debugService.addBreakpoints([{ uri, lineNumber }])).then(() => { + const bpExists = !!(debugService.getModel().getBreakpoints().filter(bp => bp.lineNumber === lineNumber && bp.uri.toString() === uri.toString()).pop()); + return (bpExists ? TPromise.as(null) : debugService.addBreakpoints(uri, [{ lineNumber }])).then(() => { debugService.getViewModel().focusedThread.continue(); }); } diff --git a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts index 0a479198fbe..b8e621b6569 100644 --- a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts +++ b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts @@ -92,7 +92,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution { private onModelAdded(model: editorcommon.IModel): void { const modelUrlStr = model.uri.toString(); - const breakpoints = this.debugService.getModel().getBreakpoints().filter(bp => bp.source.uri.toString() === modelUrlStr); + const breakpoints = this.debugService.getModel().getBreakpoints().filter(bp => bp.uri.toString() === modelUrlStr); const currentStackDecorations = model.deltaDecorations([], this.createCallStackDecorations(modelUrlStr)); const breakPointDecorations = model.deltaDecorations([], this.createBreakpointDecorations(breakpoints)); @@ -198,7 +198,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution { const data: IRawBreakpoint[] = []; const lineToBreakpointDataMap: { [key: number]: { enabled: boolean, condition: string, hitCondition: string } } = {}; - this.debugService.getModel().getBreakpoints().filter(bp => bp.source.uri.toString() === modelUrlStr).forEach(bp => { + this.debugService.getModel().getBreakpoints().filter(bp => bp.uri.toString() === modelUrlStr).forEach(bp => { lineToBreakpointDataMap[bp.lineNumber] = { enabled: bp.enabled, condition: bp.condition, @@ -206,14 +206,13 @@ export class DebugEditorModelManager implements IWorkbenchContribution { }; }); - const modelUrl = modelData.model.uri; + const modelUri = modelData.model.uri; for (let i = 0, len = modelData.breakpointDecorationIds.length; i < len; i++) { const decorationRange = modelData.model.getDecorationRange(modelData.breakpointDecorationIds[i]); // check if the line got deleted. if (decorationRange.endColumn - decorationRange.startColumn > 0) { // since we know it is collapsed, it cannot grow to multiple lines data.push({ - uri: modelUrl, lineNumber: decorationRange.startLineNumber, enabled: lineToBreakpointDataMap[modelData.breakpointLines[i]].enabled, condition: lineToBreakpointDataMap[modelData.breakpointLines[i]].condition, @@ -224,17 +223,17 @@ export class DebugEditorModelManager implements IWorkbenchContribution { modelData.dirty = this.debugService.state !== State.Inactive && this.debugService.state !== State.Disabled; const toRemove = this.debugService.getModel().getBreakpoints() - .filter(bp => bp.source.uri.toString() === modelUrl.toString()); + .filter(bp => bp.uri.toString() === modelUri.toString()); TPromise.join(toRemove.map(bp => this.debugService.removeBreakpoints(bp.getId()))).then(() => { - this.debugService.addBreakpoints(data); + this.debugService.addBreakpoints(modelUri, data); }); } private onBreakpointsChange(): void { const breakpointsMap: { [key: string]: IBreakpoint[] } = {}; this.debugService.getModel().getBreakpoints().forEach(bp => { - const uriStr = bp.source.uri.toString(); + const uriStr = bp.uri.toString(); if (breakpointsMap[uriStr]) { breakpointsMap[uriStr].push(bp); } else { @@ -273,7 +272,7 @@ export class DebugEditorModelManager implements IWorkbenchContribution { const activated = this.debugService.getModel().areBreakpointsActivated(); const state = this.debugService.state; const debugActive = state === State.Running || state === State.Stopped || state === State.Initializing; - const modelData = this.modelData[breakpoint.source.uri.toString()]; + const modelData = this.modelData[breakpoint.uri.toString()]; let result = (!breakpoint.enabled || !activated) ? DebugEditorModelManager.BREAKPOINT_DISABLED_DECORATION : debugActive && modelData && modelData.dirty && !breakpoint.verified ? DebugEditorModelManager.BREAKPOINT_DIRTY_DECORATION : diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index fc8d05b07a7..e775045e0ca 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -181,7 +181,6 @@ export interface IEnablement extends ITreeElement { } export interface IRawBreakpoint { - uri: uri; lineNumber: number; enabled?: boolean; condition?: string; @@ -189,7 +188,7 @@ export interface IRawBreakpoint { } export interface IBreakpoint extends IEnablement { - source: Source; + uri: uri; lineNumber: number; desiredLineNumber: number; condition: string; @@ -375,9 +374,9 @@ export interface IDebugService { setFocusedStackFrameAndEvaluate(focusedStackFrame: IStackFrame): TPromise; /** - * Adds new breakpoints to the model. Notifies debug adapter of breakpoint changes. + * Adds new breakpoints to the model for the file specified with the uri. Notifies debug adapter of breakpoint changes. */ - addBreakpoints(rawBreakpoints: IRawBreakpoint[]): TPromise; + addBreakpoints(uri: uri, rawBreakpoints: IRawBreakpoint[]): TPromise; /** * Enables or disables all breakpoints. If breakpoint is passed only enables or disables the passed breakpoint. diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index f61497f42c7..75a5deaf302 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -3,8 +3,10 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; +import uri from 'vs/base/common/uri'; +import { TPromise } from 'vs/base/common/winjs.base'; +import paths = require('vs/base/common/paths'); import * as lifecycle from 'vs/base/common/lifecycle'; import Event, { Emitter } from 'vs/base/common/event'; import { generateUuid } from 'vs/base/common/uuid'; @@ -563,7 +565,6 @@ export class Process implements debug.IProcess { } } -// TODO@Isidor breakpoint should not have a pointer to source. Source should live inside a stack frame export class Breakpoint implements debug.IBreakpoint { public lineNumber: number; @@ -590,6 +591,10 @@ export class Breakpoint implements debug.IBreakpoint { public getId(): string { return this.id; } + + public get uri(): uri { + return this.source.uri; + } } export class FunctionBreakpoint implements debug.IFunctionBreakpoint { @@ -632,10 +637,10 @@ export class Model implements debug.IModel { private _onDidChangeREPLElements: Emitter; constructor( - private breakpoints: debug.IBreakpoint[], + private breakpoints: Breakpoint[], private breakpointsActivated: boolean, - private functionBreakpoints: debug.IFunctionBreakpoint[], - private exceptionBreakpoints: debug.IExceptionBreakpoint[], + private functionBreakpoints: FunctionBreakpoint[], + private exceptionBreakpoints: ExceptionBreakpoint[], private watchExpressions: Expression[] ) { this.processes = []; @@ -696,7 +701,7 @@ export class Model implements debug.IModel { } } - public getBreakpoints(): debug.IBreakpoint[] { + public getBreakpoints(): Breakpoint[] { return this.breakpoints; } @@ -726,9 +731,19 @@ export class Model implements debug.IModel { this._onDidChangeBreakpoints.fire(); } - public addBreakpoints(rawData: debug.IRawBreakpoint[]): void { + public addBreakpoints(uri: uri, rawData: debug.IRawBreakpoint[]): void { + // Traverse the stack frames and check try to find the raw source matching the added breakpoint uri. + // Raw source might contain data needed for the debug adapter to match the breakpoint. + let source: Source = null; + this.processes.forEach(p => p.getAllThreads().forEach(t => t.getCachedCallStack().forEach(sf => { + if (sf.source.uri.toString() === uri.toString()) { + source = sf.source; + } + }))); + source = source || new Source({ path: paths.normalize(uri.fsPath, true), name: paths.basename(uri.fsPath) }); + this.breakpoints = this.breakpoints.concat(rawData.map(rawBp => - new Breakpoint(new Source(Source.toRawSource(rawBp.uri, this)), rawBp.lineNumber, rawBp.enabled, rawBp.condition, rawBp.hitCondition))); + new Breakpoint(source, rawBp.lineNumber, rawBp.enabled, rawBp.condition, rawBp.hitCondition))); this.breakpointsActivated = true; this._onDidChangeBreakpoints.fire(); } @@ -746,6 +761,7 @@ export class Model implements debug.IModel { bp.verified = bpData.verified; bp.idFromAdapter = bpData.id; bp.message = bpData.message; + bp.source = bpData.source ? new Source(bpData.source) : bp.source; } }); this._onDidChangeBreakpoints.fire(); diff --git a/src/vs/workbench/parts/debug/common/debugSource.ts b/src/vs/workbench/parts/debug/common/debugSource.ts index c487c81b00a..068a8c799bd 100644 --- a/src/vs/workbench/parts/debug/common/debugSource.ts +++ b/src/vs/workbench/parts/debug/common/debugSource.ts @@ -5,7 +5,7 @@ import uri from 'vs/base/common/uri'; import paths = require('vs/base/common/paths'); -import { IModel, DEBUG_SCHEME } from 'vs/workbench/parts/debug/common/debug'; +import { DEBUG_SCHEME } from 'vs/workbench/parts/debug/common/debug'; export class Source { @@ -32,30 +32,6 @@ export class Source { } public get inMemory() { - return Source.isInMemory(this.uri); - } - - public static toRawSource(uri: uri, model: IModel): DebugProtocol.Source { - if (model) { - // first try to find the raw source amongst the stack frames - since that represenation has more data (source reference), - for (let process of model.getProcesses()) { - for (let thread of process.getAllThreads()) { - if (thread.getCachedCallStack()) { - const found = thread.getCachedCallStack().filter(sf => sf.source.uri.toString() === uri.toString()).pop(); - if (found) { - return found.source.raw; - } - } - } - } - } - - // did not find the raw source amongst the stack frames, construct the raw stack frame from the limited data you have. - return Source.isInMemory(uri) ? { name: paths.basename(uri.toString()) } : - { path: paths.normalize(uri.fsPath, true), name: paths.basename(uri.fsPath) }; - } - - private static isInMemory(uri: uri): boolean { - return uri.toString().indexOf(Source.INTERNAL_URI_PREFIX) === 0; + return this.uri.toString().indexOf(Source.INTERNAL_URI_PREFIX) === 0; } } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts index 4f809ddf4e8..35fedeb854e 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts @@ -63,7 +63,7 @@ export class DebugEditorContribution implements debug.IDebugEditorContribution { nls.localize('addBreakpoint', "Add Breakpoint"), null, true, - () => this.debugService.addBreakpoints([{ uri, lineNumber }]) + () => this.debugService.addBreakpoints(uri, [{ lineNumber }]) )); actions.push(this.instantiationService.createInstance(debugactions.AddConditionalBreakpointAction, debugactions.AddConditionalBreakpointAction.ID, debugactions.AddConditionalBreakpointAction.LABEL, this.editor, lineNumber)); } @@ -85,7 +85,7 @@ export class DebugEditorContribution implements debug.IDebugEditorContribution { if (e.event.rightButton || (env.isMacintosh && e.event.leftButton && e.event.ctrlKey)) { const anchor = { x: e.event.posx + 1, y: e.event.posy }; - const breakpoint = this.debugService.getModel().getBreakpoints().filter(bp => bp.lineNumber === lineNumber && bp.source.uri.toString() === uri.toString()).pop(); + const breakpoint = this.debugService.getModel().getBreakpoints().filter(bp => bp.lineNumber === lineNumber && bp.uri.toString() === uri.toString()).pop(); this.contextMenuService.showContextMenu({ getAnchor: () => anchor, @@ -94,12 +94,12 @@ export class DebugEditorContribution implements debug.IDebugEditorContribution { }); } else { const breakpoint = this.debugService.getModel().getBreakpoints() - .filter(bp => bp.source.uri.toString() === uri.toString() && bp.lineNumber === lineNumber).pop(); + .filter(bp => bp.uri.toString() === uri.toString() && bp.lineNumber === lineNumber).pop(); if (breakpoint) { this.debugService.removeBreakpoints(breakpoint.getId()); } else { - this.debugService.addBreakpoints([{ uri, lineNumber }]); + this.debugService.addBreakpoints(uri, [{ lineNumber }]); } } })); diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index c721fa89fda..effcdfe739d 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -364,8 +364,8 @@ export class DebugService implements debug.IDebugService { this.appendReplOutput(event.body.output, outputSeverity); } - private loadBreakpoints(): debug.IBreakpoint[] { - let result: debug.IBreakpoint[]; + private loadBreakpoints(): Breakpoint[] { + let result: Breakpoint[]; try { result = JSON.parse(this.storageService.get(DEBUG_BREAKPOINTS_KEY, StorageScope.WORKSPACE, '[]')).map((breakpoint: any) => { return new Breakpoint(new Source(breakpoint.source.raw ? breakpoint.source.raw : { path: uri.parse(breakpoint.source.uri).fsPath, name: breakpoint.source.name }), @@ -376,8 +376,8 @@ export class DebugService implements debug.IDebugService { return result || []; } - private loadFunctionBreakpoints(): debug.IFunctionBreakpoint[] { - let result: debug.IFunctionBreakpoint[]; + private loadFunctionBreakpoints(): FunctionBreakpoint[] { + let result: FunctionBreakpoint[]; try { result = JSON.parse(this.storageService.get(DEBUG_FUNCTION_BREAKPOINTS_KEY, StorageScope.WORKSPACE, '[]')).map((fb: any) => { return new FunctionBreakpoint(fb.name, fb.enabled, fb.hitCondition); @@ -387,8 +387,8 @@ export class DebugService implements debug.IDebugService { return result || []; } - private loadExceptionBreakpoints(): debug.IExceptionBreakpoint[] { - let result: debug.IExceptionBreakpoint[]; + private loadExceptionBreakpoints(): ExceptionBreakpoint[] { + let result: ExceptionBreakpoint[]; try { result = JSON.parse(this.storageService.get(DEBUG_EXCEPTION_BREAKPOINTS_KEY, StorageScope.WORKSPACE, '[]')).map((exBreakpoint: any) => { return new ExceptionBreakpoint(exBreakpoint.filter || exBreakpoint.name, exBreakpoint.label, exBreakpoint.enabled); @@ -458,7 +458,7 @@ export class DebugService implements debug.IDebugService { if (breakpoint) { this.model.setEnablement(breakpoint, enable); if (breakpoint instanceof Breakpoint) { - return this.sendBreakpoints((breakpoint).source.uri); + return this.sendBreakpoints(breakpoint.uri); } else if (breakpoint instanceof FunctionBreakpoint) { return this.sendFunctionBreakpoints(); } @@ -470,18 +470,17 @@ export class DebugService implements debug.IDebugService { return this.sendAllBreakpoints(); } - public addBreakpoints(rawBreakpoints: debug.IRawBreakpoint[]): TPromise { - this.model.addBreakpoints(rawBreakpoints); - const uris = distinct(rawBreakpoints, raw => raw.uri.toString()).map(raw => raw.uri); - rawBreakpoints.forEach(rbp => aria.status(nls.localize('breakpointAdded', "Added breakpoint, line {0}, file {1}", rbp.lineNumber, rbp.uri.fsPath))); + public addBreakpoints(uri: uri, rawBreakpoints: debug.IRawBreakpoint[]): TPromise { + this.model.addBreakpoints(uri, rawBreakpoints); + rawBreakpoints.forEach(rbp => aria.status(nls.localize('breakpointAdded', "Added breakpoint, line {0}, file {1}", rbp.lineNumber, uri.fsPath))); - return TPromise.join(uris.map(uri => this.sendBreakpoints(uri))).then(() => void 0); + return this.sendBreakpoints(uri); } public removeBreakpoints(id?: string): TPromise { const toRemove = this.model.getBreakpoints().filter(bp => !id || bp.getId() === id); - toRemove.forEach(bp => aria.status(nls.localize('breakpointRemoved', "Removed breakpoint, line {0}, file {1}", bp.lineNumber, bp.source.uri.fsPath))); - const urisToClear = distinct(toRemove, bp => bp.source.uri.toString()).map(bp => bp.source.uri); + toRemove.forEach(bp => aria.status(nls.localize('breakpointRemoved', "Removed breakpoint, line {0}, file {1}", bp.lineNumber, bp.uri.fsPath))); + const urisToClear = distinct(toRemove, bp => bp.uri.toString()).map(bp => bp.uri); this.model.removeBreakpoints(toRemove); return TPromise.join(urisToClear.map(uri => this.sendBreakpoints(uri))); @@ -801,10 +800,9 @@ export class DebugService implements debug.IDebugService { this.partService.removeClass('debugging'); // set breakpoints back to unverified since the session ended. // source reference changes across sessions, so we do not use it to persist the source. - const data: { [id: string]: { line: number, verified: boolean } } = {}; + const data: { [id: string]: { line: number, verified: boolean, source: DebugProtocol.Source } } = {}; this.model.getBreakpoints().forEach(bp => { - delete bp.source.raw.sourceReference; - data[bp.getId()] = { line: bp.lineNumber, verified: false }; + data[bp.getId()] = { line: bp.lineNumber, verified: false, source: null }; }); this.model.updateBreakpoints(data); @@ -912,7 +910,7 @@ export class DebugService implements debug.IDebugService { } private sendAllBreakpoints(session?: RawDebugSession): TPromise { - return TPromise.join(distinct(this.model.getBreakpoints(), bp => bp.source.uri.toString()).map(bp => this.sendBreakpoints(bp.source.uri, false, session))) + return TPromise.join(distinct(this.model.getBreakpoints(), bp => bp.uri.toString()).map(bp => this.sendBreakpoints(bp.uri, false, session))) .then(() => this.sendFunctionBreakpoints(session)) // send exception breakpoints at the end since some debug adapters rely on the order .then(() => this.sendExceptionBreakpoints(session)); @@ -930,10 +928,10 @@ export class DebugService implements debug.IDebugService { } const breakpointsToSend = distinct( - this.model.getBreakpoints().filter(bp => this.model.areBreakpointsActivated() && bp.enabled && bp.source.uri.toString() === modelUri.toString()), + this.model.getBreakpoints().filter(bp => this.model.areBreakpointsActivated() && bp.enabled && bp.uri.toString() === modelUri.toString()), bp => `${bp.desiredLineNumber}` ); - const rawSource = breakpointsToSend.length > 0 ? breakpointsToSend[0].source.raw : Source.toRawSource(modelUri, this.model); + const rawSource = breakpointsToSend.length > 0 ? (breakpointsToSend[0]).source.raw : undefined; return session.setBreakpoints({ source: rawSource, @@ -1004,7 +1002,7 @@ export class DebugService implements debug.IDebugService { private onFileChanges(fileChangesEvent: FileChangesEvent): void { this.model.removeBreakpoints(this.model.getBreakpoints().filter(bp => - fileChangesEvent.contains(bp.source.uri, FileChangeType.DELETED))); + fileChangesEvent.contains(bp.uri, FileChangeType.DELETED))); fileChangesEvent.getUpdated().forEach(event => { if (this.breakpointsToSendOnResourceSaved[event.resource.toString()]) { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts index 8800d2313c7..a03a117097b 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts @@ -1201,9 +1201,9 @@ export class BreakpointsRenderer implements IRenderer { private renderBreakpoint(tree: ITree, breakpoint: debug.IBreakpoint, data: IBreakpointTemplateData): void { this.debugService.getModel().areBreakpointsActivated() ? tree.removeTraits('disabled', [breakpoint]) : tree.addTraits('disabled', [breakpoint]); - data.name.textContent = getPathLabel(paths.basename(breakpoint.source.uri.fsPath), this.contextService); + data.name.textContent = getPathLabel(paths.basename(breakpoint.uri.fsPath), this.contextService); data.lineNumber.textContent = breakpoint.desiredLineNumber !== breakpoint.lineNumber ? breakpoint.desiredLineNumber + ' \u2192 ' + breakpoint.lineNumber : '' + breakpoint.lineNumber; - data.filePath.textContent = getPathLabel(paths.dirname(breakpoint.source.uri.fsPath), this.contextService); + data.filePath.textContent = getPathLabel(paths.dirname(breakpoint.uri.fsPath), this.contextService); data.checkbox.checked = breakpoint.enabled; data.actionBar.context = breakpoint; @@ -1233,7 +1233,7 @@ export class BreakpointsAccessibilityProvider implements IAccessibilityProvider public getAriaLabel(tree: ITree, element: any): string { if (element instanceof Breakpoint) { - return nls.localize('breakpointAriaLabel', "Breakpoint line {0} {1}, breakpoints, debug", (element).lineNumber, getSourceName((element).source, this.contextService)); + return nls.localize('breakpointAriaLabel', "Breakpoint line {0} {1}, breakpoints, debug", (element).lineNumber, getPathLabel(paths.basename((element).uri.fsPath), this.contextService), this.contextService); } if (element instanceof FunctionBreakpoint) { return nls.localize('functionBreakpointAriaLabel', "Function breakpoint {0}, breakpoints, debug", (element).name); @@ -1305,7 +1305,7 @@ export class BreakpointsController extends BaseDebugController { return false; } - private openBreakpointSource(breakpoint: debug.IBreakpoint, event: IKeyboardEvent | IMouseEvent, preserveFocus: boolean): void { + private openBreakpointSource(breakpoint: Breakpoint, event: IKeyboardEvent | IMouseEvent, preserveFocus: boolean): void { if (!breakpoint.source.inMemory) { const sideBySide = (event && (event.ctrlKey || event.metaKey)); this.debugService.openOrRevealSource(breakpoint.source, breakpoint.lineNumber, preserveFocus, sideBySide).done(null, errors.onUnexpectedError); diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViews.ts b/src/vs/workbench/parts/debug/electron-browser/debugViews.ts index 122e576bc0d..ec6b64cb697 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViews.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViews.ts @@ -403,8 +403,8 @@ export class BreakpointsView extends viewlet.AdaptiveCollapsibleViewletView { return 1; } - if (first.source.uri.toString() !== second.source.uri.toString()) { - return paths.basename(first.source.uri.fsPath).localeCompare(paths.basename(second.source.uri.fsPath)); + if (first.uri.toString() !== second.uri.toString()) { + return paths.basename(first.uri.fsPath).localeCompare(paths.basename(second.uri.fsPath)); } return first.desiredLineNumber - second.desiredLineNumber; diff --git a/src/vs/workbench/parts/debug/test/common/mockDebug.ts b/src/vs/workbench/parts/debug/test/common/mockDebug.ts index 32b0874b710..f3cbcb5b5f3 100644 --- a/src/vs/workbench/parts/debug/test/common/mockDebug.ts +++ b/src/vs/workbench/parts/debug/test/common/mockDebug.ts @@ -3,11 +3,10 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import uri from 'vs/base/common/uri'; import Event from 'vs/base/common/event'; import severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; -import { ISuggestion } from 'vs/editor/common/modes'; -import { Position } from 'vs/editor/common/core/position'; import debug = require('vs/workbench/parts/debug/common/debug'); import { Source } from 'vs/workbench/parts/debug/common/debugSource'; @@ -30,7 +29,7 @@ export class MockDebugService implements debug.IDebugService { return TPromise.as(null); } - public addBreakpoints(rawBreakpoints: debug.IRawBreakpoint[]): TPromise { + public addBreakpoints(uri: uri, rawBreakpoints: debug.IRawBreakpoint[]): TPromise { return TPromise.as(null); } @@ -95,42 +94,6 @@ export class MockDebugService implements debug.IDebugService { public openOrRevealSource(source: Source, lineNumber: number, preserveFocus: boolean, sideBySide: boolean): TPromise { return TPromise.as(null); } - - public next(threadId: number): TPromise { - return TPromise.as(null); - } - - public stepIn(threadId: number): TPromise { - return TPromise.as(null); - } - - public stepOut(threadId: number): TPromise { - return TPromise.as(null); - } - - public stepBack(threadId: number): TPromise { - return TPromise.as(null); - } - - public continue(threadId: number): TPromise { - return TPromise.as(null); - } - - public pause(threadId: number): TPromise { - return TPromise.as(null); - } - - public setVariable(variable: debug.IExpression, value: string): TPromise { - return TPromise.as(null); - } - - public restartFrame(frameId: number): TPromise { - return TPromise.as(null); - } - - public completions(text: string, position: Position): TPromise { - return TPromise.as([]); - } } export class MockSession implements debug.ISession { diff --git a/src/vs/workbench/parts/debug/test/node/debugModel.test.ts b/src/vs/workbench/parts/debug/test/node/debugModel.test.ts index 889ee4a6a9c..451d60d213a 100644 --- a/src/vs/workbench/parts/debug/test/node/debugModel.test.ts +++ b/src/vs/workbench/parts/debug/test/node/debugModel.test.ts @@ -27,7 +27,7 @@ suite('Debug - Model', () => { test('breakpoints simple', () => { var modelUri = uri.file('/myfolder/myfile.js'); - model.addBreakpoints([{ uri: modelUri, lineNumber: 5, enabled: true }, { uri: modelUri, lineNumber: 10, enabled: false }]); + model.addBreakpoints(modelUri, [{ lineNumber: 5, enabled: true }, { lineNumber: 10, enabled: false }]); assert.equal(model.areBreakpointsActivated(), true); assert.equal(model.getBreakpoints().length, 2); @@ -37,8 +37,8 @@ suite('Debug - Model', () => { test('breakpoints toggling', () => { var modelUri = uri.file('/myfolder/myfile.js'); - model.addBreakpoints([{ uri: modelUri, lineNumber: 5, enabled: true }, { uri: modelUri, lineNumber: 10, enabled: false }]); - model.addBreakpoints([{ uri: modelUri, lineNumber: 12, enabled: true, condition: 'fake condition' }]); + model.addBreakpoints(modelUri, [{ lineNumber: 5, enabled: true }, { lineNumber: 10, enabled: false }]); + model.addBreakpoints(modelUri, [{ lineNumber: 12, enabled: true, condition: 'fake condition' }]); assert.equal(model.getBreakpoints().length, 3); model.removeBreakpoints([model.getBreakpoints().pop()]); assert.equal(model.getBreakpoints().length, 2); @@ -52,8 +52,8 @@ suite('Debug - Model', () => { test('breakpoints two files', () => { var modelUri1 = uri.file('/myfolder/my file first.js'); var modelUri2 = uri.file('/secondfolder/second/second file.js'); - model.addBreakpoints([{ uri: modelUri1, lineNumber: 5, enabled: true }, { uri: modelUri1, lineNumber: 10, enabled: false }]); - model.addBreakpoints([{ uri: modelUri2, lineNumber: 1, enabled: true }, { uri: modelUri2, lineNumber: 2, enabled: true }, { uri: modelUri2, lineNumber: 3, enabled: false }]); + model.addBreakpoints(modelUri1, [{ lineNumber: 5, enabled: true }, { lineNumber: 10, enabled: false }]); + model.addBreakpoints(modelUri2, [{ lineNumber: 1, enabled: true }, { lineNumber: 2, enabled: true }, { lineNumber: 3, enabled: false }]); assert.equal(model.getBreakpoints().length, 5); var bp = model.getBreakpoints()[0]; @@ -71,7 +71,7 @@ suite('Debug - Model', () => { model.setEnablement(bp, true); assert.equal(bp.enabled, true); - model.removeBreakpoints(model.getBreakpoints().filter(bp => bp.source.uri.toString() === modelUri1.toString())); + model.removeBreakpoints(model.getBreakpoints().filter(bp => bp.uri.toString() === modelUri1.toString())); assert.equal(model.getBreakpoints().length, 3); }); From 63806e74d9679dd2f59bff758a4862d911b7a995 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Mon, 31 Oct 2016 11:26:37 +0100 Subject: [PATCH 210/242] Fixes #14677: No discoverable way to turn off a task in vscode once its started. --- .../workbench/parts/tasks/electron-browser/task.contribution.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts index 1fcdc06386f..5667cbd2ea2 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts @@ -830,7 +830,7 @@ class TaskService extends EventEmitter implements ITaskService { if (executeResult.kind === TaskExecuteKind.Active) { let active = executeResult.active; if (active.same && active.watching) { - this.messageService.show(Severity.Info, nls.localize('TaskSystem.activeSame', 'The task is already active and in watch mode.')); + this.messageService.show(Severity.Info, nls.localize('TaskSystem.activeSame', 'The task is already active and in watch mode. To terminate the task use `F1 > terminate task`')); } else { throw new TaskError(Severity.Warning, nls.localize('TaskSystem.active', 'There is an active running task right now. Terminate it first before executing another task.'), TaskErrors.RunningTask); } From d2fa62d13d7312861846d36f2a78c8b3fea28c79 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Mon, 31 Oct 2016 11:27:40 +0100 Subject: [PATCH 211/242] cleanup extensions menu fixes #14384 --- gulpfile.js | 4 ++-- .../electron-browser/extensionsActions.ts | 8 ++++---- .../electron-browser/extensionsViewlet.ts | 15 +++------------ 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 5aa3bf0d4db..f82bdbf2bb5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -58,7 +58,7 @@ var ALL_EDITOR_TASKS = [ 'tslint', 'hygiene', ]; -var runningEditorTasks = process.argv.length > 2 && process.argv.slice(2).every(function(arg) { return (ALL_EDITOR_TASKS.indexOf(arg) !== -1); }); +var runningEditorTasks = process.argv.length > 2 && process.argv.slice(2).every(function (arg) { return (ALL_EDITOR_TASKS.indexOf(arg) !== -1); }); if (runningEditorTasks) { require(`./build/gulpfile.editor`); @@ -67,5 +67,5 @@ if (runningEditorTasks) { // Load all the gulpfiles only if running tasks other than the editor tasks const build = path.join(__dirname, 'build'); require('glob').sync('gulpfile.*.js', { cwd: build }) - .forEach(f => require(`./build/${ f }`)); + .forEach(f => require(`./build/${f}`)); } \ No newline at end of file diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index c64bc551912..43a38002a5f 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -1147,7 +1147,7 @@ export class BuiltinStatusLabelAction extends Action { export class DisableAllAction extends Action { static ID = 'workbench.extensions.action.disableAll'; - static LABEL = localize('disableAll', "Disable All"); + static LABEL = localize('disableAll', "Disable All Installed Extensions"); private disposables: IDisposable[] = []; @@ -1178,7 +1178,7 @@ export class DisableAllAction extends Action { export class DisableAllWorkpsaceAction extends Action { static ID = 'workbench.extensions.action.disableAllWorkspace'; - static LABEL = localize('disableAllWorkspace', "Disable All (Workspace)"); + static LABEL = localize('disableAllWorkspace', "Disable All Installed Extensions for this Workspace"); private disposables: IDisposable[] = []; @@ -1210,7 +1210,7 @@ export class DisableAllWorkpsaceAction extends Action { export class EnableAllAction extends Action { static ID = 'workbench.extensions.action.enableAll'; - static LABEL = localize('enableAll', "Enable All"); + static LABEL = localize('enableAll', "Enable All Installed Extensions"); private disposables: IDisposable[] = []; @@ -1241,7 +1241,7 @@ export class EnableAllAction extends Action { export class EnableAllWorkpsaceAction extends Action { static ID = 'workbench.extensions.action.enableAllWorkspace'; - static LABEL = localize('enableAllWorkspace', "Enable All (Workspace)"); + static LABEL = localize('enableAllWorkspace', "Enable All Installed Extensions for this Workspace"); private disposables: IDisposable[] = []; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts index 436c53111d4..84f6ac90cfd 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts @@ -32,8 +32,7 @@ import { Delegate, Renderer } from './extensionsList'; import { IExtensionsWorkbenchService, IExtension, IExtensionsViewlet, VIEWLET_ID, ExtensionState } from '../common/extensions'; import { ShowRecommendedExtensionsAction, ShowWorkspaceRecommendedExtensionsAction, ShowPopularExtensionsAction, ShowInstalledExtensionsAction, ShowDisabledExtensionsAction, - ShowOutdatedExtensionsAction, ClearExtensionsInputAction, ChangeSortAction, UpdateAllAction, InstallVSIXAction, ConfigureWorkspaceRecommendedExtensionsAction, - EnableAllAction, EnableAllWorkpsaceAction, DisableAllAction, DisableAllWorkpsaceAction + ShowOutdatedExtensionsAction, ClearExtensionsInputAction, ChangeSortAction, UpdateAllAction, InstallVSIXAction } from './extensionsActions'; import { IExtensionManagementService, IExtensionGalleryService, IExtensionTipsService, SortBy, SortOrder, IQueryOptions, LocalExtensionType } from 'vs/platform/extensionManagement/common/extensionManagement'; import { ExtensionsInput } from './extensionsInput'; @@ -163,8 +162,6 @@ export class ExtensionsViewlet extends Viewlet implements IExtensionsViewlet { getSecondaryActions(): IAction[] { if (!this.secondaryActions) { this.secondaryActions = [ - this.instantiationService.createInstance(UpdateAllAction, UpdateAllAction.ID, UpdateAllAction.LABEL), - new Separator(), this.instantiationService.createInstance(ShowInstalledExtensionsAction, ShowInstalledExtensionsAction.ID, ShowInstalledExtensionsAction.LABEL), this.instantiationService.createInstance(ShowOutdatedExtensionsAction, ShowOutdatedExtensionsAction.ID, ShowOutdatedExtensionsAction.LABEL), this.instantiationService.createInstance(ShowDisabledExtensionsAction, ShowDisabledExtensionsAction.ID, ShowDisabledExtensionsAction.LABEL), @@ -178,14 +175,8 @@ export class ExtensionsViewlet extends Viewlet implements IExtensionsViewlet { this.instantiationService.createInstance(ChangeSortAction, 'extensions.sort..asc', localize('ascending', "Sort Order: ↑"), this.onSearchChange, undefined, 'asc'), this.instantiationService.createInstance(ChangeSortAction, 'extensions.sort..desc', localize('descending', "Sort Order: ↓"), this.onSearchChange, undefined, 'desc'), new Separator(), - this.instantiationService.createInstance(DisableAllAction, DisableAllAction.ID, DisableAllAction.LABEL), - this.instantiationService.createInstance(DisableAllWorkpsaceAction, DisableAllWorkpsaceAction.ID, DisableAllWorkpsaceAction.LABEL), - new Separator(), - this.instantiationService.createInstance(EnableAllAction, EnableAllAction.ID, EnableAllAction.LABEL), - this.instantiationService.createInstance(EnableAllWorkpsaceAction, EnableAllWorkpsaceAction.ID, EnableAllWorkpsaceAction.LABEL), - new Separator(), - this.instantiationService.createInstance(InstallVSIXAction, InstallVSIXAction.ID, InstallVSIXAction.LABEL), - this.instantiationService.createInstance(ConfigureWorkspaceRecommendedExtensionsAction, ConfigureWorkspaceRecommendedExtensionsAction.ID, ConfigureWorkspaceRecommendedExtensionsAction.LABEL) + this.instantiationService.createInstance(UpdateAllAction, UpdateAllAction.ID, UpdateAllAction.LABEL), + this.instantiationService.createInstance(InstallVSIXAction, InstallVSIXAction.ID, InstallVSIXAction.LABEL) ]; } From e58b260026f269df2b47d083d30bc0620b2aef92 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Mon, 31 Oct 2016 11:36:29 +0100 Subject: [PATCH 212/242] Fixes #14598: Go To description mentions line, column but it should be line, character. --- .../parts/tasks/electron-browser/task.contribution.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts index 5667cbd2ea2..9144ac3d9ca 100644 --- a/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts +++ b/src/vs/workbench/parts/tasks/electron-browser/task.contribution.ts @@ -1067,7 +1067,7 @@ let schema: IJSONSchema = }, 'location': { 'type': 'integer', - 'description': nls.localize('JsonSchema.pattern.location', 'The match group index of the problem\'s location. Valid location patterns are: (line), (line,column) and (startLine,startColumn,endLine,endColumn). If omitted line and column is assumed.') + 'description': nls.localize('JsonSchema.pattern.location', 'The match group index of the problem\'s location. Valid location patterns are: (line), (line,column) and (startLine,startColumn,endLine,endColumn). If omitted (line,column) is assumed.') }, 'line': { 'type': 'integer', @@ -1075,7 +1075,7 @@ let schema: IJSONSchema = }, 'column': { 'type': 'integer', - 'description': nls.localize('JsonSchema.pattern.column', 'The match group index of the problem\'s column. Defaults to 3') + 'description': nls.localize('JsonSchema.pattern.column', 'The match group index of the problem\'s line character. Defaults to 3') }, 'endLine': { 'type': 'integer', @@ -1083,7 +1083,7 @@ let schema: IJSONSchema = }, 'endColumn': { 'type': 'integer', - 'description': nls.localize('JsonSchema.pattern.endColumn', 'The match group index of the problem\'s end column. Defaults to undefined') + 'description': nls.localize('JsonSchema.pattern.endColumn', 'The match group index of the problem\'s end line character. Defaults to undefined') }, 'severity': { 'type': 'integer', From 69f7f29adb1817b8bc61bf5a791c5267860a3e84 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 11:13:48 +0100 Subject: [PATCH 213/242] perf - ignore snippet provider when snippets are turned off --- src/vs/editor/contrib/suggest/common/suggest.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/contrib/suggest/common/suggest.ts b/src/vs/editor/contrib/suggest/common/suggest.ts index 654ce11e3bc..6c52bc9010d 100644 --- a/src/vs/editor/contrib/suggest/common/suggest.ts +++ b/src/vs/editor/contrib/suggest/common/suggest.ts @@ -59,7 +59,11 @@ export function provideSuggestionItems(model: IReadOnlyModel, position: Position // get provider groups, always add snippet suggestion provider const supports = SuggestRegistry.orderedGroups(model); - supports.unshift([snippetSuggestSupport]); + + // add snippets provider unless turned off + if (snippetConfig !== 'none') { + supports.unshift([snippetSuggestSupport]); + } // add suggestions from contributed providers - providers are ordered in groups of // equal score and once a group produces a result the process stops From a727b5c2fe91702465414cf34d05207963c34ca4 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 11:52:16 +0100 Subject: [PATCH 214/242] incomplete state should be computed on all items, not only on filtered items, #14679 --- .../editor/contrib/suggest/common/completionModel.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index 5ec672e8ba8..5b388fecc62 100644 --- a/src/vs/editor/contrib/suggest/common/completionModel.ts +++ b/src/vs/editor/contrib/suggest/common/completionModel.ts @@ -123,6 +123,12 @@ export class CompletionModel { const {suggestion, support, container} = item; const filter = support && support.filter || fuzzyContiguousFilter; + // collect those supports that signaled having + // an incomplete result + if (container.incomplete && this._incomplete.indexOf(support) < 0) { + this._incomplete.push(support); + } + // 'word' is that remainder of the current line that we // filter and score against. In theory each suggestion uses a // differnet word, but in practice not - that's why we cache @@ -161,12 +167,6 @@ export class CompletionModel { this._topScoreIdx = this._filteredItems.length - 1; } - // collect those supports that signaled having - // an incomplete result - if (container.incomplete && this._incomplete.indexOf(support) < 0) { - this._incomplete.push(support); - } - // update stats this._stats.suggestionCount++; switch (suggestion.type) { From 57fc08a2c9070d67ab42acd4c083e11d9702aed4 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 12:05:53 +0100 Subject: [PATCH 215/242] check for incomplete results when *first* completion call happens, #14679 --- .../editor/contrib/suggest/common/suggest.ts | 19 ++++++++++++++----- .../contrib/suggest/common/suggestModel.ts | 13 +++++++++---- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/suggest.ts b/src/vs/editor/contrib/suggest/common/suggest.ts index 6c52bc9010d..985203e2532 100644 --- a/src/vs/editor/contrib/suggest/common/suggest.ts +++ b/src/vs/editor/contrib/suggest/common/suggest.ts @@ -52,7 +52,7 @@ export const snippetSuggestSupport: ISuggestSupport = { export function provideSuggestionItems(model: IReadOnlyModel, position: Position, snippetConfig: SnippetConfig = 'bottom', onlyFrom?: ISuggestSupport[]): TPromise { - const result: ISuggestionItem[] = []; + const allSuggestions: ISuggestionItem[] = []; const acceptSuggestion = createSuggesionFilter(snippetConfig); position = position.clone(); @@ -83,7 +83,7 @@ export function provideSuggestionItems(model: IReadOnlyModel, position: Position return asWinJsPromise(token => support.provideCompletionItems(model, position, token)).then(container => { - const len = result.length; + const len = allSuggestions.length; if (container && !isFalsyOrEmpty(container.suggestions)) { for (let suggestion of container.suggestions) { @@ -91,7 +91,7 @@ export function provideSuggestionItems(model: IReadOnlyModel, position: Position fixOverwriteBeforeAfter(suggestion, container); - result.push({ + allSuggestions.push({ position, container, suggestion, @@ -102,7 +102,7 @@ export function provideSuggestionItems(model: IReadOnlyModel, position: Position } } - if (len !== result.length && support !== snippetSuggestSupport) { + if (len !== allSuggestions.length && support !== snippetSuggestSupport) { hasResult = true; } @@ -111,7 +111,16 @@ export function provideSuggestionItems(model: IReadOnlyModel, position: Position }; }); - return sequence(factory).then(() => result.sort(getSuggestionComparator(snippetConfig))); + const result = sequence(factory).then(() => allSuggestions.sort(getSuggestionComparator(snippetConfig))); + + // result.then(items => { + // console.log(model.getWordUntilPosition(position), items.map(item => `${item.suggestion.label}, incomplete?${item.container.incomplete}, overwriteBefore=${item.suggestion.overwriteBefore}`)); + // return items; + // }, err => { + // console.warn(model.getWordUntilPosition(position), err); + // }); + + return result; } function fixOverwriteBeforeAfter(suggestion: ISuggestion, container: ISuggestResult): void { diff --git a/src/vs/editor/contrib/suggest/common/suggestModel.ts b/src/vs/editor/contrib/suggest/common/suggestModel.ts index 9df25db3922..6161610dedf 100644 --- a/src/vs/editor/contrib/suggest/common/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/common/suggestModel.ts @@ -322,10 +322,6 @@ export class SuggestModel implements IDisposable { this.trigger(true); }); } - - } else if (this.completionModel && this.completionModel.incomplete.length > 0) { - this.triggerFromIncomplete(this.state === State.Auto); - } else { this.onNewContext(ctx); } @@ -383,6 +379,10 @@ export class SuggestModel implements IDisposable { this.triggerFromIncompletePromise.cancel(); } + // Update UI + this._onDidCancel.fire({ retrigger: true }); + this._onDidTrigger.fire({ auto }); + this.triggerFromIncompletePromise = provideSuggestionItems(this.editor.getModel(), this.editor.getPosition(), this.editor.getConfiguration().contribInfo.snippetSuggestions, this.completionModel.incomplete @@ -415,6 +415,11 @@ export class SuggestModel implements IDisposable { } else if (this.completionModel) { + if (this.completionModel.incomplete.length > 0 && ctx.column > this.context.column) { + this.triggerFromIncomplete(this.state === State.Auto); + return; + } + const auto = this.state === State.Auto; const oldLineContext = this.completionModel.lineContext; let isFrozen = false; From d0d3c1d0476599aa6dafcd9ff8c40fb564f0519f Mon Sep 17 00:00:00 2001 From: isidor Date: Mon, 31 Oct 2016 12:25:16 +0100 Subject: [PATCH 216/242] debug: breakpoints remove all reference to Source, use only uri --- src/vs/workbench/parts/debug/common/debug.ts | 2 +- .../parts/debug/common/debugModel.ts | 20 +---- .../parts/debug/common/debugSource.ts | 6 +- .../debug/electron-browser/debugService.ts | 84 +++++++++++-------- .../debug/electron-browser/debugViewer.ts | 8 +- 5 files changed, 62 insertions(+), 58 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index e775045e0ca..f20b90112bd 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -471,7 +471,7 @@ export interface IDebugService { /** * Opens a new or reveals an already visible editor showing the source. */ - openOrRevealSource(source: Source, lineNumber: number, preserveFocus: boolean, sideBySide: boolean): TPromise; + openOrRevealSource(sourceOrUri: Source | uri, lineNumber: number, preserveFocus: boolean, sideBySide: boolean): TPromise; } // Editor interfaces diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 75a5deaf302..ebca1eb610c 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -6,7 +6,6 @@ import * as nls from 'vs/nls'; import uri from 'vs/base/common/uri'; import { TPromise } from 'vs/base/common/winjs.base'; -import paths = require('vs/base/common/paths'); import * as lifecycle from 'vs/base/common/lifecycle'; import Event, { Emitter } from 'vs/base/common/event'; import { generateUuid } from 'vs/base/common/uuid'; @@ -574,7 +573,7 @@ export class Breakpoint implements debug.IBreakpoint { private id: string; constructor( - public source: Source, + public uri: uri, public desiredLineNumber: number, public enabled: boolean, public condition: string, @@ -591,10 +590,6 @@ export class Breakpoint implements debug.IBreakpoint { public getId(): string { return this.id; } - - public get uri(): uri { - return this.source.uri; - } } export class FunctionBreakpoint implements debug.IFunctionBreakpoint { @@ -732,18 +727,8 @@ export class Model implements debug.IModel { } public addBreakpoints(uri: uri, rawData: debug.IRawBreakpoint[]): void { - // Traverse the stack frames and check try to find the raw source matching the added breakpoint uri. - // Raw source might contain data needed for the debug adapter to match the breakpoint. - let source: Source = null; - this.processes.forEach(p => p.getAllThreads().forEach(t => t.getCachedCallStack().forEach(sf => { - if (sf.source.uri.toString() === uri.toString()) { - source = sf.source; - } - }))); - source = source || new Source({ path: paths.normalize(uri.fsPath, true), name: paths.basename(uri.fsPath) }); - this.breakpoints = this.breakpoints.concat(rawData.map(rawBp => - new Breakpoint(source, rawBp.lineNumber, rawBp.enabled, rawBp.condition, rawBp.hitCondition))); + new Breakpoint(uri, rawBp.lineNumber, rawBp.enabled, rawBp.condition, rawBp.hitCondition))); this.breakpointsActivated = true; this._onDidChangeBreakpoints.fire(); } @@ -761,7 +746,6 @@ export class Model implements debug.IModel { bp.verified = bpData.verified; bp.idFromAdapter = bpData.id; bp.message = bpData.message; - bp.source = bpData.source ? new Source(bpData.source) : bp.source; } }); this._onDidChangeBreakpoints.fire(); diff --git a/src/vs/workbench/parts/debug/common/debugSource.ts b/src/vs/workbench/parts/debug/common/debugSource.ts index 068a8c799bd..22c0ee636ae 100644 --- a/src/vs/workbench/parts/debug/common/debugSource.ts +++ b/src/vs/workbench/parts/debug/common/debugSource.ts @@ -32,6 +32,10 @@ export class Source { } public get inMemory() { - return this.uri.toString().indexOf(Source.INTERNAL_URI_PREFIX) === 0; + return Source.isInMemory(this.uri); + } + + public static isInMemory(uri: uri): boolean { + return uri.toString().indexOf(Source.INTERNAL_URI_PREFIX) === 0; } } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index effcdfe739d..6969de6c958 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -7,6 +7,7 @@ import * as nls from 'vs/nls'; import * as lifecycle from 'vs/base/common/lifecycle'; import { guessMimeTypes } from 'vs/base/common/mime'; import Event, { Emitter } from 'vs/base/common/event'; +import * as paths from 'vs/base/common/paths'; import * as strings from 'vs/base/common/strings'; import { generateUuid } from 'vs/base/common/uuid'; import uri from 'vs/base/common/uri'; @@ -248,8 +249,8 @@ export class DebugService implements debug.IDebugService { }); } }; - - this.sendAllBreakpoints(session).done(sendConfigurationDone, sendConfigurationDone); + const process = this.model.getProcesses().filter(p => p.getId() === session.getId()).pop(); + this.sendAllBreakpoints(process).done(sendConfigurationDone, sendConfigurationDone); })); this.toDisposeOnSessionEnd[session.getId()].push(session.onDidStop(event => { @@ -368,8 +369,7 @@ export class DebugService implements debug.IDebugService { let result: Breakpoint[]; try { result = JSON.parse(this.storageService.get(DEBUG_BREAKPOINTS_KEY, StorageScope.WORKSPACE, '[]')).map((breakpoint: any) => { - return new Breakpoint(new Source(breakpoint.source.raw ? breakpoint.source.raw : { path: uri.parse(breakpoint.source.uri).fsPath, name: breakpoint.source.name }), - breakpoint.desiredLineNumber || breakpoint.lineNumber, breakpoint.enabled, breakpoint.condition, breakpoint.hitCondition); + return new Breakpoint(uri.parse(breakpoint.uri.external || breakpoint.source.uri.external), breakpoint.desiredLineNumber || breakpoint.lineNumber, breakpoint.enabled, breakpoint.condition, breakpoint.hitCondition); }); } catch (e) { } @@ -799,10 +799,9 @@ export class DebugService implements debug.IDebugService { if (this.model.getProcesses().length === 0) { this.partService.removeClass('debugging'); // set breakpoints back to unverified since the session ended. - // source reference changes across sessions, so we do not use it to persist the source. - const data: { [id: string]: { line: number, verified: boolean, source: DebugProtocol.Source } } = {}; + const data: { [id: string]: { line: number, verified: boolean } } = {}; this.model.getBreakpoints().forEach(bp => { - data[bp.getId()] = { line: bp.lineNumber, verified: false, source: null }; + data[bp.getId()] = { line: bp.lineNumber, verified: false }; }); this.model.updateBreakpoints(data); @@ -822,12 +821,14 @@ export class DebugService implements debug.IDebugService { return this.viewModel; } - public openOrRevealSource(source: Source, lineNumber: number, preserveFocus: boolean, sideBySide: boolean): TPromise { + public openOrRevealSource(sourceOrUri: Source | uri, lineNumber: number, preserveFocus: boolean, sideBySide: boolean): TPromise { const visibleEditors = this.editorService.getVisibleEditors(); + const uri = sourceOrUri instanceof Source ? sourceOrUri.uri : sourceOrUri; + const source = sourceOrUri instanceof Source ? sourceOrUri : null; for (let i = 0; i < visibleEditors.length; i++) { const fileInput = asFileEditorInput(visibleEditors[i].input); - if ((fileInput && fileInput.getResource().toString() === source.uri.toString()) || - (visibleEditors[i].input instanceof DebugStringEditorInput && (visibleEditors[i].input).getResource().toString() === source.uri.toString())) { + if ((fileInput && fileInput.getResource().toString() === uri.toString()) || + (visibleEditors[i].input instanceof DebugStringEditorInput && (visibleEditors[i].input).getResource().toString() === uri.toString())) { const control = visibleEditors[i].getControl(); if (control) { @@ -844,9 +845,9 @@ export class DebugService implements debug.IDebugService { } const process = this.viewModel.focusedProcess; - if (source.inMemory) { + if (process && source && source.inMemory) { // internal module - if (source.reference !== 0 && process && source.available) { + if (source.reference !== 0 && source.available) { return process.session.source({ sourceReference: source.reference }).then(response => { const mime = response && response.body && response.body.mimeType ? response.body.mimeType : guessMimeTypes(source.name)[0]; const inputValue = response && response.body ? response.body.content : ''; @@ -861,10 +862,13 @@ export class DebugService implements debug.IDebugService { return this.sourceIsUnavailable(process, source, sideBySide); } + if (Source.isInMemory(uri)) { + return TPromise.as(null); + } - return this.fileService.resolveFile(source.uri).then(() => + return this.fileService.resolveFile(uri).then(() => this.editorService.openEditor({ - resource: source.uri, + resource: uri, options: { selection: { startLineNumber: lineNumber, @@ -909,15 +913,17 @@ export class DebugService implements debug.IDebugService { return result; } - private sendAllBreakpoints(session?: RawDebugSession): TPromise { - return TPromise.join(distinct(this.model.getBreakpoints(), bp => bp.uri.toString()).map(bp => this.sendBreakpoints(bp.uri, false, session))) - .then(() => this.sendFunctionBreakpoints(session)) + private sendAllBreakpoints(process?: debug.IProcess): TPromise { + return TPromise.join(distinct(this.model.getBreakpoints(), bp => bp.uri.toString()).map(bp => this.sendBreakpoints(bp.uri, false, process))) + .then(() => this.sendFunctionBreakpoints(process)) // send exception breakpoints at the end since some debug adapters rely on the order - .then(() => this.sendExceptionBreakpoints(session)); + .then(() => this.sendExceptionBreakpoints(process)); } - private sendBreakpoints(modelUri: uri, sourceModified = false, targetSession?: RawDebugSession): TPromise { - const sendBreakpointsToSession = (session: RawDebugSession): TPromise => { + private sendBreakpoints(modelUri: uri, sourceModified = false, targetProcess?: debug.IProcess): TPromise { + + const sendBreakpointsToProcess = (process: debug.IProcess): TPromise => { + const session = process.session; if (!session.readyForBreakpoints) { return TPromise.as(null); } @@ -931,7 +937,17 @@ export class DebugService implements debug.IDebugService { this.model.getBreakpoints().filter(bp => this.model.areBreakpointsActivated() && bp.enabled && bp.uri.toString() === modelUri.toString()), bp => `${bp.desiredLineNumber}` ); - const rawSource = breakpointsToSend.length > 0 ? (breakpointsToSend[0]).source.raw : undefined; + + let rawSource: DebugProtocol.Source; + for (let t of process.getAllThreads()) { + for (let sf of t.getCachedCallStack()) { + if (sf.source.uri.toString() === modelUri.toString()) { + rawSource = sf.source.raw; + break; + } + } + } + rawSource = rawSource || { path: paths.normalize(modelUri.fsPath, true), name: paths.basename(modelUri.fsPath) }; return session.setBreakpoints({ source: rawSource, @@ -952,11 +968,12 @@ export class DebugService implements debug.IDebugService { }); }; - return this.sendToOneOrAllSessions(targetSession, sendBreakpointsToSession); + return this.sendToOneOrAllProcesses(targetProcess, sendBreakpointsToProcess); } - private sendFunctionBreakpoints(targetSession?: RawDebugSession): TPromise { - const sendFunctionBreakpointsToSession = (session: RawDebugSession): TPromise => { + private sendFunctionBreakpoints(targetProcess?: debug.IProcess): TPromise { + const sendFunctionBreakpointsToProcess = (process: debug.IProcess): TPromise => { + const session = process.session; if (!session.readyForBreakpoints || !session.configuration.capabilities.supportsFunctionBreakpoints) { return TPromise.as(null); } @@ -976,12 +993,13 @@ export class DebugService implements debug.IDebugService { }); }; - return this.sendToOneOrAllSessions(targetSession, sendFunctionBreakpointsToSession); + return this.sendToOneOrAllProcesses(targetProcess, sendFunctionBreakpointsToProcess); } - private sendExceptionBreakpoints(targetSession?: RawDebugSession): TPromise { - const sendExceptionBreakpointsToSession = (session: RawDebugSession): TPromise => { - if (!session || !session.readyForBreakpoints || this.model.getExceptionBreakpoints().length === 0) { + private sendExceptionBreakpoints(targetProcess?: debug.IProcess): TPromise { + const sendExceptionBreakpointsToProcess = (process: debug.IProcess): TPromise => { + const session = process.session; + if (!session.readyForBreakpoints || this.model.getExceptionBreakpoints().length === 0) { return TPromise.as(null); } @@ -989,15 +1007,15 @@ export class DebugService implements debug.IDebugService { return session.setExceptionBreakpoints({ filters: enabledExceptionBps.map(exb => exb.filter) }); }; - return this.sendToOneOrAllSessions(targetSession, sendExceptionBreakpointsToSession); + return this.sendToOneOrAllProcesses(targetProcess, sendExceptionBreakpointsToProcess); } - private sendToOneOrAllSessions(session: RawDebugSession, send: (session: RawDebugSession) => TPromise): TPromise { - if (session) { - return send(session); + private sendToOneOrAllProcesses(process: debug.IProcess, send: (process: debug.IProcess) => TPromise): TPromise { + if (process) { + return send(process); } - return TPromise.join(this.model.getProcesses().map(p => send(p.session))).then(() => void 0); + return TPromise.join(this.model.getProcesses().map(p => send(p))).then(() => void 0); } private onFileChanges(fileChangesEvent: FileChangesEvent): void { diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts index a03a117097b..14560bd486c 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViewer.ts @@ -290,7 +290,7 @@ export class CallStackController extends BaseDebugController { if (stackFrame) { const sideBySide = (event && (event.ctrlKey || event.metaKey)); - this.debugService.openOrRevealSource(stackFrame.source, stackFrame.lineNumber, preserveFocus, sideBySide).done(null, errors.onUnexpectedError); + this.debugService.openOrRevealSource(stackFrame.source.uri, stackFrame.lineNumber, preserveFocus, sideBySide).done(null, errors.onUnexpectedError); } } } @@ -1306,9 +1306,7 @@ export class BreakpointsController extends BaseDebugController { } private openBreakpointSource(breakpoint: Breakpoint, event: IKeyboardEvent | IMouseEvent, preserveFocus: boolean): void { - if (!breakpoint.source.inMemory) { - const sideBySide = (event && (event.ctrlKey || event.metaKey)); - this.debugService.openOrRevealSource(breakpoint.source, breakpoint.lineNumber, preserveFocus, sideBySide).done(null, errors.onUnexpectedError); - } + const sideBySide = (event && (event.ctrlKey || event.metaKey)); + this.debugService.openOrRevealSource(breakpoint.uri, breakpoint.lineNumber, preserveFocus, sideBySide).done(null, errors.onUnexpectedError); } } From b22b36fb18c8cbe1f9c7e5971f5efaf89cd43814 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 13:00:39 +0100 Subject: [PATCH 217/242] better fix for #14679 --- .../contrib/suggest/common/completionModel.ts | 52 +++++++------------ .../editor/contrib/suggest/common/suggest.ts | 2 +- .../contrib/suggest/common/suggestModel.ts | 46 ++++------------ .../test/common/completionModel.test.ts | 20 ++++--- 4 files changed, 40 insertions(+), 80 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index 5b388fecc62..91204dc5d7a 100644 --- a/src/vs/editor/contrib/suggest/common/completionModel.ts +++ b/src/vs/editor/contrib/suggest/common/completionModel.ts @@ -35,7 +35,7 @@ export class CompletionModel { private _filteredItems: ICompletionItem[]; private _topScoreIdx: number; - private _incomplete: ISuggestSupport[]; + private _isIncomplete: boolean; private _stats: ICompletionStats; constructor(items: ISuggestionItem[], column: number, lineContext: LineContext) { @@ -44,31 +44,6 @@ export class CompletionModel { this._lineContext = lineContext; } - replaceIncomplete(newItems: ISuggestionItem[], compareFn: (a: ISuggestionItem, b: ISuggestionItem) => number): void { - let newItemsIdx = 0; - for (let i = 0; i < this._items.length; i++) { - if (this._incomplete.indexOf(this._items[i].support) >= 0) { - // we found an item which support signaled 'incomplete' - // which means we remove the item. For perf reasons we - // frist replace and only then splice. - if (newItemsIdx < newItems.length) { - this._items[i] = newItems[newItemsIdx++]; - } else { - this._items.splice(i, 1); - i--; - } - } - } - // add remaining new items - if (newItemsIdx < newItems.length) { - this._items.push(...newItems.slice(newItemsIdx)); - } - - // sort and reset cached state - this._items.sort(compareFn); - this._filteredItems = undefined; - } - get lineContext(): LineContext { return this._lineContext; } @@ -92,9 +67,24 @@ export class CompletionModel { return this._topScoreIdx; } - get incomplete(): ISuggestSupport[] { + get incomplete(): boolean { this._ensureCachedState(); - return this._incomplete; + return this._isIncomplete; + } + + resolveIncompleteInfo(): { incomplete: ISuggestSupport[], complete: ISuggestionItem[] } { + const incomplete: ISuggestSupport[] = []; + const complete: ISuggestionItem[] = []; + + for (const item of this._items) { + if (item.container.incomplete && incomplete.indexOf(item.support) < 0) { + incomplete.push(item.support); + } else { + complete.push(item); + } + } + + return { incomplete, complete }; } get stats(): ICompletionStats { @@ -110,8 +100,8 @@ export class CompletionModel { private _createCachedState(): void { this._filteredItems = []; - this._incomplete = []; this._topScoreIdx = -1; + this._isIncomplete = false; this._stats = { suggestionCount: 0, snippetCount: 0, textCount: 0 }; const {leadingLineContent, characterCountDelta} = this._lineContext; @@ -125,9 +115,7 @@ export class CompletionModel { // collect those supports that signaled having // an incomplete result - if (container.incomplete && this._incomplete.indexOf(support) < 0) { - this._incomplete.push(support); - } + this._isIncomplete = this._isIncomplete || container.incomplete; // 'word' is that remainder of the current line that we // filter and score against. In theory each suggestion uses a diff --git a/src/vs/editor/contrib/suggest/common/suggest.ts b/src/vs/editor/contrib/suggest/common/suggest.ts index 985203e2532..e428d68bafa 100644 --- a/src/vs/editor/contrib/suggest/common/suggest.ts +++ b/src/vs/editor/contrib/suggest/common/suggest.ts @@ -114,7 +114,7 @@ export function provideSuggestionItems(model: IReadOnlyModel, position: Position const result = sequence(factory).then(() => allSuggestions.sort(getSuggestionComparator(snippetConfig))); // result.then(items => { - // console.log(model.getWordUntilPosition(position), items.map(item => `${item.suggestion.label}, incomplete?${item.container.incomplete}, overwriteBefore=${item.suggestion.overwriteBefore}`)); + // console.log(model.getWordUntilPosition(position), items.map(item => `${item.suggestion.label}, type=${item.suggestion.type}, incomplete?${item.container.incomplete}, overwriteBefore=${item.suggestion.overwriteBefore}`)); // return items; // }, err => { // console.warn(model.getWordUntilPosition(position), err); diff --git a/src/vs/editor/contrib/suggest/common/suggestModel.ts b/src/vs/editor/contrib/suggest/common/suggestModel.ts index 6161610dedf..f07470d6bf1 100644 --- a/src/vs/editor/contrib/suggest/common/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/common/suggestModel.ts @@ -13,7 +13,7 @@ import { startsWith } from 'vs/base/common/strings'; import { TPromise } from 'vs/base/common/winjs.base'; import { ICommonCodeEditor, ICursorSelectionChangedEvent, CursorChangeReason, IModel, IPosition } from 'vs/editor/common/editorCommon'; import { ISuggestSupport, SuggestRegistry } from 'vs/editor/common/modes'; -import { provideSuggestionItems, getSuggestionComparator } from './suggest'; +import { provideSuggestionItems, getSuggestionComparator, ISuggestionItem } from './suggest'; import { CompletionModel } from './completionModel'; export interface ICancelEvent { @@ -327,7 +327,7 @@ export class SuggestModel implements IDisposable { } } - public trigger(auto: boolean, retrigger: boolean = false, onlyFrom?: ISuggestSupport[]): void { + public trigger(auto: boolean, retrigger: boolean = false, onlyFrom?: ISuggestSupport[], existingItems?: ISuggestionItem[]): void { const model = this.editor.getModel(); @@ -363,6 +363,11 @@ export class SuggestModel implements IDisposable { return; } + if (!isFalsyOrEmpty(existingItems)) { + const cmpFn = getSuggestionComparator(this.editor.getConfiguration().contribInfo.snippetSuggestions); + items = items.concat(existingItems).sort(cmpFn); + } + const ctx = new Context(model, this.editor.getPosition(), auto); this.completionModel = new CompletionModel(items, this.context.column, { leadingLineContent: ctx.lineContentBefore, @@ -373,38 +378,6 @@ export class SuggestModel implements IDisposable { }).then(null, onUnexpectedError); } - private triggerFromIncomplete(auto: boolean): void { - - if (this.triggerFromIncompletePromise) { - this.triggerFromIncompletePromise.cancel(); - } - - // Update UI - this._onDidCancel.fire({ retrigger: true }); - this._onDidTrigger.fire({ auto }); - - this.triggerFromIncompletePromise = provideSuggestionItems(this.editor.getModel(), this.editor.getPosition(), - this.editor.getConfiguration().contribInfo.snippetSuggestions, - this.completionModel.incomplete - ).then(items => { - - this.triggerFromIncompletePromise = null; - if (this.state === State.Idle) { - return; - } - const model = this.editor.getModel(); - if (!model) { - return; - } - - this.completionModel.replaceIncomplete( - items, - getSuggestionComparator(this.editor.getConfiguration().contribInfo.snippetSuggestions) - ); - this.onNewContext(new Context(model, this.editor.getPosition(), auto)); - }); - } - private onNewContext(ctx: Context): void { if (this.context && this.context.isDifferentContext(ctx)) { if (this.context.shouldRetrigger(ctx)) { @@ -415,8 +388,9 @@ export class SuggestModel implements IDisposable { } else if (this.completionModel) { - if (this.completionModel.incomplete.length > 0 && ctx.column > this.context.column) { - this.triggerFromIncomplete(this.state === State.Auto); + if (this.completionModel.incomplete && ctx.column > this.context.column) { + const {complete, incomplete} = this.completionModel.resolveIncompleteInfo(); + this.trigger(true, true, incomplete, complete); return; } diff --git a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts index aaea80dfccd..58e189f5408 100644 --- a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts @@ -77,7 +77,7 @@ suite('CompletionModel', function () { test('complete/incomplete', function () { - assert.equal(model.incomplete.length, 0); + assert.equal(model.incomplete, false); let incompleteModel = new CompletionModel([ createSuggestItem('foo', 3, true), @@ -86,7 +86,7 @@ suite('CompletionModel', function () { leadingLineContent: 'foo', characterCountDelta: 0 }); - assert.equal(incompleteModel.incomplete.length, 1); + assert.equal(incompleteModel.incomplete, true); }); test('replaceIncomplete', function () { @@ -95,17 +95,15 @@ suite('CompletionModel', function () { const incompleteItem = createSuggestItem('foofoo', 1, true, { lineNumber: 1, column: 2 }); const model = new CompletionModel([completeItem, incompleteItem], 2, { leadingLineContent: 'foo', characterCountDelta: 0 }); - assert.equal(model.incomplete.length, 1); - assert.equal(model.incomplete[0], incompleteItem.support); + assert.equal(model.incomplete, true); assert.equal(model.items.length, 2); - const newCompleteItem = [ - createSuggestItem('foofoo', 1, false, { lineNumber: 1, column: 3 }), - createSuggestItem('foofoo2', 1, false, { lineNumber: 1, column: 3 }) - ]; - model.replaceIncomplete(newCompleteItem, (a, b) => 0); - assert.equal(model.incomplete.length, 0); - assert.equal(model.items.length, 3); + const {complete, incomplete} = model.resolveIncompleteInfo(); + + assert.equal(incomplete.length, 1); + assert.ok(incomplete[0] === incompleteItem.support); + assert.equal(complete.length, 1); + assert.ok(complete[0] === completeItem); }); function assertTopScore(lineContent: string, expected: number, ...suggestionLabels: string[]): void { From 963607b3dd57fb4c8ea9ba12a7af2e7b731c20ca Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 13:20:06 +0100 Subject: [PATCH 218/242] ConfigurationRegistry handles contributed configs very poorly (fixes #14272) --- .../common/configurationRegistry.ts | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/vs/platform/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts index 64086447f3d..526b8018651 100644 --- a/src/vs/platform/configuration/common/configurationRegistry.ts +++ b/src/vs/platform/configuration/common/configurationRegistry.ts @@ -23,6 +23,11 @@ export interface IConfigurationRegistry { */ registerConfiguration(configuration: IConfigurationNode): void; + /** + * Register multiple configurations to the registry. + */ + registerConfigurations(configurations: IConfigurationNode[]): void; + /** * Event that fires whenver a configuratio has been * registered. @@ -68,9 +73,15 @@ class ConfigurationRegistry implements IConfigurationRegistry { } public registerConfiguration(configuration: IConfigurationNode): void { - this.configurationContributors.push(configuration); + this.registerConfigurations([configuration]); + } + + public registerConfigurations(configurations: IConfigurationNode[]): void { + configurations.forEach(configuration => { + this.configurationContributors.push(configuration); + this.registerJSONConfiguration(configuration); + }); - this.registerJSONConfiguration(configuration); this._onDidRegisterConfiguration.fire(this); } @@ -107,7 +118,9 @@ const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint { +configurationExtPoint.setHandler(extensions => { + const configurations: IConfigurationNode[] = []; + for (let i = 0; i < extensions.length; i++) { const configuration = extensions[i].value; const collector = extensions[i].collector; @@ -126,8 +139,11 @@ configurationExtPoint.setHandler((extensions) => { collector.error(nls.localize('invalid.properties', "'configuration.properties' must be an object")); return; } + const clonedConfiguration = objects.clone(configuration); clonedConfiguration.id = extensions[i].description.id; - configurationRegistry.registerConfiguration(clonedConfiguration); + configurations.push(clonedConfiguration); } + + configurationRegistry.registerConfigurations(configurations); }); \ No newline at end of file From cb76741ad40c045795cc19e1ea53a23bc86f1f26 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 14:17:14 +0100 Subject: [PATCH 219/242] editor part - css fix for dragging cursor --- src/vs/workbench/browser/parts/editor/media/titlecontrol.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vs/workbench/browser/parts/editor/media/titlecontrol.css b/src/vs/workbench/browser/parts/editor/media/titlecontrol.css index 9b033449630..dab29c3e25e 100644 --- a/src/vs/workbench/browser/parts/editor/media/titlecontrol.css +++ b/src/vs/workbench/browser/parts/editor/media/titlecontrol.css @@ -71,6 +71,7 @@ /* Drag Cursor */ .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo > .container > .title, +.monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo > .container > .title.tabs .scrollbar .slider, .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo > .container > .title .monaco-icon-label::before, .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo > .container > .title .title-label a, .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo > .container > .title .title-label span { @@ -80,6 +81,7 @@ #monaco-workbench-editor-move-overlay, .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo.drag, .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo.drag > .container > .title, +.monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo.drag > .container > .title.tabs .scrollbar .slider, .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo.drag > .container > .title .monaco-icon-label::before, .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo.drag > .container > .title .title-label a, .monaco-workbench > .part.editor > .content.multiple-editors > .one-editor-silo.drag > .container > .title .title-label span { From 23544c5e66c1765175ae0adfaac0ae72b10a0f2c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 13:05:09 +0100 Subject: [PATCH 220/242] remove unused property --- src/vs/editor/contrib/suggest/common/suggestModel.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/suggestModel.ts b/src/vs/editor/contrib/suggest/common/suggestModel.ts index f07470d6bf1..4c0f9b5fc58 100644 --- a/src/vs/editor/contrib/suggest/common/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/common/suggestModel.ts @@ -146,7 +146,6 @@ export class SuggestModel implements IDisposable { private quickSuggestDelay: number; private triggerCharacterListeners: IDisposable[] = []; - private triggerFromIncompletePromise: TPromise; private triggerAutoSuggestPromise: TPromise; private state: State; @@ -250,11 +249,6 @@ export class SuggestModel implements IDisposable { cancel(retrigger: boolean = false): void { - if (this.triggerFromIncompletePromise) { - this.triggerFromIncompletePromise.cancel(); - this.triggerFromIncompletePromise = null; - } - if (this.triggerAutoSuggestPromise) { this.triggerAutoSuggestPromise.cancel(); this.triggerAutoSuggestPromise = null; From 6090d4b8ff89eefc91bdbec78dbd432a18a3562e Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 14:25:09 +0100 Subject: [PATCH 221/242] fix regression with incomplete items/providers, #13835 --- src/vs/editor/contrib/suggest/common/completionModel.ts | 6 +++--- src/vs/editor/contrib/suggest/common/suggestModel.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index 91204dc5d7a..0442b8ad8e9 100644 --- a/src/vs/editor/contrib/suggest/common/completionModel.ts +++ b/src/vs/editor/contrib/suggest/common/completionModel.ts @@ -77,10 +77,10 @@ export class CompletionModel { const complete: ISuggestionItem[] = []; for (const item of this._items) { - if (item.container.incomplete && incomplete.indexOf(item.support) < 0) { - incomplete.push(item.support); - } else { + if (!item.container.incomplete) { complete.push(item); + } else if (incomplete.indexOf(item.support) < 0) { + incomplete.push(item.support); } } diff --git a/src/vs/editor/contrib/suggest/common/suggestModel.ts b/src/vs/editor/contrib/suggest/common/suggestModel.ts index 4c0f9b5fc58..a265d1c73e4 100644 --- a/src/vs/editor/contrib/suggest/common/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/common/suggestModel.ts @@ -384,7 +384,7 @@ export class SuggestModel implements IDisposable { if (this.completionModel.incomplete && ctx.column > this.context.column) { const {complete, incomplete} = this.completionModel.resolveIncompleteInfo(); - this.trigger(true, true, incomplete, complete); + this.trigger(this.state === State.Auto, true, incomplete, complete); return; } From be2143ddcb6bbc27bb2f04c04ecc308c1495fa0f Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 31 Oct 2016 14:26:53 +0100 Subject: [PATCH 222/242] In built Kimbie Dark theme is broken for Typescript files. Fixes #14666 --- extensions/theme-kimbie-dark/themes/Kimbie_dark.tmTheme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/theme-kimbie-dark/themes/Kimbie_dark.tmTheme b/extensions/theme-kimbie-dark/themes/Kimbie_dark.tmTheme index adb642871ad..0ed0b9bddc6 100644 --- a/extensions/theme-kimbie-dark/themes/Kimbie_dark.tmTheme +++ b/extensions/theme-kimbie-dark/themes/Kimbie_dark.tmTheme @@ -146,7 +146,7 @@ name Classes scope - meta.class, support.class, entity.name.class, entity.name.type.class + support.class, entity.name.class, entity.name.type.class settings foreground From 82d9feb342f995246eea12624f7199587c74270d Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 15:01:15 +0100 Subject: [PATCH 223/242] better fix for #8202 --- .../editor/browser/widget/codeEditorWidget.ts | 26 +++++++-------- src/vs/editor/common/editorCommon.ts | 5 +-- src/vs/monaco.d.ts | 8 ++--- src/vs/workbench/common/editor.ts | 13 +++----- .../files/browser/editors/textFileEditor.ts | 32 +++++++++---------- 5 files changed, 34 insertions(+), 50 deletions(-) diff --git a/src/vs/editor/browser/widget/codeEditorWidget.ts b/src/vs/editor/browser/widget/codeEditorWidget.ts index 02981ec6439..4548e94f9dd 100644 --- a/src/vs/editor/browser/widget/codeEditorWidget.ts +++ b/src/vs/editor/browser/widget/codeEditorWidget.ts @@ -251,23 +251,19 @@ export abstract class CodeEditorWidget extends CommonCodeEditor implements edito if (!this.cursor || !this.hasView) { return; } - if (state) { - var codeEditorState = state; - var cursorState = codeEditorState.cursorState; - if (cursorState) { - if (Array.isArray(cursorState)) { - this.cursor.restoreState(cursorState); - } else { - // Backwards compatibility - this.cursor.restoreState([cursorState]); - } + var s = state; + if (s && s.cursorState && s.viewState) { + var codeEditorState = s; + var cursorState = codeEditorState.cursorState; + if (Array.isArray(cursorState)) { + this.cursor.restoreState(cursorState); + } else { + // Backwards compatibility + this.cursor.restoreState([cursorState]); } + this._view.restoreState(codeEditorState.viewState); - if (codeEditorState.viewState) { - this._view.restoreState(codeEditorState.viewState); - } - - let contributionsState = codeEditorState.contributionsState || {}; + let contributionsState = s.contributionsState || {}; let keys = Object.keys(this._contributions); for (let i = 0, len = keys.length; i < len; i++) { let id = keys[i]; diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index baa968da486..0074cbe6e8d 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -2965,10 +2965,7 @@ export interface IViewState { export interface ICodeEditorViewState extends IEditorViewState { cursorState: ICursorState[]; viewState: IViewState; - contributionsState: IContributionsViewState; -} -export interface IContributionsViewState { - [id: string]: any; + contributionsState: { [id: string]: any }; } /** diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index 3d44d7ed432..0329b1eb5c0 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -2665,11 +2665,9 @@ declare module monaco.editor { export interface ICodeEditorViewState extends IEditorViewState { cursorState: ICursorState[]; viewState: IViewState; - contributionsState: IContributionsViewState; - } - - export interface IContributionsViewState { - [id: string]: any; + contributionsState: { + [id: string]: any; + }; } /** diff --git a/src/vs/workbench/common/editor.ts b/src/vs/workbench/common/editor.ts index 56e84b9beb3..316e19103d2 100644 --- a/src/vs/workbench/common/editor.ts +++ b/src/vs/workbench/common/editor.ts @@ -8,7 +8,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import Event, { Emitter } from 'vs/base/common/event'; import types = require('vs/base/common/types'); import URI from 'vs/base/common/uri'; -import { IEditor, ICommonCodeEditor, IEditorViewState, IEditorOptions as ICodeEditorOptions, ICodeEditorViewState, IContributionsViewState, EditorType } from 'vs/editor/common/editorCommon'; +import { IEditor, ICommonCodeEditor, IEditorViewState, IEditorOptions as ICodeEditorOptions } from 'vs/editor/common/editorCommon'; import { IEditorInput, IEditorModel, IEditorOptions, ITextEditorOptions, IResourceInput, Position } from 'vs/platform/editor/common/editor'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; @@ -614,7 +614,7 @@ export class TextEditorOptions extends EditorOptions { * * @return if something was applied */ - public apply(editor: IEditor, extraContributionsViewState?: IContributionsViewState): boolean { + public apply(editor: IEditor): boolean { // Editor options if (this.editorOptions) { @@ -622,10 +622,10 @@ export class TextEditorOptions extends EditorOptions { } // View state - return this.applyViewState(editor, extraContributionsViewState); + return this.applyViewState(editor); } - private applyViewState(editor: IEditor, extraContributionsViewState?: IContributionsViewState): boolean { + private applyViewState(editor: IEditor): boolean { let gotApplied = false; // First try viewstate @@ -637,11 +637,6 @@ export class TextEditorOptions extends EditorOptions { // Otherwise check for selection else if (!types.isUndefinedOrNull(this.startLineNumber) && !types.isUndefinedOrNull(this.startColumn)) { - // Additional Contributions View State only applies if we did not have view state otherwise - if (extraContributionsViewState && editor.getEditorType() === EditorType.ICodeEditor) { - editor.restoreViewState({ contributionsState: extraContributionsViewState } as ICodeEditorViewState); - } - // Select if (!types.isUndefinedOrNull(this.endLineNumber) && !types.isUndefinedOrNull(this.endColumn)) { const range = { diff --git a/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts b/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts index e8d4425a970..b71b135b4af 100644 --- a/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts +++ b/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts @@ -10,7 +10,7 @@ import errors = require('vs/base/common/errors'); import { toErrorMessage } from 'vs/base/common/errorMessage'; import types = require('vs/base/common/types'); import paths = require('vs/base/common/paths'); -import { ICodeEditorViewState } from 'vs/editor/common/editorCommon'; +import { IEditorViewState } from 'vs/editor/common/editorCommon'; import { Action } from 'vs/base/common/actions'; import { Scope } from 'vs/workbench/common/memento'; import { IEditorOptions } from 'vs/editor/common/editorCommon'; @@ -37,9 +37,9 @@ import { IThemeService } from 'vs/workbench/services/themes/common/themeService' const TEXT_EDITOR_VIEW_STATE_PREFERENCE_KEY = 'textEditorViewState'; interface ITextEditorViewState { - 0?: ICodeEditorViewState; - 1?: ICodeEditorViewState; - 2?: ICodeEditorViewState; + 0?: IEditorViewState; + 1?: IEditorViewState; + 2?: IEditorViewState; } /** @@ -84,7 +84,7 @@ export class TextFileEditor extends BaseTextEditor { return super.getInput(); } - public setInput(input: FileEditorInput, options: TextEditorOptions): TPromise { + public setInput(input: FileEditorInput, options: EditorOptions): TPromise { const oldInput = this.getInput(); super.setInput(input, options); @@ -105,8 +105,8 @@ export class TextFileEditor extends BaseTextEditor { if (!forceOpen && input.matches(oldInput)) { // TextOptions (avoiding instanceof here for a reason, do not change!) - if (options && types.isFunction(options.apply)) { - options.apply(this.getControl()); + if (options && types.isFunction((options).apply)) { + (options).apply(this.getControl()); } return TPromise.as(null); @@ -145,17 +145,15 @@ export class TextFileEditor extends BaseTextEditor { const textEditor = this.getControl(); textEditor.setModel(textFileModel.textEditorModel); - const previousEditorViewState = this.loadTextEditorViewState(this.storageService, this.getInput().getResource().toString()); - - // TextOptions (avoiding instanceof here for a reason, do not change!) - let optionsGotApplied = false; - if (options && types.isFunction(options.apply)) { - optionsGotApplied = options.apply(textEditor, previousEditorViewState && previousEditorViewState.contributionsState); + // Always restore View State if any associated + const editorViewState = this.loadTextEditorViewState(this.storageService, this.getInput().getResource().toString()); + if (editorViewState) { + textEditor.restoreViewState(editorViewState); } - // Otherwise restore previous View State if available - if (!optionsGotApplied && previousEditorViewState) { - textEditor.restoreViewState(previousEditorViewState); + // TextOptions (avoiding instanceof here for a reason, do not change!) + if (options && types.isFunction((options).apply)) { + (options).apply(textEditor); } }, (error) => { @@ -266,7 +264,7 @@ export class TextFileEditor extends BaseTextEditor { /** * Loads the text editor view state for the given key and returns it. */ - private loadTextEditorViewState(storageService: IStorageService, key: string): ICodeEditorViewState { + private loadTextEditorViewState(storageService: IStorageService, key: string): IEditorViewState { const memento = this.getMemento(storageService, Scope.WORKSPACE); const textEditorViewStateMemento = memento[TEXT_EDITOR_VIEW_STATE_PREFERENCE_KEY]; if (textEditorViewStateMemento) { From 6ef50774e4291a1ac2e3845a6516748655ba732e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 15:15:14 +0100 Subject: [PATCH 224/242] tests polish --- .../node/configurationEditingService.test.ts | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts b/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts index c1946eae725..e70398aa827 100644 --- a/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts +++ b/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts @@ -126,7 +126,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('errors cases - invalid key', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile, false, true /* no workspace */).then(services => { + createServices(workspaceDir, globalSettingsFile, false, true /* no workspace */).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, { key: 'unknown.key', value: 'value' }).then(res => { }, (error: IConfigurationEditingError) => { assert.equal(error.code, ConfigurationEditingErrorCode.ERROR_UNKNOWN_KEY); @@ -139,7 +139,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('errors cases - invalid target', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'tasks.something', value: 'value' }).then(res => { }, (error: IConfigurationEditingError) => { assert.equal(error.code, ConfigurationEditingErrorCode.ERROR_INVALID_TARGET); @@ -152,7 +152,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('errors cases - no workspace', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile, false, true /* no workspace */).then(services => { + createServices(workspaceDir, globalSettingsFile, false, true /* no workspace */).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { }, (error: IConfigurationEditingError) => { assert.equal(error.code, ConfigurationEditingErrorCode.ERROR_NO_WORKSPACE_OPENED); @@ -165,7 +165,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('errors cases - invalid configuration', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { fs.writeFileSync(globalSettingsFile, ',,,,,,,,,,,,,,'); return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { @@ -180,7 +180,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('errors cases - dirty', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile, true).then(services => { + createServices(workspaceDir, globalSettingsFile, true).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { }, (error: IConfigurationEditingError) => { assert.equal(error.code, ConfigurationEditingErrorCode.ERROR_CONFIGURATION_FILE_DIRTY); @@ -193,7 +193,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('write one setting - empty file', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { const contents = fs.readFileSync(globalSettingsFile).toString('utf8'); const parsed = json.parse(contents); @@ -209,7 +209,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('write one setting - existing file', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { fs.writeFileSync(globalSettingsFile, '{ "my.super.setting": "my.super.value" }'); return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { @@ -230,7 +230,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('write workspace standalone setting - empty file', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, { key: 'tasks.service.testSetting', value: 'value' }).then(res => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['tasks']); const contents = fs.readFileSync(target).toString('utf8'); @@ -247,7 +247,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('write workspace standalone setting - existing file', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['launch']); fs.writeFileSync(target, '{ "my.super.setting": "my.super.value" }'); @@ -270,7 +270,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('write workspace standalone setting - empty file - full JSON', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, { key: 'tasks', value: { 'version': '1.0.0', tasks: [{ 'taskName': 'myTask' }] } }).then(res => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['tasks']); const contents = fs.readFileSync(target).toString('utf8'); @@ -288,7 +288,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('write workspace standalone setting - existing file - full JSON', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['launch']); fs.writeFileSync(target, '{ "my.super.setting": "my.super.value" }'); @@ -310,7 +310,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { test('write workspace standalone setting - existing file with JSON errors - full JSON', (done: () => void) => { createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createServices(workspaceDir, globalSettingsFile).done(services => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['launch']); fs.writeFileSync(target, '{ "my.super.setting": '); // invalid JSON From 9d16385b183ab7c03d41f482ee7236f0f3079be0 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Mon, 31 Oct 2016 15:19:21 +0100 Subject: [PATCH 225/242] add >= version parsing fixes #13590 --- .../extensions/node/extensionValidator.ts | 31 +++++- .../test/node/extensionValidator.test.ts | 99 ++++++++++--------- 2 files changed, 81 insertions(+), 49 deletions(-) diff --git a/src/vs/platform/extensions/node/extensionValidator.ts b/src/vs/platform/extensions/node/extensionValidator.ts index 0589fdb05ab..235dfeebfd3 100644 --- a/src/vs/platform/extensions/node/extensionValidator.ts +++ b/src/vs/platform/extensions/node/extensionValidator.ts @@ -11,6 +11,7 @@ import * as paths from 'vs/base/common/paths'; export interface IParsedVersion { hasCaret: boolean; + hasGreaterEquals: boolean; majorBase: number; majorMustEqual: boolean; minorBase: number; @@ -27,9 +28,10 @@ export interface INormalizedVersion { minorMustEqual: boolean; patchBase: number; patchMustEqual: boolean; + isMinimum: boolean; } -const VERSION_REGEXP = /^(\^)?((\d+)|x)\.((\d+)|x)\.((\d+)|x)(\-.*)?$/; +const VERSION_REGEXP = /^(\^|>=)?((\d+)|x)\.((\d+)|x)\.((\d+)|x)(\-.*)?$/; export function isValidVersionStr(version: string): boolean { version = version.trim(); @@ -46,6 +48,7 @@ export function parseVersion(version: string): IParsedVersion { if (version === '*') { return { hasCaret: false, + hasGreaterEquals: false, majorBase: 0, majorMustEqual: false, minorBase: 0, @@ -58,7 +61,8 @@ export function parseVersion(version: string): IParsedVersion { let m = version.match(VERSION_REGEXP); return { - hasCaret: !!m[1], + hasCaret: m[1] === '^', + hasGreaterEquals: m[1] === '>=', majorBase: m[2] === 'x' ? 0 : parseInt(m[2], 10), majorMustEqual: (m[2] === 'x' ? false : true), minorBase: m[4] === 'x' ? 0 : parseInt(m[4], 10), @@ -96,7 +100,8 @@ export function normalizeVersion(version: IParsedVersion): INormalizedVersion { minorBase: minorBase, minorMustEqual: minorMustEqual, patchBase: patchBase, - patchMustEqual: patchMustEqual + patchMustEqual: patchMustEqual, + isMinimum: version.hasGreaterEquals }; } @@ -131,6 +136,26 @@ export function isValidVersion(_version: string | INormalizedVersion, _desiredVe let minorMustEqual = desiredVersion.minorMustEqual; let patchMustEqual = desiredVersion.patchMustEqual; + if (desiredVersion.isMinimum) { + if (majorBase > desiredMajorBase) { + return true; + } + + if (majorBase < desiredMajorBase) { + return false; + } + + if (minorBase > desiredMinorBase) { + return true; + } + + if (minorBase < desiredMinorBase) { + return false; + } + + return patchBase >= desiredPatchBase; + } + // Anything < 1.0.0 is compatible with >= 1.0.0, except exact matches if (majorBase === 1 && desiredMajorBase === 0 && (!majorMustEqual || !minorMustEqual || !patchMustEqual)) { desiredMajorBase = 1; diff --git a/src/vs/platform/extensions/test/node/extensionValidator.test.ts b/src/vs/platform/extensions/test/node/extensionValidator.test.ts index 22d5c878174..9a8077613e4 100644 --- a/src/vs/platform/extensions/test/node/extensionValidator.test.ts +++ b/src/vs/platform/extensions/test/node/extensionValidator.test.ts @@ -29,63 +29,54 @@ suite('Extension Version Validator', () => { }); test('parseVersion', () => { - function assertParseVersion(version: string, hasCaret: boolean, majorBase: number, majorMustEqual: boolean, minorBase: number, minorMustEqual: boolean, patchBase: number, patchMustEqual: boolean, preRelease: string): void { - let actual = parseVersion(version); - let expected: IParsedVersion = { - hasCaret: hasCaret, - majorBase: majorBase, - majorMustEqual: majorMustEqual, - minorBase: minorBase, - minorMustEqual: minorMustEqual, - patchBase: patchBase, - patchMustEqual: patchMustEqual, - preRelease: preRelease - }; + function assertParseVersion(version: string, hasCaret: boolean, hasGreaterEquals: boolean, majorBase: number, majorMustEqual: boolean, minorBase: number, minorMustEqual: boolean, patchBase: number, patchMustEqual: boolean, preRelease: string): void { + const actual = parseVersion(version); + const expected: IParsedVersion = { hasCaret, hasGreaterEquals, majorBase, majorMustEqual, minorBase, minorMustEqual, patchBase, patchMustEqual, preRelease }; + assert.deepEqual(actual, expected, 'parseVersion for ' + version); } - assertParseVersion('0.10.0-dev', false, 0, true, 10, true, 0, true, '-dev'); - assertParseVersion('0.10.0', false, 0, true, 10, true, 0, true, null); - assertParseVersion('0.10.1', false, 0, true, 10, true, 1, true, null); - assertParseVersion('0.10.100', false, 0, true, 10, true, 100, true, null); - assertParseVersion('0.11.0', false, 0, true, 11, true, 0, true, null); + assertParseVersion('0.10.0-dev', false, false, 0, true, 10, true, 0, true, '-dev'); + assertParseVersion('0.10.0', false, false, 0, true, 10, true, 0, true, null); + assertParseVersion('0.10.1', false, false, 0, true, 10, true, 1, true, null); + assertParseVersion('0.10.100', false, false, 0, true, 10, true, 100, true, null); + assertParseVersion('0.11.0', false, false, 0, true, 11, true, 0, true, null); - assertParseVersion('x.x.x', false, 0, false, 0, false, 0, false, null); - assertParseVersion('0.x.x', false, 0, true, 0, false, 0, false, null); - assertParseVersion('0.10.x', false, 0, true, 10, true, 0, false, null); - assertParseVersion('^0.10.0', true, 0, true, 10, true, 0, true, null); - assertParseVersion('^0.10.2', true, 0, true, 10, true, 2, true, null); - assertParseVersion('^1.10.2', true, 1, true, 10, true, 2, true, null); - assertParseVersion('*', false, 0, false, 0, false, 0, false, null); + assertParseVersion('x.x.x', false, false, 0, false, 0, false, 0, false, null); + assertParseVersion('0.x.x', false, false, 0, true, 0, false, 0, false, null); + assertParseVersion('0.10.x', false, false, 0, true, 10, true, 0, false, null); + assertParseVersion('^0.10.0', true, false, 0, true, 10, true, 0, true, null); + assertParseVersion('^0.10.2', true, false, 0, true, 10, true, 2, true, null); + assertParseVersion('^1.10.2', true, false, 1, true, 10, true, 2, true, null); + assertParseVersion('*', false, false, 0, false, 0, false, 0, false, null); + + assertParseVersion('>=0.0.1', false, true, 0, true, 0, true, 1, true, null); + assertParseVersion('>=2.4.3', false, true, 2, true, 4, true, 3, true, null); }); test('normalizeVersion', () => { - function assertNormalizeVersion(version: string, majorBase: number, majorMustEqual: boolean, minorBase: number, minorMustEqual: boolean, patchBase: number, patchMustEqual: boolean): void { - let actual = normalizeVersion(parseVersion(version)); - let expected: INormalizedVersion = { - majorBase: majorBase, - majorMustEqual: majorMustEqual, - minorBase: minorBase, - minorMustEqual: minorMustEqual, - patchBase: patchBase, - patchMustEqual: patchMustEqual - }; + function assertNormalizeVersion(version: string, majorBase: number, majorMustEqual: boolean, minorBase: number, minorMustEqual: boolean, patchBase: number, patchMustEqual: boolean, isMinimum: boolean): void { + const actual = normalizeVersion(parseVersion(version)); + const expected: INormalizedVersion = { majorBase, majorMustEqual, minorBase, minorMustEqual, patchBase, patchMustEqual, isMinimum }; assert.deepEqual(actual, expected, 'parseVersion for ' + version); } - assertNormalizeVersion('0.10.0-dev', 0, true, 10, true, 0, true); - assertNormalizeVersion('0.10.0', 0, true, 10, true, 0, true); - assertNormalizeVersion('0.10.1', 0, true, 10, true, 1, true); - assertNormalizeVersion('0.10.100', 0, true, 10, true, 100, true); - assertNormalizeVersion('0.11.0', 0, true, 11, true, 0, true); + assertNormalizeVersion('0.10.0-dev', 0, true, 10, true, 0, true, false); + assertNormalizeVersion('0.10.0', 0, true, 10, true, 0, true, false); + assertNormalizeVersion('0.10.1', 0, true, 10, true, 1, true, false); + assertNormalizeVersion('0.10.100', 0, true, 10, true, 100, true, false); + assertNormalizeVersion('0.11.0', 0, true, 11, true, 0, true, false); - assertNormalizeVersion('x.x.x', 0, false, 0, false, 0, false); - assertNormalizeVersion('0.x.x', 0, true, 0, false, 0, false); - assertNormalizeVersion('0.10.x', 0, true, 10, true, 0, false); - assertNormalizeVersion('^0.10.0', 0, true, 10, true, 0, false); - assertNormalizeVersion('^0.10.2', 0, true, 10, true, 2, false); - assertNormalizeVersion('^1.10.2', 1, true, 10, false, 2, false); - assertNormalizeVersion('*', 0, false, 0, false, 0, false); + assertNormalizeVersion('x.x.x', 0, false, 0, false, 0, false, false); + assertNormalizeVersion('0.x.x', 0, true, 0, false, 0, false, false); + assertNormalizeVersion('0.10.x', 0, true, 10, true, 0, false, false); + assertNormalizeVersion('^0.10.0', 0, true, 10, true, 0, false, false); + assertNormalizeVersion('^0.10.2', 0, true, 10, true, 2, false, false); + assertNormalizeVersion('^1.10.2', 1, true, 10, false, 2, false, false); + assertNormalizeVersion('*', 0, false, 0, false, 0, false, false); + + assertNormalizeVersion('>=0.0.1', 0, true, 0, true, 1, true, true); + assertNormalizeVersion('>=2.4.3', 2, true, 4, true, 3, true, true); }); test('isValidVersion', () => { @@ -102,6 +93,11 @@ suite('Extension Version Validator', () => { testIsValidVersion('0.10.0-dev', '0.10.x', true); testIsValidVersion('0.10.0-dev', '^0.10.0', true); testIsValidVersion('0.10.0-dev', '*', true); + testIsValidVersion('0.10.0-dev', '>=0.0.1', true); + testIsValidVersion('0.10.0-dev', '>=0.0.10', true); + testIsValidVersion('0.10.0-dev', '>=0.10.0', true); + testIsValidVersion('0.10.0-dev', '>=0.10.1', false); + testIsValidVersion('0.10.0-dev', '>=1.0.0', false); testIsValidVersion('0.10.0', 'x.x.x', true); testIsValidVersion('0.10.0', '0.x.x', true); @@ -152,6 +148,14 @@ suite('Extension Version Validator', () => { testIsValidVersion('1.0.0', '^1.0.0', true); testIsValidVersion('1.0.0', '^2.0.0', false); testIsValidVersion('1.0.0', '*', true); + testIsValidVersion('1.0.0', '>=0.0.1', true); + testIsValidVersion('1.0.0', '>=0.0.10', true); + testIsValidVersion('1.0.0', '>=0.10.0', true); + testIsValidVersion('1.0.0', '>=0.10.1', true); + testIsValidVersion('1.0.0', '>=1.0.0', true); + testIsValidVersion('1.0.0', '>=1.1.0', false); + testIsValidVersion('1.0.0', '>=1.0.1', false); + testIsValidVersion('1.0.0', '>=2.0.0', false); testIsValidVersion('1.0.100', 'x.x.x', true); testIsValidVersion('1.0.100', '0.x.x', true); @@ -179,6 +183,9 @@ suite('Extension Version Validator', () => { testIsValidVersion('1.100.0', '^1.100.0', true); testIsValidVersion('1.100.0', '^2.0.0', false); testIsValidVersion('1.100.0', '*', true); + testIsValidVersion('1.100.0', '>=1.99.0', true); + testIsValidVersion('1.100.0', '>=1.100.0', true); + testIsValidVersion('1.100.0', '>=1.101.0', false); testIsValidVersion('2.0.0', 'x.x.x', true); testIsValidVersion('2.0.0', '0.x.x', false); From 887a4a1b7d118a7848fb6ef68ba212ca73434ca1 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 15:24:27 +0100 Subject: [PATCH 226/242] when saving expect the extension host to be virtually dead, #14635 --- .../workbench/api/node/mainThreadSaveParticipant.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts index 2eab8be139a..5e1f28bbf11 100644 --- a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts +++ b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts @@ -178,12 +178,15 @@ class ExtHostSaveParticipant implements INamedSaveParticpant { } participate(editorModel: ITextFileEditorModel, env: { reason: SaveReason }): TPromise { - return this._proxy.$participateInSave(editorModel.getResource(), env.reason).then(values => { - for (const success of values) { - if (!success) { - return TPromise.wrapError('listener failed'); + return new TPromise((resolve, reject) => { + setTimeout(reject, 1750); + this._proxy.$participateInSave(editorModel.getResource(), env.reason).then(values => { + for (const success of values) { + if (!success) { + return TPromise.wrapError('listener failed'); + } } - } + }).then(resolve, reject); }); } } From 10dbed31be08557ae582514d62d7b6dfa24cf53e Mon Sep 17 00:00:00 2001 From: isidor Date: Mon, 31 Oct 2016 15:27:03 +0100 Subject: [PATCH 227/242] fixes #14740 --- src/vs/workbench/parts/debug/common/debugModel.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index ebca1eb610c..1ba518634f1 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -435,7 +435,10 @@ export class Thread implements debug.IThread { return []; } - this.stoppedDetails.totalFrames = response.body.totalFrames; + if (this.stoppedDetails) { + this.stoppedDetails.totalFrames = response.body.totalFrames; + } + return response.body.stackFrames.map((rsf, level) => { if (!rsf) { return new StackFrame(this, 0, new Source({ name: UNKNOWN_SOURCE_LABEL }, false), nls.localize('unknownStack', "Unknown stack location"), undefined, undefined); @@ -444,7 +447,10 @@ export class Thread implements debug.IThread { return new StackFrame(this, rsf.id, rsf.source ? new Source(rsf.source) : new Source({ name: UNKNOWN_SOURCE_LABEL }, false), rsf.name, rsf.line, rsf.column); }); }, (err: Error) => { - this.stoppedDetails.framesErrorMessage = err.message; + if (this.stoppedDetails) { + this.stoppedDetails.framesErrorMessage = err.message; + } + return []; }); } From b3932211e183e431da221e8f534c1f4b5707784e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 15:20:11 +0100 Subject: [PATCH 228/242] tests - more error handler for flaky tests --- .../node/configurationEditingService.test.ts | 76 +++++++++++++++---- 1 file changed, 62 insertions(+), 14 deletions(-) diff --git a/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts b/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts index e70398aa827..1dd412f6196 100644 --- a/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts +++ b/src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts @@ -68,7 +68,7 @@ class TestDirtyTextFileService extends TestTextFileService { suite('WorkspaceConfigurationEditingService - Node', () => { - function createWorkspace(callback: (workspaceDir: string, globalSettingsFile: string, cleanUp: (done: () => void, error?: Error) => void) => void): void { + function createWorkspace(callback: (workspaceDir: string, globalSettingsFile: string, cleanUp: (done: () => void, error?: Error) => void, error: Error) => void): void { const id = uuid.generateUuid(); const parentDir = path.join(os.tmpdir(), 'vsctests', id); const workspaceDir = path.join(parentDir, 'workspaceconfig', id); @@ -84,7 +84,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { done(); }); - }); + }, error); }); } @@ -125,7 +125,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('errors cases - invalid key', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile, false, true /* no workspace */).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, { key: 'unknown.key', value: 'value' }).then(res => { }, (error: IConfigurationEditingError) => { @@ -138,7 +142,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('errors cases - invalid target', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'tasks.something', value: 'value' }).then(res => { }, (error: IConfigurationEditingError) => { @@ -151,7 +159,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('errors cases - no workspace', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile, false, true /* no workspace */).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { }, (error: IConfigurationEditingError) => { @@ -164,7 +176,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('errors cases - invalid configuration', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { fs.writeFileSync(globalSettingsFile, ',,,,,,,,,,,,,,'); @@ -179,7 +195,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('errors cases - dirty', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile, true).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { }, (error: IConfigurationEditingError) => { @@ -192,7 +212,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('write one setting - empty file', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { const contents = fs.readFileSync(globalSettingsFile).toString('utf8'); @@ -208,7 +232,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('write one setting - existing file', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { fs.writeFileSync(globalSettingsFile, '{ "my.super.setting": "my.super.value" }'); @@ -229,7 +257,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('write workspace standalone setting - empty file', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, { key: 'tasks.service.testSetting', value: 'value' }).then(res => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['tasks']); @@ -246,7 +278,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('write workspace standalone setting - existing file', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['launch']); @@ -269,7 +305,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('write workspace standalone setting - empty file - full JSON', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { return services.configurationEditingService.writeConfiguration(ConfigurationTarget.WORKSPACE, { key: 'tasks', value: { 'version': '1.0.0', tasks: [{ 'taskName': 'myTask' }] } }).then(res => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['tasks']); @@ -287,7 +327,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('write workspace standalone setting - existing file - full JSON', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['launch']); @@ -309,7 +353,11 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('write workspace standalone setting - existing file with JSON errors - full JSON', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + createServices(workspaceDir, globalSettingsFile).done(services => { const target = path.join(workspaceDir, WORKSPACE_STANDALONE_CONFIGURATIONS['launch']); From fee0c0fde78f6b28f74799c88fabc94ff0db9159 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 31 Oct 2016 15:53:04 +0100 Subject: [PATCH 229/242] make #6810 a little bit better --- src/vs/workbench/browser/layout.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index 7c12d2ebd20..cc7bad838db 100644 --- a/src/vs/workbench/browser/layout.ts +++ b/src/vs/workbench/browser/layout.ts @@ -452,9 +452,13 @@ export class WorkbenchLayout implements IVerticalSashLayoutProvider, IHorizontal .position(this.options.margin.top, this.options.margin.right, this.options.margin.bottom, this.options.margin.left, 'relative') .size(this.workbenchSize.width, this.workbenchSize.height); - // Bug on Chrome: Sometimes Chrome wants to scroll the workbench container on layout changes. The fix is to reset scrollTop in this case. - if (this.workbenchContainer.getHTMLElement().scrollTop > 0) { - this.workbenchContainer.getHTMLElement().scrollTop = 0; + // Bug on Chrome: Sometimes Chrome wants to scroll the workbench container on layout changes. The fix is to reset scrolling in this case. + const workbenchContainer = this.workbenchContainer.getHTMLElement(); + if (workbenchContainer.scrollTop > 0) { + workbenchContainer.scrollTop = 0; + } + if (workbenchContainer.scrollLeft > 0) { + workbenchContainer.scrollLeft = 0; } // Editor Part and Panel part From f149cfb7159b53086df416bedafa1e486948cd70 Mon Sep 17 00:00:00 2001 From: isidor Date: Mon, 31 Oct 2016 15:54:32 +0100 Subject: [PATCH 230/242] debug: schedule the update of the call stack tree if the viewlet is opened after a session started fixes #14684 --- src/vs/workbench/parts/debug/electron-browser/debugViews.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/vs/workbench/parts/debug/electron-browser/debugViews.ts b/src/vs/workbench/parts/debug/electron-browser/debugViews.ts index ec6b64cb697..a273bca799f 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugViews.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugViews.ts @@ -341,6 +341,11 @@ export class CallStackView extends viewlet.CollapsibleViewletView { this.onCallStackChangeScheduler.schedule(); } })); + + // Schedule the update of the call stack tree if the viewlet is opened after a session started #14684 + if (this.debugService.state === debug.State.Stopped) { + this.onCallStackChangeScheduler.schedule(); + } } public shutdown(): void { From a3c6ebfd2989c40ed0fa8f8434e81142b6790906 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 31 Oct 2016 09:37:11 +0100 Subject: [PATCH 231/242] extensionsWorkbenchService: Remove electron browser dependencies --- .../electron-browser/extensionsActions.ts | 14 +++++- .../extensionsWorkbenchService.ts | 49 +++++++------------ 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 43a38002a5f..2f8ba65ce68 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -1100,7 +1100,9 @@ export class InstallVSIXAction extends Action { constructor( id = InstallVSIXAction.ID, label = InstallVSIXAction.LABEL, - @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService + @IExtensionsWorkbenchService private extensionsWorkbenchService: IExtensionsWorkbenchService, + @IMessageService private messageService: IMessageService, + @IInstantiationService private instantiationService: IInstantiationService ) { super(id, label, 'extension-action install-vsix', true); } @@ -1115,7 +1117,15 @@ export class InstallVSIXAction extends Action { return TPromise.as(null); } - return TPromise.join(result.map(vsix => this.extensionsWorkbenchService.install(vsix))); + return TPromise.join(result.map(vsix => this.extensionsWorkbenchService.install(vsix))).then(() => { + this.messageService.show( + severity.Info, + { + message: localize('InstallVSIXAction.success', "Successfully installed the extension. Restart to enable it."), + actions: [this.instantiationService.createInstance(ReloadWindowAction, ReloadWindowAction.ID, localize('InstallVSIXAction.reloadNow', "Reload Now"))] + } + ); + }); } } diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts index e36f9c37312..19e69c8e708 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts @@ -6,7 +6,6 @@ 'use strict'; import 'vs/css!./media/extensionsViewlet'; -import { localize } from 'vs/nls'; import Event, { Emitter, chain } from 'vs/base/common/event'; import { index } from 'vs/base/common/arrays'; import { LinkedMap as Map } from 'vs/base/common/map'; @@ -35,7 +34,6 @@ import { asText } from 'vs/base/node/request'; import { IExtension, IExtensionDependencies, ExtensionState, IExtensionsWorkbenchService, IExtensionsConfiguration, ConfigurationKey } from '../common/extensions'; import { UpdateAllAction } from './extensionsActions'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; -import { ReloadWindowAction } from 'vs/workbench/electron-browser/actions'; import { IURLService } from 'vs/platform/url/common/url'; import { ExtensionsInput } from './extensionsInput'; import { IExtensionsRuntimeService } from 'vs/platform/extensions/common/extensions'; @@ -559,40 +557,31 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { const id = stripVersion(event.id); const installing = this.installing.filter(e => e.id === id)[0]; - if (!installing) { - if (zipPath) { - this.messageService.show( - Severity.Info, - { - message: localize('successSingle', "'{0}' was successfully installed. Restart to enable it.", id), - actions: [this.instantiationService.createInstance(ReloadWindowAction, ReloadWindowAction.ID, localize('reloadNow', "Restart Now"))] - } - ); - } + const extension: Extension = installing ? installing.extension : zipPath ? new Extension(this.galleryService, this.stateProvider, null) : null; + if (extension) { + this.installing = this.installing.filter(e => e.id !== id); - return; - } + if (!error) { + this.newlyInstalled.push(extension); + extension.local = local; + extension.needsReload = true; - const extension = installing.extension; - this.installing = this.installing.filter(e => e.id !== id); + const galleryId = local.metadata && local.metadata.id; + const installed = this.installed.filter(e => (e.local && e.local.metadata && e.local.metadata.id) === galleryId)[0]; - if (!error) { - this.newlyInstalled.push(extension); - extension.local = local; - extension.needsReload = true; - - const galleryId = local.metadata && local.metadata.id; - const installed = this.installed.filter(e => (e.local && e.local.metadata && e.local.metadata.id) === galleryId)[0]; - - if (galleryId && installed) { - installing.operation = Operation.Updating; - installed.local = local; - } else { - this.installed.push(extension); + if (galleryId && installed) { + installing.operation = Operation.Updating; + installed.local = local; + } else { + this.installed.push(extension); + } } } - this.reportTelemetry(installing, !error); + if (extension.gallery) { + // Report telemetry only for gallery extensions + this.reportTelemetry(installing, !error); + } this._onChange.fire(); } From 972713b15924361ac2bdcf454868f7a0065184fe Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 31 Oct 2016 10:20:19 +0100 Subject: [PATCH 232/242] Move extensionsInput to common --- .../extensionsInput.ts | 2 +- .../electron-browser/extensionEditor.ts | 2 +- .../electron-browser/extensions.contribution.ts | 2 +- .../electron-browser/extensionsViewlet.ts | 2 +- .../extensionsWorkbenchService.ts | 15 +++++++-------- 5 files changed, 11 insertions(+), 12 deletions(-) rename src/vs/workbench/parts/extensions/{electron-browser => common}/extensionsInput.ts (94%) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsInput.ts b/src/vs/workbench/parts/extensions/common/extensionsInput.ts similarity index 94% rename from src/vs/workbench/parts/extensions/electron-browser/extensionsInput.ts rename to src/vs/workbench/parts/extensions/common/extensionsInput.ts index 81346053b1d..3c5f8acbcfe 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsInput.ts +++ b/src/vs/workbench/parts/extensions/common/extensionsInput.ts @@ -8,7 +8,7 @@ import { localize } from 'vs/nls'; import { TPromise } from 'vs/base/common/winjs.base'; import { EditorInput } from 'vs/workbench/common/editor'; -import { IExtension } from '../common/extensions'; +import { IExtension } from 'vs/workbench/parts/extensions/common/extensions'; export class ExtensionsInput extends EditorInput { diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index 158fb81cfc9..d8364fd01f9 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -26,7 +26,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IExtensionGalleryService, IExtensionManifest, IKeyBinding } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IThemeService } from 'vs/workbench/services/themes/common/themeService'; -import { ExtensionsInput } from './extensionsInput'; +import { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensionsInput'; import { IExtensionsWorkbenchService, IExtensionsViewlet, VIEWLET_ID, IExtension, IExtensionDependencies } from '../common/extensions'; import { Renderer, DataSource, Controller } from './dependenciesViewer'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.ts b/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.ts index 270a6391644..492d17f4534 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.ts @@ -25,7 +25,7 @@ import { ShowInstalledExtensionsAction, ShowDisabledExtensionsAction, UpdateAllAction, OpenExtensionsFolderAction, ConfigureWorkspaceRecommendedExtensionsAction, InstallVSIXAction, EnableAllAction, EnableAllWorkpsaceAction, DisableAllAction, DisableAllWorkpsaceAction } from './extensionsActions'; -import { ExtensionsInput } from './extensionsInput'; +import { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensionsInput'; import { ViewletRegistry, Extensions as ViewletExtensions, ViewletDescriptor } from 'vs/workbench/browser/viewlet'; import { ExtensionEditor } from './extensionEditor'; import { StatusUpdater } from './extensionsViewlet'; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts index 84f6ac90cfd..eb4bdc1f49a 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts @@ -35,7 +35,7 @@ import { ShowOutdatedExtensionsAction, ClearExtensionsInputAction, ChangeSortAction, UpdateAllAction, InstallVSIXAction } from './extensionsActions'; import { IExtensionManagementService, IExtensionGalleryService, IExtensionTipsService, SortBy, SortOrder, IQueryOptions, LocalExtensionType } from 'vs/platform/extensionManagement/common/extensionManagement'; -import { ExtensionsInput } from './extensionsInput'; +import { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensionsInput'; import { Query } from '../common/extensionQuery'; import { OpenGlobalSettingsAction } from 'vs/workbench/browser/actions/openSettings'; import { IProgressService } from 'vs/platform/progress/common/progress'; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts index 19e69c8e708..2eb4148db86 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts @@ -5,7 +5,10 @@ 'use strict'; -import 'vs/css!./media/extensionsViewlet'; +import { readFile } from 'vs/base/node/pfs'; +import { asText } from 'vs/base/node/request'; +import * as semver from 'semver'; +import * as path from 'path'; import Event, { Emitter, chain } from 'vs/base/common/event'; import { index } from 'vs/base/common/arrays'; import { LinkedMap as Map } from 'vs/base/common/map'; @@ -26,16 +29,12 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IMessageService } from 'vs/platform/message/common/message'; import Severity from 'vs/base/common/severity'; -import * as semver from 'semver'; -import * as path from 'path'; import URI from 'vs/base/common/uri'; -import { readFile } from 'vs/base/node/pfs'; -import { asText } from 'vs/base/node/request'; -import { IExtension, IExtensionDependencies, ExtensionState, IExtensionsWorkbenchService, IExtensionsConfiguration, ConfigurationKey } from '../common/extensions'; -import { UpdateAllAction } from './extensionsActions'; +import { IExtension, IExtensionDependencies, ExtensionState, IExtensionsWorkbenchService, IExtensionsConfiguration, ConfigurationKey } from 'vs/workbench/parts/extensions/common/extensions'; +import { UpdateAllAction } from 'vs/workbench/parts/extensions/electron-browser/extensionsActions'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IURLService } from 'vs/platform/url/common/url'; -import { ExtensionsInput } from './extensionsInput'; +import { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensionsInput'; import { IExtensionsRuntimeService } from 'vs/platform/extensions/common/extensions'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; From c30fdbd226935e1289deec2d778d93097bc259ce Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 31 Oct 2016 11:22:38 +0100 Subject: [PATCH 233/242] extensionsWorkbenchService: Remove deps on electron-browser --- .../electron-browser/extensionsActions.ts | 11 +++-------- .../electron-browser/extensionsWorkbenchService.ts | 14 ++++---------- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 2f8ba65ce68..097079f1f76 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -744,20 +744,15 @@ export class UpdateAllAction extends Action { } private get outdated(): IExtension[] { - return this.extensionsWorkbenchService.local.filter( - e => this.extensionsWorkbenchService.canInstall(e) - && e.type === LocalExtensionType.User - && (e.state === ExtensionState.Enabled || e.state === ExtensionState.Disabled || e.state === ExtensionState.Installed) - && e.outdated - ); + return this.extensionsWorkbenchService.local.filter(e => e.outdated && e.state !== ExtensionState.Installing); } private update(): void { this.enabled = this.outdated.length > 0; } - run(promptToInstallDependencies: boolean = true, ): TPromise { - return TPromise.join(this.outdated.map(e => this.extensionsWorkbenchService.install(e, promptToInstallDependencies))); + run(): TPromise { + return TPromise.join(this.outdated.map(e => this.extensionsWorkbenchService.install(e))); } dispose(): void { diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts index 2eb4148db86..70f3fd9c1f5 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts @@ -31,7 +31,6 @@ import { IMessageService } from 'vs/platform/message/common/message'; import Severity from 'vs/base/common/severity'; import URI from 'vs/base/common/uri'; import { IExtension, IExtensionDependencies, ExtensionState, IExtensionsWorkbenchService, IExtensionsConfiguration, ConfigurationKey } from 'vs/workbench/parts/extensions/common/extensions'; -import { UpdateAllAction } from 'vs/workbench/parts/extensions/electron-browser/extensionsActions'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IURLService } from 'vs/platform/url/common/url'; import { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensionsInput'; @@ -163,7 +162,7 @@ class Extension implements IExtension { } get outdated(): boolean { - return this.type === LocalExtensionType.User && semver.gt(this.latestVersion, this.version); + return this.gallery && this.type === LocalExtensionType.User && semver.gt(this.latestVersion, this.version); } get reload(): boolean { @@ -446,20 +445,15 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { .done(null, err => null); } - private autoUpdateExtensions(): TPromise { + private autoUpdateExtensions(): TPromise { const config = this.configurationService.getConfiguration(ConfigurationKey); if (!config.autoUpdate) { return TPromise.as(null); } - const action = this.instantiationService.createInstance(UpdateAllAction, UpdateAllAction.ID, UpdateAllAction.LABEL); - - if (!action.enabled) { - return TPromise.as(null); - } - - return action.run(false); + const toUpdate = this.local.filter(e => e.outdated && (e.state !== ExtensionState.Installing)); + return TPromise.join(toUpdate.map(e => this.install(e, false))); } canInstall(extension: IExtension): boolean { From f88a64cde8eda4bbe6f450177bba2d3d7112c27d Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 31 Oct 2016 11:40:37 +0100 Subject: [PATCH 234/242] Cleanup: Move extensionsWorkbenchService to node package --- .../extensions/electron-browser/extensions.contribution.ts | 2 +- .../{electron-browser => node}/extensionsWorkbenchService.ts | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/vs/workbench/parts/extensions/{electron-browser => node}/extensionsWorkbenchService.ts (100%) diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.ts b/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.ts index 492d17f4534..4d1ba542fe8 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensions.contribution.ts @@ -19,7 +19,7 @@ import { EditorDescriptor } from 'vs/workbench/browser/parts/editor/baseEditor'; import { IEditorRegistry, Extensions as EditorExtensions } from 'vs/workbench/common/editor'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { VIEWLET_ID, IExtensionsWorkbenchService } from '../common/extensions'; -import { ExtensionsWorkbenchService } from './extensionsWorkbenchService'; +import { ExtensionsWorkbenchService } from 'vs/workbench/parts/extensions/node/extensionsWorkbenchService'; import { OpenExtensionsViewletAction, InstallExtensionsAction, ShowOutdatedExtensionsAction, ShowRecommendedExtensionsAction, ShowWorkspaceRecommendedExtensionsAction, ShowPopularExtensionsAction, ShowInstalledExtensionsAction, ShowDisabledExtensionsAction, UpdateAllAction, OpenExtensionsFolderAction, ConfigureWorkspaceRecommendedExtensionsAction, InstallVSIXAction, diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts similarity index 100% rename from src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts rename to src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts From f3e2685faa310ceb36dbc3fb76887e2361639812 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 31 Oct 2016 12:22:57 +0100 Subject: [PATCH 235/242] Fix #14743 --- .../parts/extensions/node/extensionsWorkbenchService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts index 70f3fd9c1f5..6e2a6a40502 100644 --- a/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts @@ -622,7 +622,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { return ExtensionState.Installing; } - if (extension.gallery && this.uninstalling.some(e => e.extension.gallery.id === extension.gallery.id)) { + if (this.uninstalling.some(e => e.extension.identifier === extension.identifier)) { return ExtensionState.Uninstalling; } From 1a8f9c015c8a7dc6dd016b0be2d0f84f013791b9 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 31 Oct 2016 15:48:49 +0100 Subject: [PATCH 236/242] Fix #14741 --- .../workbench/parts/search/browser/replaceService.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/parts/search/browser/replaceService.ts b/src/vs/workbench/parts/search/browser/replaceService.ts index f251f932502..af14b817175 100644 --- a/src/vs/workbench/parts/search/browser/replaceService.ts +++ b/src/vs/workbench/parts/search/browser/replaceService.ts @@ -52,10 +52,12 @@ class EditorInputCache { if (editorInputPromise) { editorInputPromise.done(() => { if (reloadFromSource) { - this.editorService.resolveEditorModel({ resource: fileMatch.resource() }).then(value => { - let replaceResource = this.getReplaceResource(fileMatch.resource()); - this.modelService.getModel(replaceResource).setValue(value.textEditorModel.getValue()); - this.replaceService.replace(fileMatch, null, replaceResource); + this.editorService.resolveEditorModel({ resource: fileMatch.resource() }).then(editorModel => { + if (editorModel.textEditorModel) { + let replaceResource = this.getReplaceResource(fileMatch.resource()); + this.modelService.getModel(replaceResource).setValue(editorModel.textEditorModel.getValue()); + this.replaceService.replace(fileMatch, null, replaceResource); + } }); } else { let replaceResource = this.getReplaceResource(fileMatch.resource()); From 4d449a36c0afbf77956f2699f8ce20efdc1e2836 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 31 Oct 2016 16:02:45 +0100 Subject: [PATCH 237/242] Wrong underline for src link in script tag. Fixes #14706 --- src/vs/editor/contrib/links/browser/links.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/editor/contrib/links/browser/links.ts b/src/vs/editor/contrib/links/browser/links.ts index a68acc1bc0a..1ee0106fc31 100644 --- a/src/vs/editor/contrib/links/browser/links.ts +++ b/src/vs/editor/contrib/links/browser/links.ts @@ -31,7 +31,7 @@ class LinkOccurence { range: { startLineNumber: link.range.startLineNumber, startColumn: link.range.startColumn, - endLineNumber: link.range.startLineNumber, + endLineNumber: link.range.endLineNumber, endColumn: link.range.endColumn }, options: LinkOccurence._getOptions(link, false) From 0457318795a2ccaa92ca365da0aa04a6a9c2c76e Mon Sep 17 00:00:00 2001 From: isidor Date: Mon, 31 Oct 2016 16:04:21 +0100 Subject: [PATCH 238/242] Provide workbench.action.closePanel for keybindings fixes #14674 --- src/vs/workbench/browser/parts/panel/panelPart.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/panel/panelPart.ts b/src/vs/workbench/browser/parts/panel/panelPart.ts index 207a1196226..5e80429e6b6 100644 --- a/src/vs/workbench/browser/parts/panel/panelPart.ts +++ b/src/vs/workbench/browser/parts/panel/panelPart.ts @@ -112,7 +112,7 @@ export class PanelPart extends CompositePart implements IPanelService { class ClosePanelAction extends Action { static ID = 'workbench.action.closePanel'; - static LABEL = nls.localize('closePanel', "Close"); + static LABEL = nls.localize('closePanel', "Close Panel"); constructor( id: string, @@ -205,3 +205,4 @@ let actionRegistry = Registry.as(WorkbenchExtensions.W actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(TogglePanelAction, TogglePanelAction.ID, TogglePanelAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_J }), 'View: Toggle Panel Visibility', nls.localize('view', "View")); actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(FocusPanelAction, FocusPanelAction.ID, FocusPanelAction.LABEL), 'View: Focus into Panel', nls.localize('view', "View")); actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ToggleMaximizedPanelAction, ToggleMaximizedPanelAction.ID, ToggleMaximizedPanelAction.LABEL), 'View: Toggle Maximized Panel', nls.localize('view', "View")); +actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ClosePanelAction, ClosePanelAction.ID, ClosePanelAction.LABEL), 'View: Close Panel', nls.localize('view', "View")); From 95536e6678282c1ba870eedb5eedee761fc5c4b3 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 16:08:48 +0100 Subject: [PATCH 239/242] debt - move error handler code --- src/vs/workbench/api/node/extHost.api.impl.ts | 8 -------- src/vs/workbench/node/extensionHostMain.ts | 6 +++++- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 438e93d2801..5731355e259 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -55,8 +55,6 @@ export interface IExtensionApiFactory { */ export function createApiFactory(initDataConfiguration: IInitConfiguration, initTelemetryInfo: ITelemetryInfo, threadService: IThreadService, extensionService: ExtHostExtensionService, contextService: IWorkspaceContextService): IExtensionApiFactory { - - // Addressable instances const col = new InstanceCollection(); const extHostHeapService = col.define(ExtHostContext.ExtHostHeapService).set(new ExtHostHeapService()); @@ -81,12 +79,6 @@ export function createApiFactory(initDataConfiguration: IInitConfiguration, init const extHostWorkspace = new ExtHostWorkspace(threadService, workspacePath); const extHostLanguages = new ExtHostLanguages(threadService); - // Error forwarding - const mainThreadErrors = threadService.get(MainContext.MainThreadErrors); - errors.setUnexpectedErrorHandler((err) => { - mainThreadErrors.onUnexpectedExtHostError(errors.transformErrorForSerialization(err)); - }); - // Register API-ish commands ExtHostApiCommands.register(extHostCommands); diff --git a/src/vs/workbench/node/extensionHostMain.ts b/src/vs/workbench/node/extensionHostMain.ts index f7cfcd91e89..de324f04d75 100644 --- a/src/vs/workbench/node/extensionHostMain.ts +++ b/src/vs/workbench/node/extensionHostMain.ts @@ -17,7 +17,7 @@ import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionS import { ExtHostThreadService } from 'vs/workbench/services/thread/common/extHostThreadService'; import { RemoteTelemetryService } from 'vs/workbench/api/node/extHostTelemetry'; import { IWorkspaceContextService, WorkspaceContextService } from 'vs/platform/workspace/common/workspace'; -import { IInitData, IEnvironment } from 'vs/workbench/api/node/extHost.protocol'; +import { IInitData, IEnvironment, MainContext } from 'vs/workbench/api/node/extHost.protocol'; import * as errors from 'vs/base/common/errors'; const nativeExit = process.exit.bind(process); @@ -54,6 +54,10 @@ export class ExtensionHostMain { this._extensionService = new ExtHostExtensionService(initData.extensions, threadService, telemetryService, { _serviceBrand: 'optionalArgs', workspaceStoragePath }); + // Error forwarding + const mainThreadErrors = threadService.get(MainContext.MainThreadErrors); + errors.setUnexpectedErrorHandler(err => mainThreadErrors.onUnexpectedExtHostError(errors.transformErrorForSerialization(err))); + // Create the ext host API const factory = createApiFactory(initData.configuration, initData.telemetryInfo, threadService, this._extensionService, this._contextService); defineAPI(factory, this._extensionService); From 53df546a67a093bb94c0a6ceb979ace42c4135d6 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 16:17:23 +0100 Subject: [PATCH 240/242] debt - don't use bind because it hinders proper typechecking --- src/vs/workbench/api/node/extHost.api.impl.ts | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 5731355e259..05f5d784adb 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -214,30 +214,34 @@ export function createApiFactory(initDataConfiguration: IInitConfiguration, init createTextEditorDecorationType(options: vscode.DecorationRenderOptions): vscode.TextEditorDecorationType { return extHostEditors.createTextEditorDecorationType(options); }, - onDidChangeActiveTextEditor: extHostEditors.onDidChangeActiveTextEditor.bind(extHostEditors), + onDidChangeActiveTextEditor(listener, thisArg?, disposables?) { + return extHostEditors.onDidChangeActiveTextEditor(listener, thisArg, disposables); + }, onDidChangeVisibleTextEditors(listener, thisArg, disposables) { return extHostEditors.onDidChangeVisibleTextEditors(listener, thisArg, disposables); }, - onDidChangeTextEditorSelection: (listener: (e: vscode.TextEditorSelectionChangeEvent) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) => { + onDidChangeTextEditorSelection(listener: (e: vscode.TextEditorSelectionChangeEvent) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) { return extHostEditors.onDidChangeTextEditorSelection(listener, thisArgs, disposables); }, - onDidChangeTextEditorOptions: (listener: (e: vscode.TextEditorOptionsChangeEvent) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) => { + onDidChangeTextEditorOptions(listener: (e: vscode.TextEditorOptionsChangeEvent) => any, thisArgs?: any, disposables?: extHostTypes.Disposable[]) { return extHostEditors.onDidChangeTextEditorOptions(listener, thisArgs, disposables); }, onDidChangeTextEditorViewColumn(listener, thisArg?, disposables?) { return extHostEditors.onDidChangeTextEditorViewColumn(listener, thisArg, disposables); }, - onDidCloseTerminal: extHostTerminalService.onDidCloseTerminal.bind(extHostTerminalService), - showInformationMessage: (message, ...items) => { + onDidCloseTerminal(listener, thisArg?, disposables?) { + return extHostTerminalService.onDidCloseTerminal(listener, thisArg, disposables); + }, + showInformationMessage(message, ...items) { return extHostMessageService.showMessage(Severity.Info, message, items); }, - showWarningMessage: (message, ...items) => { + showWarningMessage(message, ...items) { return extHostMessageService.showMessage(Severity.Warning, message, items); }, - showErrorMessage: (message, ...items) => { + showErrorMessage(message, ...items) { return extHostMessageService.showMessage(Severity.Error, message, items); }, - showQuickPick: (items: any, options: vscode.QuickPickOptions, token?: vscode.CancellationToken) => { + showQuickPick(items: any, options: vscode.QuickPickOptions, token?: vscode.CancellationToken) { return extHostQuickOpen.showQuickPick(items, options, token); }, showInputBox(options?: vscode.InputBoxOptions, token?: vscode.CancellationToken) { From c510d53da79f7184038378f511b7459321f5b217 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 31 Oct 2016 17:03:32 +0100 Subject: [PATCH 241/242] sample for vscode.proposed.d.ts and implementation --- .../platform/extensions/common/extensions.ts | 1 + src/vs/vscode.proposed.d.ts | 14 +++++++++++++ src/vs/workbench/api/node/extHost.api.impl.ts | 20 ++++++++++++++++++- src/vs/workbench/node/extensionPoints.ts | 1 + .../debug/test/node/debugAdapter.test.ts | 2 +- 5 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 src/vs/vscode.proposed.d.ts diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts index c47facfc403..e3b96a680ed 100644 --- a/src/vs/platform/extensions/common/extensions.ts +++ b/src/vs/platform/extensions/common/extensions.ts @@ -23,6 +23,7 @@ export interface IExtensionDescription { }; readonly main?: string; readonly contributes?: { [point: string]: any; }; + readonly enableProposedApi: boolean; } export const IExtensionService = createDecorator('extensionService'); diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts new file mode 100644 index 00000000000..08e11e65f46 --- /dev/null +++ b/src/vs/vscode.proposed.d.ts @@ -0,0 +1,14 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +// This is the place for API experiments and proposal. + +declare module 'vscode' { + + export namespace window { + + export function sampleFunction(): Thenable; + } +} \ No newline at end of file diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 05f5d784adb..0ade921823e 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -50,6 +50,16 @@ export interface IExtensionApiFactory { (extension: IExtensionDescription): typeof vscode; } +function proposedApiFunction(extension: IExtensionDescription, fn: T): T { + if (extension.enableProposedApi) { + return fn; + } else { + return (() => { + throw new Error(`${extension.id} cannot access proposed api`); + }); + } +} + /** * This method instantiates and returns the extension API surface */ @@ -84,6 +94,10 @@ export function createApiFactory(initDataConfiguration: IInitConfiguration, init return function (extension: IExtensionDescription): typeof vscode { + if (extension.enableProposedApi) { + console.warn(`${extension.name} (${extension.id}) uses PROPOSED API which is subject to change and removal without notice`); + } + // namespace: commands const commands: typeof vscode.commands = { registerCommand(id: string, command: (...args: any[]) => T | Thenable, thisArgs?: any): vscode.Disposable { @@ -258,7 +272,11 @@ export function createApiFactory(initDataConfiguration: IInitConfiguration, init }, createTerminal(name?: string, shellPath?: string, shellArgs?: string[]): vscode.Terminal { return extHostTerminalService.createTerminal(name, shellPath, shellArgs); - } + }, + // proposed API + sampleFunction: proposedApiFunction(extension, () => { + return extHostMessageService.showMessage(Severity.Info, 'Hello Proposed Api!', []); + }) }; // namespace: workspace diff --git a/src/vs/workbench/node/extensionPoints.ts b/src/vs/workbench/node/extensionPoints.ts index 8e6f8d8e39e..94b95832ba5 100644 --- a/src/vs/workbench/node/extensionPoints.ts +++ b/src/vs/workbench/node/extensionPoints.ts @@ -211,6 +211,7 @@ class ExtensionManifestValidator extends ExtensionManifestHandler { vscode: string; }; main?: string; + enableProposedApi: boolean; } let extensionDescription = _extensionDescription; extensionDescription.isBuiltin = this._isBuiltin; diff --git a/src/vs/workbench/parts/debug/test/node/debugAdapter.test.ts b/src/vs/workbench/parts/debug/test/node/debugAdapter.test.ts index 426a1052499..07133c7514d 100644 --- a/src/vs/workbench/parts/debug/test/node/debugAdapter.test.ts +++ b/src/vs/workbench/parts/debug/test/node/debugAdapter.test.ts @@ -49,7 +49,7 @@ suite('Debug - Adapter', () => { }; setup(() => { - adapter = new Adapter(rawAdapter, { extensionFolderPath, id: 'adapter', name: 'myAdapter', version: '1.0.0', publisher: 'vscode', isBuiltin: false, engines: null }, null, null, null); + adapter = new Adapter(rawAdapter, { extensionFolderPath, id: 'adapter', name: 'myAdapter', version: '1.0.0', publisher: 'vscode', isBuiltin: false, engines: null, enableProposedApi: false }, null, null, null); }); teardown(() => { From 4482704deb34590b1599bfe20b6cdfe4268fe775 Mon Sep 17 00:00:00 2001 From: Christof Marti Date: Mon, 31 Oct 2016 11:48:40 -0700 Subject: [PATCH 242/242] Improve robustness (#13854) --- src/vs/workbench/services/search/node/fileSearch.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/services/search/node/fileSearch.ts b/src/vs/workbench/services/search/node/fileSearch.ts index 485896d1e87..6d8595e7fad 100644 --- a/src/vs/workbench/services/search/node/fileSearch.ts +++ b/src/vs/workbench/services/search/node/fileSearch.ts @@ -147,7 +147,7 @@ export class FileWalker { // For each root folder flow.parallel(rootFolders, (rootFolder: string, rootFolderDone: (err?: Error) => void) => { - traverse.call(this, rootFolder, onResult, (err?: Error) => { + this.call(traverse, this, rootFolder, onResult, (err?: Error) => { if (err) { if (isNodeTraversal) { rootFolderDone(err); @@ -168,6 +168,14 @@ export class FileWalker { }); } + private call(fun: Function, that: any, ...args: any[]): void { + try { + fun.apply(that, args); + } catch (e) { + args[args.length - 1](e); + } + } + private findTraversal(rootFolder: string, onResult: (result: IRawFileMatch) => void, cb: (err?: Error) => void): void { const isMac = platform.isMacintosh; let done = (err?: Error) => {