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/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index a54b3b1f226..33cae599a0a 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -39,8 +39,8 @@ const nodeModules = ['electron', 'original-fs'] // Build const builtInExtensions = [ - { name: 'ms-vscode.node-debug', version: '1.7.5' }, - { name: 'ms-vscode.node-debug2', version: '0.1.1' } + { name: 'ms-vscode.node-debug', version: '1.7.8' }, + { name: 'ms-vscode.node-debug2', version: '1.7.2' } ]; const vscodeEntryPoints = _.flatten([ 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')) 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/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/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/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/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/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); } } 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 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..b8cb5129507 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)", - "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)" } }, { "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)", @@ -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.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)", - "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)" } }, { "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)", - "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)" } }, { "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)", @@ -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.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)", - "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)" } } ] \ 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 b783ff3377a..67f8386825b 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,27 +421,27 @@ "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", - "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,18 +452,18 @@ }, { "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)", - "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": "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)", @@ -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)" } }, { @@ -771,18 +771,18 @@ }, { "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)", - "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)" } }, { @@ -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)", - "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)" } }, { "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)", @@ -1180,11 +1180,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)", - "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)" } }, { "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)", - "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)" } }, { "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)", @@ -1312,11 +1312,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)", - "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)" } }, { "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)", - "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)" } }, { "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)", @@ -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)" } }, { @@ -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)", @@ -2159,11 +2159,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)", - "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)" } }, { @@ -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/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..e8405497651 100644 --- a/extensions/ini/package.json +++ b/extensions/ini/package.json @@ -6,15 +6,25 @@ "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": "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.plist" + "scopeName": "source.properties", + "path": "./syntaxes/properties.plist" + },{ + "language": "properties", + "scopeName": "source.properties", + "path": "./syntaxes/properties.plist" }] } } diff --git a/extensions/ini/language-configuration.json b/extensions/ini/properties.language-configuration.json similarity index 100% rename from extensions/ini/language-configuration.json rename to extensions/ini/properties.language-configuration.json diff --git a/extensions/ini/syntaxes/Ini.plist b/extensions/ini/syntaxes/properties.plist similarity index 99% rename from extensions/ini/syntaxes/Ini.plist rename to extensions/ini/syntaxes/properties.plist index 86606eea259..11436566bd5 100644 --- a/extensions/ini/syntaxes/Ini.plist +++ b/extensions/ini/syntaxes/properties.plist @@ -174,7 +174,7 @@ scopeName - source.ini + source.properties uuid 77DC23B6-8A90-11D9-BAA4-000A9584EC8C diff --git a/extensions/jade/test/colorize-results/test_jade.json b/extensions/jade/test/colorize-results/test_jade.json index 6fa35960d86..01aa7f049ba 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)" } }, { @@ -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)", @@ -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/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.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", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.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", + "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.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", + "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 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)" @@ -1640,87 +1640,87 @@ }, { "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.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", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.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", + "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.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", + "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.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-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", + "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.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", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.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", + "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.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", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.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", + "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.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", + "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 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)" @@ -1772,18 +1772,18 @@ }, { "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.vscode-theme-defaults-themes-dark_plus-json .token.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 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": "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,40 +1805,40 @@ }, { "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.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", + "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.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", + "t": "attribute-name.block.children.expr.function.js.jsx.member.meta.object.objectliteral.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": "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,18 +1860,18 @@ }, { "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.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": "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,76 +1882,76 @@ }, { "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.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", + "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.meta.tag rgb(128, 128, 128)", - "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.meta.tag rgb(128, 0, 0)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-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", + "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.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", + "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.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", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.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", + "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.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", + "t": "block.children.expr.function.js.jsx.member.meta.object.objectliteral.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", + "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.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.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)", @@ -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/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'] } }; }); 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/markdown/test/colorize-results/test_md.json b/extensions/markdown/test/colorize-results/test_md.json index b9292e60bf3..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)" } }, { @@ -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,18 +1035,18 @@ }, { "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)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.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": "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)", @@ -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)" } }, { @@ -1222,18 +1222,18 @@ }, { "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)", - "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.meta.tag rgb(128, 128, 128)", - "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.meta.tag rgb(128, 0, 0)", - "hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.meta.tag rgb(128, 128, 128)" + "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.punctuation.definition.tag rgb(128, 0, 0)", + "dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.punctuation.definition.tag rgb(128, 128, 128)", + "light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.punctuation.definition.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/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/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/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/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/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/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 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 +} 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 @@ ["{", "}"], ["[", "]"], ["(", ")"], - ["<", ">"], ["'", "'"], ["\"", "\""], ["`", "`"] 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 baf7c87a425..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-insiders.20161014" + "typescript": "2.0.6" }, "scripts": { "postinstall": "node ./bin/postinstall", @@ -81,10 +81,10 @@ "default": null, "description": "%typescript.tsdk.desc%" }, - "typescript.experimentalAutomaticTypeAcquisition": { + "typescript.disableAutomaticTypeAcquisition": { "type": "boolean", "default": false, - "description": "%typescript.experimentalAutomaticTypeAcquisition%" + "description": "%typescript.disableAutomaticTypeAcquisition%" }, "typescript.check.workspaceVersion": { "type": "boolean", diff --git a/extensions/typescript/package.nls.json b/extensions/typescript/package.nls.json index 79d48c77214..51b9649ab91 100644 --- a/extensions/typescript/package.nls.json +++ b/extensions/typescript/package.nls.json @@ -1,11 +1,11 @@ { - "typescript.reloadProjects.title": "Reload TypeScript Project.", - "javascript.reloadProjects.title": "Reload JavaScript Project.", - "configuration.typescript": "TypeScript.", + "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.", "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/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/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); } 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 425bd95a837..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 = { @@ -456,7 +401,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.disableAutomaticTypeAcquisition', false)) { args.push('--disableAutomaticTypingAcquisition'); } } 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": "(?", "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/typescript/test/colorize-results/test-function-inv_ts.json b/extensions/typescript/test/colorize-results/test-function-inv_ts.json index d3d2218800a..1cee8de1acd 100644 --- a/extensions/typescript/test/colorize-results/test-function-inv_ts.json +++ b/extensions/typescript/test/colorize-results/test-function-inv_ts.json @@ -100,7 +100,7 @@ }, { "c": "(", - "t": "brace.meta.round.ts", + "t": "brace.expr.meta.new.round.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -111,7 +111,7 @@ }, { "c": "row", - "t": "other.readwrite.ts.variable", + "t": "expr.new.other.readwrite.ts.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)", @@ -122,7 +122,7 @@ }, { "c": ",", - "t": "comma.punctuation.separator.ts", + "t": "comma.expr.new.punctuation.separator.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -133,7 +133,7 @@ }, { "c": " ", - "t": "", + "t": "expr.new.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -144,7 +144,7 @@ }, { "c": "col", - "t": "other.readwrite.ts.variable", + "t": "expr.new.other.readwrite.ts.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)", @@ -155,7 +155,7 @@ }, { "c": ",", - "t": "comma.punctuation.separator.ts", + "t": "comma.expr.new.punctuation.separator.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -166,7 +166,7 @@ }, { "c": " ", - "t": "", + "t": "expr.new.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -177,7 +177,7 @@ }, { "c": "false", - "t": "boolean.constant.false.language.ts", + "t": "boolean.constant.expr.false.language.new.ts", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.language rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.language rgb(0, 0, 255)", @@ -187,7 +187,18 @@ } }, { - "c": ")))", + "c": ")", + "t": "brace.expr.meta.new.round.ts", + "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)" + } + }, + { + "c": "))", "t": "brace.meta.round.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", diff --git a/extensions/typescript/test/colorize-results/test-issue5566_ts.json b/extensions/typescript/test/colorize-results/test-issue5566_ts.json index ae502039842..653a8d604ab 100644 --- a/extensions/typescript/test/colorize-results/test-issue5566_ts.json +++ b/extensions/typescript/test/colorize-results/test-issue5566_ts.json @@ -254,7 +254,7 @@ }, { "c": "{", - "t": "block.definition.expr.function.meta.object-literal.punctuation.ts.var", + "t": "block.definition.expr.function.meta.objectliteral.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -265,7 +265,7 @@ }, { "c": " ", - "t": "block.expr.function.meta.object-literal.ts.var", + "t": "block.expr.function.meta.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -276,7 +276,7 @@ }, { "c": "'", - "t": "begin.block.definition.expr.function.key.member.meta.object.object-literal.punctuation.quoted.single.string.ts.var", + "t": "begin.block.definition.expr.function.key.member.meta.object.object-literal.objectliteral.punctuation.quoted.single.string.ts.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)", @@ -287,7 +287,7 @@ }, { "c": "bar", - "t": "block.expr.function.key.member.meta.object.object-literal.quoted.single.string.ts.var", + "t": "block.expr.function.key.member.meta.object.object-literal.objectliteral.quoted.single.string.ts.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)", @@ -298,7 +298,7 @@ }, { "c": "'", - "t": "block.definition.end.expr.function.key.member.meta.object.object-literal.punctuation.quoted.single.string.ts.var", + "t": "block.definition.end.expr.function.key.member.meta.object.object-literal.objectliteral.punctuation.quoted.single.string.ts.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)", @@ -309,7 +309,7 @@ }, { "c": ":", - "t": "block.expr.function.key.key-value.member.meta.object.object-literal.punctuation.separator.ts.var", + "t": "block.expr.function.key.key-value.member.meta.object.object-literal.objectliteral.punctuation.separator.ts.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)", @@ -320,7 +320,7 @@ }, { "c": " ", - "t": "block.expr.function.member.meta.object.object-literal.ts.var", + "t": "block.expr.function.member.meta.object.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -331,7 +331,7 @@ }, { "c": "'", - "t": "begin.block.definition.expr.function.member.meta.object.object-literal.punctuation.quoted.single.string.ts.var", + "t": "begin.block.definition.expr.function.member.meta.object.objectliteral.punctuation.quoted.single.string.ts.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)", @@ -342,7 +342,7 @@ }, { "c": "baz", - "t": "block.expr.function.member.meta.object.object-literal.quoted.single.string.ts.var", + "t": "block.expr.function.member.meta.object.objectliteral.quoted.single.string.ts.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)", @@ -353,7 +353,7 @@ }, { "c": "'", - "t": "block.definition.end.expr.function.member.meta.object.object-literal.punctuation.quoted.single.string.ts.var", + "t": "block.definition.end.expr.function.member.meta.object.objectliteral.punctuation.quoted.single.string.ts.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)", @@ -364,7 +364,7 @@ }, { "c": " ", - "t": "block.expr.function.member.meta.object.object-literal.ts.var", + "t": "block.expr.function.member.meta.object.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -375,7 +375,7 @@ }, { "c": "}", - "t": "block.definition.expr.function.meta.object-literal.punctuation.ts.var", + "t": "block.definition.expr.function.meta.objectliteral.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", diff --git a/extensions/typescript/test/colorize-results/test-keywords_ts.json b/extensions/typescript/test/colorize-results/test-keywords_ts.json index dc8a84515f7..bf083fb3227 100644 --- a/extensions/typescript/test/colorize-results/test-keywords_ts.json +++ b/extensions/typescript/test/colorize-results/test-keywords_ts.json @@ -177,7 +177,7 @@ }, { "c": "(", - "t": "brace.expr.meta.round.ts.var", + "t": "brace.expr.meta.new.round.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -188,7 +188,7 @@ }, { "c": "'", - "t": "begin.definition.expr.meta.punctuation.quoted.single.string.ts.var", + "t": "begin.definition.expr.meta.new.punctuation.quoted.single.string.ts.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)", @@ -199,7 +199,7 @@ }, { "c": "'", - "t": "definition.end.expr.meta.punctuation.quoted.single.string.ts.var", + "t": "definition.end.expr.meta.new.punctuation.quoted.single.string.ts.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)", @@ -210,7 +210,7 @@ }, { "c": ")", - "t": "brace.expr.meta.round.ts.var", + "t": "brace.expr.meta.new.round.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", diff --git a/extensions/typescript/test/colorize-results/test-object-literals_ts.json b/extensions/typescript/test/colorize-results/test-object-literals_ts.json index 459686ee472..84d8cb35aed 100644 --- a/extensions/typescript/test/colorize-results/test-object-literals_ts.json +++ b/extensions/typescript/test/colorize-results/test-object-literals_ts.json @@ -67,7 +67,7 @@ }, { "c": "{", - "t": "block.definition.expr.meta.object-literal.punctuation.ts.var", + "t": "block.definition.expr.meta.objectliteral.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -78,7 +78,7 @@ }, { "c": "\t", - "t": "expr.meta.object-literal.ts.var", + "t": "expr.meta.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -89,7 +89,7 @@ }, { "c": "k", - "t": "expr.key.member.meta.object.object-literal.ts.var", + "t": "expr.key.member.meta.object.object-literal.objectliteral.ts.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)", @@ -100,7 +100,7 @@ }, { "c": ":", - "t": "expr.key.key-value.member.meta.object.object-literal.punctuation.separator.ts.var", + "t": "expr.key.key-value.member.meta.object.object-literal.objectliteral.punctuation.separator.ts.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)", @@ -111,7 +111,7 @@ }, { "c": " ", - "t": "expr.member.meta.object.object-literal.ts.var", + "t": "expr.member.meta.object.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -122,7 +122,7 @@ }, { "c": "{", - "t": "block.definition.expr.member.meta.object.object-literal.punctuation.ts.var", + "t": "block.definition.expr.member.meta.object.objectliteral.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -133,7 +133,7 @@ }, { "c": "\t\t", - "t": "expr.member.meta.object.object-literal.ts.var", + "t": "expr.member.meta.object.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -144,7 +144,7 @@ }, { "c": "k1", - "t": "expr.key.member.meta.object.object-literal.ts.var", + "t": "expr.key.member.meta.object.object-literal.objectliteral.ts.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)", @@ -155,7 +155,7 @@ }, { "c": ":", - "t": "expr.key.key-value.member.meta.object.object-literal.punctuation.separator.ts.var", + "t": "expr.key.key-value.member.meta.object.object-literal.objectliteral.punctuation.separator.ts.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)", @@ -166,7 +166,7 @@ }, { "c": " ", - "t": "expr.member.meta.object.object-literal.ts.var", + "t": "expr.member.meta.object.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -177,7 +177,7 @@ }, { "c": "s", - "t": "expr.member.meta.object.object-literal.other.readwrite.ts.var.variable", + "t": "expr.member.meta.object.objectliteral.other.readwrite.ts.var.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)", @@ -188,7 +188,7 @@ }, { "c": ",", - "t": "comma.expr.member.meta.object.object-literal.punctuation.separator.ts.var", + "t": "comma.expr.member.meta.object.objectliteral.punctuation.separator.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -199,7 +199,7 @@ }, { "c": "\t\t", - "t": "expr.member.meta.object.object-literal.ts.var", + "t": "expr.member.meta.object.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -210,7 +210,7 @@ }, { "c": "k2", - "t": "expr.key.member.meta.object.object-literal.ts.var", + "t": "expr.key.member.meta.object.object-literal.objectliteral.ts.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)", @@ -221,7 +221,7 @@ }, { "c": ":", - "t": "expr.key.key-value.member.meta.object.object-literal.punctuation.separator.ts.var", + "t": "expr.key.key-value.member.meta.object.object-literal.objectliteral.punctuation.separator.ts.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)", @@ -232,7 +232,7 @@ }, { "c": " ", - "t": "expr.member.meta.object.object-literal.ts.var", + "t": "expr.member.meta.object.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -243,7 +243,7 @@ }, { "c": "1", - "t": "constant.decimal.expr.member.meta.numeric.object.object-literal.ts.var", + "t": "constant.decimal.expr.member.meta.numeric.object.objectliteral.ts.var", "r": { "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)", @@ -254,7 +254,7 @@ }, { "c": "\t", - "t": "expr.member.meta.object.object-literal.ts.var", + "t": "expr.member.meta.object.objectliteral.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -265,7 +265,7 @@ }, { "c": "}", - "t": "block.definition.expr.member.meta.object.object-literal.punctuation.ts.var", + "t": "block.definition.expr.member.meta.object.objectliteral.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -276,7 +276,7 @@ }, { "c": "}", - "t": "block.definition.expr.meta.object-literal.punctuation.ts.var", + "t": "block.definition.expr.meta.objectliteral.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", diff --git a/extensions/typescript/test/colorize-results/test_ts.json b/extensions/typescript/test/colorize-results/test_ts.json index a7e6685e625..d1c2392bb17 100644 --- a/extensions/typescript/test/colorize-results/test_ts.json +++ b/extensions/typescript/test/colorize-results/test_ts.json @@ -5160,7 +5160,7 @@ }, { "c": "(", - "t": "block.brace.class.declaration.expr.meta.method.round.ts.var", + "t": "block.brace.class.declaration.expr.meta.method.new.round.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -5171,7 +5171,7 @@ }, { "c": "cell", - "t": "block.class.declaration.expr.meta.method.object.other.ts.var.variable", + "t": "block.class.declaration.expr.meta.method.new.object.other.ts.var.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)", @@ -5182,7 +5182,7 @@ }, { "c": ".", - "t": "accessor.block.class.declaration.expr.meta.method.punctuation.ts.var", + "t": "accessor.block.class.declaration.expr.meta.method.new.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -5193,7 +5193,7 @@ }, { "c": "row", - "t": "block.class.declaration.expr.meta.method.other.property.ts.var.variable", + "t": "block.class.declaration.expr.meta.method.new.other.property.ts.var.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)", @@ -5204,7 +5204,7 @@ }, { "c": ",", - "t": "block.class.comma.declaration.expr.meta.method.punctuation.separator.ts.var", + "t": "block.class.comma.declaration.expr.meta.method.new.punctuation.separator.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -5215,7 +5215,7 @@ }, { "c": " ", - "t": "block.class.declaration.expr.meta.method.ts.var", + "t": "block.class.declaration.expr.meta.method.new.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -5226,7 +5226,7 @@ }, { "c": "cell", - "t": "block.class.declaration.expr.meta.method.object.other.ts.var.variable", + "t": "block.class.declaration.expr.meta.method.new.object.other.ts.var.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)", @@ -5237,7 +5237,7 @@ }, { "c": ".", - "t": "accessor.block.class.declaration.expr.meta.method.punctuation.ts.var", + "t": "accessor.block.class.declaration.expr.meta.method.new.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -5248,7 +5248,7 @@ }, { "c": "col", - "t": "block.class.declaration.expr.meta.method.other.property.ts.var.variable", + "t": "block.class.declaration.expr.meta.method.new.other.property.ts.var.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)", @@ -5259,7 +5259,7 @@ }, { "c": ",", - "t": "block.class.comma.declaration.expr.meta.method.punctuation.separator.ts.var", + "t": "block.class.comma.declaration.expr.meta.method.new.punctuation.separator.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -5270,7 +5270,7 @@ }, { "c": " ", - "t": "block.class.declaration.expr.meta.method.ts.var", + "t": "block.class.declaration.expr.meta.method.new.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -5281,7 +5281,7 @@ }, { "c": "cell", - "t": "block.class.declaration.expr.meta.method.object.other.ts.var.variable", + "t": "block.class.declaration.expr.meta.method.new.object.other.ts.var.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)", @@ -5292,7 +5292,7 @@ }, { "c": ".", - "t": "accessor.block.class.declaration.expr.meta.method.punctuation.ts.var", + "t": "accessor.block.class.declaration.expr.meta.method.new.punctuation.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -5303,7 +5303,7 @@ }, { "c": "live", - "t": "block.class.declaration.expr.meta.method.other.property.ts.var.variable", + "t": "block.class.declaration.expr.meta.method.new.other.property.ts.var.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)", @@ -5314,7 +5314,7 @@ }, { "c": ")", - "t": "block.brace.class.declaration.expr.meta.method.round.ts.var", + "t": "block.brace.class.declaration.expr.meta.method.new.round.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -9230,7 +9230,7 @@ }, { "c": "(", - "t": "block.brace.class.declaration.meta.method.round.ts", + "t": "block.brace.class.declaration.expr.meta.method.new.round.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -9241,7 +9241,7 @@ }, { "c": "row", - "t": "block.class.declaration.meta.method.other.readwrite.ts.variable", + "t": "block.class.declaration.expr.meta.method.new.other.readwrite.ts.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)", @@ -9252,7 +9252,7 @@ }, { "c": ",", - "t": "block.class.comma.declaration.meta.method.punctuation.separator.ts", + "t": "block.class.comma.declaration.expr.meta.method.new.punctuation.separator.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -9263,7 +9263,7 @@ }, { "c": " ", - "t": "block.class.declaration.meta.method.ts", + "t": "block.class.declaration.expr.meta.method.new.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -9274,7 +9274,7 @@ }, { "c": "col", - "t": "block.class.declaration.meta.method.other.readwrite.ts.variable", + "t": "block.class.declaration.expr.meta.method.new.other.readwrite.ts.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)", @@ -9285,7 +9285,7 @@ }, { "c": ",", - "t": "block.class.comma.declaration.meta.method.punctuation.separator.ts", + "t": "block.class.comma.declaration.expr.meta.method.new.punctuation.separator.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -9296,7 +9296,7 @@ }, { "c": " ", - "t": "block.class.declaration.meta.method.ts", + "t": "block.class.declaration.expr.meta.method.new.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", @@ -9307,7 +9307,7 @@ }, { "c": "false", - "t": "block.boolean.class.constant.declaration.false.language.meta.method.ts", + "t": "block.boolean.class.constant.declaration.expr.false.language.meta.method.new.ts", "r": { "dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.language rgb(86, 156, 214)", "light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.language rgb(0, 0, 255)", @@ -9317,7 +9317,18 @@ } }, { - "c": ")))", + "c": ")", + "t": "block.brace.class.declaration.expr.meta.method.new.round.ts", + "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)" + } + }, + { + "c": "))", "t": "block.brace.class.declaration.meta.method.round.ts", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", @@ -11386,7 +11397,7 @@ }, { "c": "()", - "t": "brace.expr.meta.round.ts.var", + "t": "brace.expr.meta.new.round.ts.var", "r": { "dark_plus": ".vs-dark .token rgb(212, 212, 212)", "light_plus": ".vs .token rgb(0, 0, 0)", 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 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/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 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" ] } diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index e19f57e608b..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", @@ -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", @@ -405,14 +405,14 @@ "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.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", @@ -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", diff --git a/package.json b/package.json index 5ae70a24dfe..bb9b77963bc 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "code-oss-dev", - "version": "1.7.0", + "version": "1.8.0", "electronVersion": "1.3.8", - "distro": "d919533e6cd6a495abe667cb3d47bc6ac2a4846b", + "distro": "53e30f0e2907d30c579b0ef07de97c586e6750a4", "author": { "name": "Microsoft Corporation" }, @@ -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" @@ -29,10 +30,10 @@ "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", + "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", "yauzl": "2.3.1" @@ -88,7 +89,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", 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] = []); } 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/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/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); }); 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/base/parts/quickopen/browser/quickOpenWidget.ts b/src/vs/base/parts/quickopen/browser/quickOpenWidget.ts index 1f3b578f1e3..8dff8703ef9 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) { @@ -163,15 +164,18 @@ 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 - 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 +308,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; 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/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/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, 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 bac9eb6334a..16da9162265 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,18 @@ export class WindowsManager implements IWindowsService { })); }); + ipc.on('vscode:showItemInFolder', (event, path: string) => { + this.logService.log('IPC#vscode-showItemInFolder'); + + 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 } }); @@ -564,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 { @@ -1017,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/editor/browser/standalone/standaloneEditor.ts b/src/vs/editor/browser/standalone/standaloneEditor.ts index 6b2bb55b2f8..4ee7a7879e8 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); + } } /** 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/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; } }; 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/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; } } 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(); } diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 776f914c1fd..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()); @@ -849,6 +852,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 a9040b359bd..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({ @@ -310,6 +311,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 +764,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..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, @@ -85,6 +86,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/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/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index 302cc6a1ca4..0074cbe6e8d 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; /** @@ -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. @@ -318,7 +323,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; /** @@ -401,6 +406,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' */ @@ -436,7 +445,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; /** @@ -661,6 +670,7 @@ export class InternalEditorViewOptions { readonly renderIndentGuides: boolean; readonly renderLineHighlight: boolean; readonly scrollbar: InternalEditorScrollbarOptions; + readonly fixedOverflowWidgets: boolean; /** * @internal @@ -691,6 +701,7 @@ export class InternalEditorViewOptions { renderIndentGuides: boolean; renderLineHighlight: boolean; scrollbar: InternalEditorScrollbarOptions; + fixedOverflowWidgets: boolean; }) { this.theme = String(source.theme); this.canUseTranslate3d = Boolean(source.canUseTranslate3d); @@ -717,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[] { @@ -777,6 +789,7 @@ export class InternalEditorViewOptions { && this.renderIndentGuides === other.renderIndentGuides && this.renderLineHighlight === other.renderLineHighlight && this.scrollbar.equals(other.scrollbar) + && this.fixedOverflowWidgets === other.fixedOverflowWidgets ); } @@ -810,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 }; } @@ -847,6 +861,7 @@ export interface IViewConfigurationChangedEvent { readonly renderIndentGuides: boolean; readonly renderLineHighlight: boolean; readonly scrollbar: boolean; + readonly fixedOverflowWidgets: boolean; } export class EditorContribOptions { @@ -861,6 +876,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; @@ -884,6 +900,7 @@ export class EditorContribOptions { suggestOnTriggerCharacters: boolean; acceptSuggestionOnEnter: boolean; snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none'; + emptySelectionClipboard: boolean; tabCompletion: boolean; wordBasedSuggestions: boolean; suggestFontSize: number; @@ -903,6 +920,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; @@ -928,6 +946,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/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); 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 }; }); diff --git a/src/vs/editor/common/services/modeServiceImpl.ts b/src/vs/editor/common/services/modeServiceImpl.ts index 62c374a8c16..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 { 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'; @@ -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: { @@ -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/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); } 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/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); diff --git a/src/vs/editor/contrib/gotoError/browser/gotoError.css b/src/vs/editor/contrib/gotoError/browser/gotoError.css index df43c3ebdd9..a15a8d57380 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,7 @@ } .monaco-editor .marker-widget .descriptioncontainer { - white-space: pre-wrap; + white-space: pre; + -webkit-user-select: text; + user-select: text; } diff --git a/src/vs/editor/contrib/gotoError/browser/gotoError.ts b/src/vs/editor/contrib/gotoError/browser/gotoError.ts index 5ac18c20422..36e62e28c22 100644 --- a/src/vs/editor/contrib/gotoError/browser/gotoError.ts +++ b/src/vs/editor/contrib/gotoError/browser/gotoError.ts @@ -84,14 +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++) { - var pos = { lineNumber: this._markers[i].startLineNumber, column: this._markers[i].startColumn }; - if (position.isBeforeOrEqual(pos)) { + 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) { @@ -110,7 +110,7 @@ class MarkerModel { } if (this._nextIdx === -1) { - this.initIdx(fwd); + this._initIdx(fwd); } else if (fwd) { this._nextIdx += 1; @@ -123,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); } @@ -147,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; } @@ -176,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); }); @@ -329,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; } @@ -393,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); @@ -420,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 }); } } @@ -459,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); 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`; } } 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) 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 97223d0987d..c79eedf21d8 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 { @@ -211,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; @@ -290,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; 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/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); } } 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/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(); } diff --git a/src/vs/editor/contrib/suggest/common/completionModel.ts b/src/vs/editor/contrib/suggest/common/completionModel.ts index c19c0ea5b4c..0442b8ad8e9 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'; @@ -34,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) { @@ -43,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; } @@ -91,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) { + complete.push(item); + } else if (incomplete.indexOf(item.support) < 0) { + incomplete.push(item.support); + } + } + + return { incomplete, complete }; } get stats(): ICompletionStats { @@ -109,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; @@ -122,6 +113,10 @@ export class CompletionModel { const {suggestion, support, container} = item; const filter = support && support.filter || fuzzyContiguousFilter; + // collect those supports that signaled having + // an incomplete result + 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 // differnet word, but in practice not - that's why we cache @@ -154,19 +149,12 @@ 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, word.toLowerCase()); if (score > topScore) { topScore = score; 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) { @@ -176,22 +164,68 @@ 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 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 - highlights.length) + + (CompletionModel._base ** 0) * (CompletionModel._base - notMatching); } } diff --git a/src/vs/editor/contrib/suggest/common/suggest.ts b/src/vs/editor/contrib/suggest/common/suggest.ts index 654ce11e3bc..e428d68bafa 100644 --- a/src/vs/editor/contrib/suggest/common/suggest.ts +++ b/src/vs/editor/contrib/suggest/common/suggest.ts @@ -52,14 +52,18 @@ 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(); // 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 @@ -79,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) { @@ -87,7 +91,7 @@ export function provideSuggestionItems(model: IReadOnlyModel, position: Position fixOverwriteBeforeAfter(suggestion, container); - result.push({ + allSuggestions.push({ position, container, suggestion, @@ -98,7 +102,7 @@ export function provideSuggestionItems(model: IReadOnlyModel, position: Position } } - if (len !== result.length && support !== snippetSuggestSupport) { + if (len !== allSuggestions.length && support !== snippetSuggestSupport) { hasResult = true; } @@ -107,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}, type=${item.suggestion.type}, 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 551f54924ab..a265d1c73e4 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 { @@ -316,16 +316,12 @@ 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); } } - 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(); @@ -361,6 +357,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, @@ -371,30 +372,6 @@ export class SuggestModel implements IDisposable { }).then(null, onUnexpectedError); } - private triggerFromIncomplete(auto: boolean): void { - - this.requestPromise = provideSuggestionItems(this.editor.getModel(), this.editor.getPosition(), - this.editor.getConfiguration().contribInfo.snippetSuggestions, - this.completionModel.incomplete - ).then(items => { - - this.requestPromise = 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)) { @@ -405,6 +382,12 @@ export class SuggestModel implements IDisposable { } else if (this.completionModel) { + if (this.completionModel.incomplete && ctx.column > this.context.column) { + const {complete, incomplete} = this.completionModel.resolveIncompleteInfo(); + this.trigger(this.state === State.Auto, true, incomplete, complete); + return; + } + const auto = this.state === State.Auto; const oldLineContext = this.completionModel.lineContext; let isFrozen = false; 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..58e189f5408 100644 --- a/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts +++ b/src/vs/editor/contrib/suggest/test/common/completionModel.test.ts @@ -74,17 +74,10 @@ 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('complete/incomplete', function () { - assert.equal(model.incomplete.length, 0); + assert.equal(model.incomplete, false); let incompleteModel = new CompletionModel([ createSuggestItem('foo', 3, true), @@ -93,7 +86,7 @@ suite('CompletionModel', function () { leadingLineContent: 'foo', characterCountDelta: 0 }); - assert.equal(incompleteModel.incomplete.length, 1); + assert.equal(incompleteModel.incomplete, true); }); test('replaceIncomplete', function () { @@ -102,16 +95,53 @@ 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 { + + 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'); + + 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'); + + // issue #11423 + 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('-mo', 1, '-ms-ime-mode', '-moz-columns'); }); }); diff --git a/src/vs/editor/node/textMate/TMSnippets.ts b/src/vs/editor/node/textMate/TMSnippets.ts index 76661b2bd98..40273eca78d 100644 --- a/src/vs/editor/node/textMate/TMSnippets.ts +++ b/src/vs/editor/node/textMate/TMSnippets.ts @@ -9,17 +9,18 @@ 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'); +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: '' }] }], @@ -55,8 +56,8 @@ export class MainProcessTextMateSnippet { }); } - private _withSnippetContribution(extensionName: string, extensionFolderPath: string, snippet: ISnippetsExtensionPoint, collector: IExtensionMessageCollector): void { - if (!snippet.language || (typeof snippet.language !== 'string')) { + 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 96f738fb8a6..1e0ef0e988f 100644 --- a/src/vs/editor/node/textMate/TMSyntax.ts +++ b/src/vs/editor/node/textMate/TMSyntax.ts @@ -8,8 +8,9 @@ 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 { 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'; @@ -17,16 +18,18 @@ 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; scopeName: string; path: string; + embeddedLanguages: { [scopeName: string]: string; }; injectTo: string[]; } // 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', [languagesExtPoint], { description: nls.localize('vscode.extension.contributes.grammars', 'Contributes textmate tokenizers.'), type: 'array', defaultSnippets: [{ body: [{ language: '{{id}}', scopeName: 'source.{{id}}', path: './syntaxes/{{id}}.tmLanguage.' }] }], @@ -46,6 +49,10 @@ let grammarsExtPoint = ExtensionsRegistry.registerExtensionPoint 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 @@ -162,7 +182,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; @@ -179,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) { @@ -187,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]; @@ -216,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) @@ -319,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 { @@ -389,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 { @@ -459,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/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: [ 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 + }; + } + +}); + 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]); diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index dd165cd15a0..0329b1eb5c0 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; /** @@ -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. @@ -1180,7 +1185,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; /** @@ -1262,6 +1267,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' */ @@ -1292,7 +1301,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; /** @@ -1416,6 +1425,7 @@ declare module monaco.editor { readonly renderIndentGuides: boolean; readonly renderLineHighlight: boolean; readonly scrollbar: InternalEditorScrollbarOptions; + readonly fixedOverflowWidgets: boolean; } export interface IViewConfigurationChangedEvent { @@ -1444,6 +1454,7 @@ declare module monaco.editor { readonly renderIndentGuides: boolean; readonly renderLineHighlight: boolean; readonly scrollbar: boolean; + readonly fixedOverflowWidgets: boolean; } export class EditorContribOptions { @@ -1458,6 +1469,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; diff --git a/src/vs/platform/actions/browser/menusExtensionPoint.ts b/src/vs/platform/actions/browser/menusExtensionPoint.ts index 42e12353fdf..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; } @@ -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/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/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts index 3bd7abda4ce..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); } @@ -88,7 +99,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: {} } }], @@ -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 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 { diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts index 9478a8ec766..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', @@ -61,7 +61,8 @@ const options: minimist.Opts = { 'logExtensionHostCommunication', 'disable-extensions', 'list-extensions', - 'show-versions' + 'show-versions', + 'nolazy' ], alias: { help: 'h', @@ -72,7 +73,8 @@ const options: minimist.Opts = { 'new-window': 'n', 'reuse-window': 'r', performance: 'p', - 'disable-extensions': 'disableExtensions' + 'disable-extensions': 'disableExtensions', + 'extensions-dir': 'extensionHomePath' } }; @@ -136,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 f5b019050ba..990d047edb1 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 { @@ -77,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; } @@ -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) { } } diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts index 26a32102fe4..af76fd3bad0 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/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts index d706f3bc5ea..1454d13f0e3 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); } @@ -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,15 +358,43 @@ 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); + 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 []; diff --git a/src/vs/platform/extensions/common/abstractExtensionService.ts b/src/vs/platform/extensions/common/abstractExtensionService.ts index 6fea18a4015..b6b9f4fca70 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, 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 { @@ -59,6 +61,29 @@ export abstract class AbstractExtensionService imp return this._onReady; } + public readExtensionPointContributions(extPoint: IExtensionPoint): TPromise[]> { + return this.onReady().then(() => { + let availableExtensions = this._registry.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 readExtensions(): TPromise { + return this.onReady().then(() => { + return this._registry.getAllExtensionDescriptions(); + }); + } + public getExtensionsStatus(): { [id: string]: IExtensionsStatus } { return null; } @@ -69,15 +94,15 @@ export abstract class AbstractExtensionService imp public activateByEvent(activationEvent: string): TPromise { return this._onReady.then(() => { - ExtensionsRegistry.triggerActivationEventListeners(activationEvent); - let activateExtensions = ExtensionsRegistry.getExtensionDescriptionsForActivationEvent(activationEvent); + onWillActivate.fire(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'); } @@ -96,7 +121,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 @@ -206,3 +231,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/extensions.ts b/src/vs/platform/extensions/common/extensions.ts index 0fdccd1eeeb..e3b96a680ed 100644 --- a/src/vs/platform/extensions/common/extensions.ts +++ b/src/vs/platform/extensions/common/extensions.ts @@ -7,29 +7,23 @@ 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 { - 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; }; -} - -export interface IActivationEventListener { - (): void; -} - -export interface IPointListener { - (desc: IExtensionDescription[]): void; + readonly main?: string; + readonly contributes?: { [point: string]: any; }; + readonly enableProposedApi: boolean; } export const IExtensionService = createDecorator('extensionService'); @@ -44,6 +38,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 +61,11 @@ export interface IExtensionService { */ onReady(): TPromise; + /** + * Read all contributions to an extension point. + */ + readExtensionPointContributions(extPoint: IExtensionPoint): TPromise[]>; + /** * Get information about extensions status. */ @@ -69,10 +78,10 @@ export interface IExtensionsRuntimeService { _serviceBrand: any; /** - * if `includeDisabled` is `true` returns all extensions otherwise - * returns only enabled extensions + * Scans and returns only enabled extensions. + * **NOTE**: This call returns different results based on `setEnablement` calls! */ - getExtensions(includeDisabled?: boolean): TPromise; + getExtensions(): TPromise; /** * Returns `true` if given extension is disabled, otherwise `false`. diff --git a/src/vs/platform/extensions/common/extensionsRegistry.ts b/src/vs/platform/extensions/common/extensionsRegistry.ts index 150095aa14e..a5d19f5bc6a 100644 --- a/src/vs/platform/extensions/common/extensionsRegistry.ts +++ b/src/vs/platform/extensions/common/extensionsRegistry.ts @@ -7,19 +7,18 @@ 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 { 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 interface IExtensionMessageCollector { - error(message: string): void; - warn(message: string): void; - info(message: string): void; -} +const hasOwnProperty = Object.hasOwnProperty; +const schemaRegistry = Registry.as(Extensions.JSONContribution); -class ExtensionMessageCollector implements IExtensionMessageCollector { +export const onWillActivate: Emitter = new Emitter(); + +export class ExtensionMessageCollector { private _messageHandler: (msg: IMessage) => void; private _source: string; @@ -48,80 +47,12 @@ class ExtensionMessageCollector implements IExtensionMessageCollector { public info(message: string): void { this._msg(Severity.Info, message); } - } -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; -} -const hasOwnProperty = Object.hasOwnProperty; -let schemaRegistry = Registry.as(Extensions.JSONContribution); - export interface IExtensionPointUser { description: IExtensionDescription; value: T; - collector: IExtensionMessageCollector; + collector: ExtensionMessageCollector; } export interface IExtensionPointHandler { @@ -133,67 +64,56 @@ export interface IExtensionPoint { setHandler(handler: IExtensionPointHandler): void; } -export interface IExtensionsRegistry { - registerExtensions(extensionDescriptions: IExtensionDescription[]): void; +export class ExtensionPoint implements IExtensionPoint { - getExtensionDescriptionsForActivationEvent(activationEvent: string): IExtensionDescription[]; - getAllExtensionDescriptions(): IExtensionDescription[]; - getExtensionDescription(extensionId: string): IExtensionDescription; - - registerOneTimeActivationEventListener(activationEvent: string, listener: IActivationEventListener): void; - triggerActivationEventListeners(activationEvent: string): void; - - registerExtensionPoint(extensionPoint: string, jsonSchema: IJSONSchema): IExtensionPoint; - handleExtensionPoints(messageHandler: (msg: IMessage) => void): void; -} - -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); + } } } - - const schemaId = 'vscode://schemas/vscode-extensions'; const schema: IJSONSchema = { default: { @@ -228,7 +148,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: { @@ -312,43 +232,19 @@ const schema: IJSONSchema = { } }; -interface IPointListenerEntry { - extensionPoint: string; - listener: IPointListener; -} +export class ExtensionsRegistryImpl { -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; }; constructor() { - 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; @@ -357,118 +253,15 @@ class ExtensionsRegistryImpl implements IExtensionsRegistry { return result; } - public handleExtensionPoints(messageHandler: (msg: IMessage) => void): void { - Object.keys(this._extensionPoints).forEach((extensionPointName) => { - this._extensionPoints[extensionPointName].handle(messageHandler); - }); + public getExtensionPoints(): ExtensionPoint[] { + return Object.keys(this._extensionPoints).map(point => this._extensionPoints[point]); } - - 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 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); - } - } - } - - 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[] { - 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]; - } - - 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); - } - } - } - } - -} - -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' }; 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/platform/extensions/node/extensionValidator.ts b/src/vs/platform/extensions/node/extensionValidator.ts index 89e1352b6c9..235dfeebfd3 100644 --- a/src/vs/platform/extensions/node/extensionValidator.ts +++ b/src/vs/platform/extensions/node/extensionValidator.ts @@ -6,11 +6,12 @@ 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; + 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; @@ -230,6 +255,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)) { 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); 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/test/utils/servicesTestUtils.ts b/src/vs/test/utils/servicesTestUtils.ts index 6d9a4a8b0b1..e0a20651cff 100644 --- a/src/vs/test/utils/servicesTestUtils.ts +++ b/src/vs/test/utils/servicesTestUtils.ts @@ -11,9 +11,10 @@ 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'; +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'; @@ -273,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 { @@ -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/vscode.d.ts b/src/vs/vscode.d.ts index abcd0673d32..de1ab884c88 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -4178,8 +4178,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. 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 2d866a4b7d7..1bb20cb4dbd 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -37,27 +37,34 @@ 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'; 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 { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; +import { MainContext, ExtHostContext, InstanceCollection, IInitConfiguration } from './extHost.protocol'; 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 */ -export function createApiFactory(threadService: IThreadService, extensionService: ExtHostExtensionService, contextService: IWorkspaceContextService, telemetryService: ITelemetryService): IExtensionApiFactory { - - +export function createApiFactory(initDataConfiguration: IInitConfiguration, initTelemetryInfo: ITelemetryInfo, threadService: IThreadService, extensionService: ExtHostExtensionService, contextService: IWorkspaceContextService): IExtensionApiFactory { // Addressable instances const col = new InstanceCollection(); @@ -67,7 +74,7 @@ export function createApiFactory(threadService: IThreadService, extensionService const extHostEditors = col.define(ExtHostContext.ExtHostEditors).set(new ExtHostEditors(threadService, extHostDocuments)); const extHostCommands = col.define(ExtHostContext.ExtHostCommands).set(new ExtHostCommands(threadService, extHostEditors, extHostHeapService)); const extHostExplorers = col.define(ExtHostContext.ExtHostExplorers).set(new ExtHostTreeExplorers(threadService, extHostCommands)); - 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()); @@ -84,22 +91,15 @@ export function createApiFactory(threadService: IThreadService, extensionService 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); - // 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 { + 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 { @@ -136,8 +136,8 @@ export function createApiFactory(threadService: IThreadService, extensionService // 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; } }); @@ -145,13 +145,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)); } }; @@ -230,30 +230,34 @@ export function createApiFactory(threadService: IThreadService, extensionService 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) { @@ -270,7 +274,11 @@ export function createApiFactory(threadService: IThreadService, extensionService }, 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 @@ -422,7 +430,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); @@ -430,6 +438,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 c743105d28e..e4d9a3bc3f7 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -18,10 +18,11 @@ 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'; +import { IWorkspace } from 'vs/platform/workspace/common/workspace'; import * as editorCommon from 'vs/editor/common/editorCommon'; import * as modes from 'vs/editor/common/modes'; @@ -36,6 +37,29 @@ import { IApplyEditsOptions, TextEditorRevealType, ITextEditorConfigurationUpdat import { InternalTreeExplorerNode } from 'vs/workbench/parts/explorers/common/treeExplorerViewModel'; +export interface IEnvironment { + appSettingsHome: string; + disableExtensions: boolean; + userExtensionsHome: string; + extensionDevelopmentPath: string; + extensionTestsPath: string; +} + +export interface IInitConfiguration { + _initConfigurationBrand: void; +} + +export interface IInitData { + parentPid: number; + environment: IEnvironment; + contextService: { + workspace: IWorkspace; + }; + extensions: IExtensionDescription[]; + configuration: IInitConfiguration; + telemetryInfo: ITelemetryInfo; +} + export interface InstanceSetter { set(instance: T): R; } @@ -202,7 +226,6 @@ export abstract class MainThreadWorkspaceShape { } export abstract class MainProcessExtensionServiceShape { - $onExtensionHostReady(extensionDescriptions: IExtensionDescription[], messages: IMessage[]): TPromise { throw ni(); } $localShowMessage(severity: Severity, msg: string): void { throw ni(); } $onExtensionActivated(extensionId: string): void { throw ni(); } $onExtensionActivationFailed(extensionId: string): void { throw ni(); } @@ -242,7 +265,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/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 f395c9e517a..5e2c54c7a1f 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -10,8 +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 { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; 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 { - // 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/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/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 { 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 { 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 bd035a19e09..436d492117e 100644 --- a/src/vs/workbench/api/node/mainThreadExtensionService.ts +++ b/src/vs/workbench/api/node/mainThreadExtensionService.ts @@ -7,8 +7,8 @@ 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 { 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'; 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; @@ -51,7 +53,8 @@ export class MainProcessExtensionService extends AbstractExtensionService this._handleMessage(msg)); + extensionsRuntimeService.getExtensions().then((extensionDescriptions) => this._onExtensionDescriptions(extensionDescriptions)); } private _handleMessage(msg: IMessage) { @@ -124,11 +127,36 @@ export class MainProcessExtensionService extends AbstractExtensionService { - ExtensionsRegistry.registerExtensions(extensionDescriptions); - messages.forEach((entry) => this._handleMessage(entry)); + private _onExtensionDescriptions(extensionDescriptions: IExtensionDescription[]): void { + this._registry.registerExtensions(extensionDescriptions); + + let availableExtensions = this._registry.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 { diff --git a/src/vs/workbench/api/node/mainThreadSaveParticipant.ts b/src/vs/workbench/api/node/mainThreadSaveParticipant.ts index 997c2da82ee..5e1f28bbf11 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'; @@ -21,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, @@ -75,7 +82,9 @@ class TrimWhitespaceParticipant implements ISaveParticipant { } } -class FormatOnSaveParticipant implements ISaveParticipant { +class FormatOnSaveParticipant implements INamedSaveParticpant { + + readonly name = 'FormatOnSaveParticipant'; constructor( @ICodeEditorService private _editorService: ICodeEditorService, @@ -97,7 +106,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 => { @@ -158,25 +167,37 @@ 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); } participate(editorModel: ITextFileEditorModel, env: { reason: SaveReason }): TPromise { - return this._proxy.$participateInSave(editorModel.getResource(), env.reason); + 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); + }); } } // 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, @IInstantiationService instantiationService: IInstantiationService, @IThreadService threadService: IThreadService ) { @@ -191,11 +212,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} = p; + 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('saveParticipantStats', stats); + }); } } diff --git a/src/vs/workbench/browser/actions/toggleEditorLayout.ts b/src/vs/workbench/browser/actions/toggleEditorLayout.ts index a9667ba7ca8..0f7aea662da 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[]; @@ -49,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 { @@ -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 diff --git a/src/vs/workbench/browser/layout.ts b/src/vs/workbench/browser/layout.ts index d3667902285..cc7bad838db 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; @@ -449,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 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'; diff --git a/src/vs/workbench/browser/parts/editor/editorStatus.ts b/src/vs/workbench/browser/parts/editor/editorStatus.ts index 1d30cc96134..6d69148db2f 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(); } @@ -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/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; } diff --git a/src/vs/workbench/browser/parts/editor/media/tabstitle.css b/src/vs/workbench/browser/parts/editor/media/tabstitle.css index ddc544dfe5a..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; @@ -221,6 +220,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 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 { diff --git a/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts b/src/vs/workbench/browser/parts/editor/sideBySideEditorControl.ts index 50ca1e9fb79..9ba56be69d3 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(); @@ -194,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; } @@ -212,11 +219,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.defaultSideBySideLayout === 'horizontal') ? 'horizontal' : 'vertical'; } else { this.showTabs = true; this.showIcons = false; - this.defaultEditorGroupOrientation = 'vertical'; } if (!refresh) { @@ -464,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(); @@ -808,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); @@ -1593,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(); @@ -1661,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(); @@ -1760,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 @@ -1844,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 { 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); diff --git a/src/vs/workbench/browser/parts/editor/textEditor.ts b/src/vs/workbench/browser/parts/editor/textEditor.ts index aeebc684d6f..08870420bc3 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 }; } @@ -138,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/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")); diff --git a/src/vs/workbench/common/editor.ts b/src/vs/workbench/common/editor.ts index 58c1e15ed54..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'; - defaultSideBySideLayout: GroupOrientation; } }; } 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/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts index 40f783aa57b..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.defaultSideBySideLayout': { - '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.") - }, 'workbench.editor.showTabs': { 'type': 'boolean', 'description': nls.localize('showEditorTabs', "Controls if opened editors should show in tabs or not."), diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index 7b70edcd88a..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 @@ -288,15 +288,21 @@ 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); + 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)); @@ -333,10 +339,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); @@ -453,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/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts index e87507ff7fb..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; }; @@ -183,4 +183,12 @@ 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 + } + + 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/electron-browser/workbench.ts b/src/vs/workbench/electron-browser/workbench.ts index e7b0eb1b096..505196579aa 100644 --- a/src/vs/workbench/electron-browser/workbench.ts +++ b/src/vs/workbench/electron-browser/workbench.ts @@ -558,10 +558,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(); } } diff --git a/src/vs/workbench/node/extensionHostMain.ts b/src/vs/workbench/node/extensionHostMain.ts index a0044918522..de324f04d75 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, MainContext } 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,15 @@ 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 }); + + // Error forwarding + const mainThreadErrors = threadService.get(MainContext.MainThreadErrors); + errors.setUnexpectedErrorHandler(err => mainThreadErrors.onUnexpectedExtHostError(errors.transformErrorForSerialization(err))); // Create the ext host API - const factory = createApiFactory(threadService, this._extensionService, this._contextService, telemetryService); - defineAPI(factory, this._extensions); + const factory = createApiFactory(initData.configuration, initData.telemetryInfo, threadService, this._extensionService, this._contextService); + defineAPI(factory, this._extensionService); } private _getOrCreateWorkspaceStoragePath(): string { @@ -128,7 +111,7 @@ export class ExtensionHostMain { } public start(): TPromise { - return this.registerExtensions(); + return this.handleEagerExtensions().then(() => this.handleExtensionTests()); } public terminate(): void { @@ -144,7 +127,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)); @@ -163,12 +146,6 @@ export class ExtensionHostMain { }, 1000); } - private registerExtensions(): TPromise { - ExtensionsRegistry.registerExtensions(this._extensions); - this._extensionService.registrationDone([]); - return this.handleEagerExtensions().then(() => this.handleExtensionTests()); - } - // Handle "eager" activation extensions private handleEagerExtensions(): TPromise { this._extensionService.activateByEvent('*').then(null, (err) => { @@ -189,7 +166,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 6551b3f9704..726c7231287 100644 --- a/src/vs/workbench/node/extensionHostProcess.ts +++ b/src/vs/workbench/node/extensionHostProcess.ts @@ -7,16 +7,22 @@ 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; initData: IInitData; } +/** + * Flag set when in shutdown phase to avoid communicating to the main process. + */ +let isTerminating = false; + // 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 () { @@ -36,6 +42,10 @@ 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; + } queuedSender.send(data); stats.push(data.length); }); @@ -43,6 +53,7 @@ function connectToRenderer(): TPromise { // Listen to all other messages process.on('message', (msg) => { if (msg.type === '__$terminate') { + isTerminating = true; onTerminate(); return; } diff --git a/src/vs/workbench/node/extensionPoints.ts b/src/vs/workbench/node/extensionPoints.ts index e57b7488523..94b95832ba5 100644 --- a/src/vs/workbench/node/extensionPoints.ts +++ b/src/vs/workbench/node/extensionPoints.ts @@ -198,7 +198,22 @@ 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; + enableProposedApi: boolean; + } + let extensionDescription = _extensionDescription; extensionDescription.isBuiltin = this._isBuiltin; let notices: string[] = []; diff --git a/src/vs/workbench/parts/debug/browser/breakpointWidget.ts b/src/vs/workbench/parts/debug/browser/breakpointWidget.ts index 71ca7ad5960..11bb8fcd009 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 { @@ -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 breakpoint = this.debugService.getModel().getBreakpoints().filter(bp => bp.lineNumber === this.lineNumber && bp.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); @@ -102,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, @@ -121,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/debugActionItems.ts b/src/vs/workbench/parts/debug/browser/debugActionItems.ts index ab5c261e4fe..1dacaa28e1a 100644 --- a/src/vs/workbench/parts/debug/browser/debugActionItems.ts +++ b/src/vs/workbench/parts/debug/browser/debugActionItems.ts @@ -5,26 +5,25 @@ 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'; -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); 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,25 +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 { - 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; - } - + 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); + } 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); + } - if (changeDebugConfiguration) { - return this.actionRunner.run(this._action, this.getSelected()); - } - }); + if (changeDebugConfiguration) { + this.actionRunner.run(this._action, this.getSelected()).done(null, errors.onUnexpectedError); + } } } diff --git a/src/vs/workbench/parts/debug/browser/debugActions.ts b/src/vs/workbench/parts/debug/browser/debugActions.ts index 9d62052846c..835c20d2c4a 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); } @@ -471,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); } } @@ -562,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 }]); } } } @@ -646,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()); } @@ -654,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(); }); } @@ -773,12 +759,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/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/browser/debugEditorModelManager.ts b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts index b7e2a7573de..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 { @@ -264,7 +263,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) }; }); } @@ -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/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, diff --git a/src/vs/workbench/parts/debug/browser/media/debugHover.css b/src/vs/workbench/parts/debug/browser/media/debugHover.css index 4f3121b073e..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 { @@ -36,6 +39,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 +65,7 @@ } .monaco-editor .debug-hover-widget .value { - word-wrap: break-word; + white-space: pre-wrap; color: rgba(108, 108, 108, 0.8); } @@ -83,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/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; diff --git a/src/vs/workbench/parts/debug/browser/media/repl.css b/src/vs/workbench/parts/debug/browser/media/repl.css index 8422141e5cd..5080c032a94 100644 --- a/src/vs/workbench/parts/debug/browser/media/repl.css +++ b/src/vs/workbench/parts/debug/browser/media/repl.css @@ -121,8 +121,8 @@ .monaco-workbench.windows .repl .repl-input-wrapper:before { content: '\203A'; /* character does not exist on windows */ - font-size: 22px; - line-height: 18px; + font-size: 30px; + line-height: 12px; } .monaco-workbench.linux .repl .repl-input-wrapper:before { diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index cadd6efb32b..f20b90112bd 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'; @@ -53,8 +53,8 @@ export interface ITreeElement { } export interface IExpressionContainer extends ITreeElement { - reference: number; stackFrame: IStackFrame; + hasChildren: boolean; getChildren(debugService: IDebugService): TPromise; } @@ -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 { @@ -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; @@ -298,12 +297,6 @@ export interface IEnvConfig { configurationNames?: string[]; } -export interface IExtHostConfig extends IEnvConfig { - port?: number; - sourceMaps?: boolean; - outDir?: string; -} - export interface IConfig extends IEnvConfig { windows?: IEnvConfig; osx?: IEnvConfig; @@ -337,10 +330,22 @@ 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; - loadLaunchConfig(): TPromise; - canSetBreakpointsIn(model: editor.IModel): boolean; + + /** + * Returns true if breakpoints can be set for a given editor model. Depends on mode. + */ + canSetBreakpointsIn(model: EditorIModel): boolean; } export const IDebugService = createDecorator(DEBUG_SERVICE_ID); @@ -369,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. @@ -466,11 +471,11 @@ 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 -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 ccb1ba59446..1ba518634f1 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -3,18 +3,19 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import * as nls from 'vs/nls'; +import uri from 'vs/base/common/uri'; import { TPromise } from 'vs/base/common/winjs.base'; -import nls = require('vs/nls'); -import lifecycle = require('vs/base/common/lifecycle'); +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; @@ -24,39 +25,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; @@ -100,9 +68,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); @@ -120,7 +88,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 = []; @@ -159,6 +127,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 +152,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)); }); } @@ -199,6 +169,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, @@ -206,7 +180,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)]); @@ -231,11 +205,44 @@ 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; } + + 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 { @@ -294,10 +301,11 @@ 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; + this.type = response.body.type || this.type; } // TODO@Isidor notify stackFrame that a change has happened so watch expressions get revelauted }, err => { @@ -427,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); @@ -436,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 []; }); } @@ -487,7 +501,7 @@ export class Process implements debug.IProcess { } public getId(): string { - return this._session.getId();; + return this._session.getId(); } public rawUpdate(data: debug.IRawModelUpdate): void { @@ -505,7 +519,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(); }); @@ -565,7 +579,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, @@ -576,7 +590,7 @@ export class Breakpoint implements debug.IBreakpoint { } this.lineNumber = this.desiredLineNumber; this.verified = false; - this.id = uuid.generateUuid(); + this.id = generateUuid(); } public getId(): string { @@ -592,7 +606,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 { @@ -605,7 +619,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 { @@ -624,10 +638,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 = []; @@ -688,7 +702,7 @@ export class Model implements debug.IModel { } } - public getBreakpoints(): debug.IBreakpoint[] { + public getBreakpoints(): Breakpoint[] { return this.breakpoints; } @@ -718,9 +732,9 @@ export class Model implements debug.IModel { this._onDidChangeBreakpoints.fire(); } - public addBreakpoints(rawData: debug.IRawBreakpoint[]): void { + public addBreakpoints(uri: uri, rawData: debug.IRawBreakpoint[]): void { 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(uri, rawBp.lineNumber, rawBp.enabled, rawBp.condition, rawBp.hitCondition))); this.breakpointsActivated = true; this._onDidChangeBreakpoints.fire(); } @@ -796,10 +810,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()); } @@ -871,7 +885,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) { @@ -879,14 +893,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]); }); } @@ -894,33 +908,23 @@ 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(); }); } - public clearWatchExpressionValues(): void { - this.watchExpressions.forEach(we => { - we.value = Expression.DEFAULT_VALUE; - we.available = false; - we.reference = 0; - }); - - 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/common/debugSource.ts b/src/vs/workbench/parts/debug/common/debugSource.ts index c487c81b00a..22c0ee636ae 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 { @@ -35,27 +35,7 @@ export class Source { 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 { + public static isInMemory(uri: uri): boolean { return uri.toString().indexOf(Source.INTERNAL_URI_PREFIX) === 0; } } 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/debug.contribution.ts b/src/vs/workbench/parts/debug/electron-browser/debug.contribution.ts index 97cbde99299..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 breakpoints for all files, no matter the extension."), + 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 } } 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/debugHover.ts b/src/vs/workbench/parts/debug/electron-browser/debugHover.ts index ddf424a8589..a731609d321 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'; @@ -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')); @@ -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; } @@ -212,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/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 834ada45019..6969de6c958 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -3,22 +3,23 @@ * 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 paths from 'vs/base/common/paths'; 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 +34,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 +68,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 +109,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 +191,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 +211,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]; @@ -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 => { @@ -261,29 +262,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 = 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); })); @@ -361,45 +365,44 @@ 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 model.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) { } 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 model.FunctionBreakpoint(fb.name, fb.enabled, fb.hitCondition); + return new FunctionBreakpoint(fb.name, fb.enabled, fb.hitCondition); }); } catch (e) { } 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 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) { } @@ -437,21 +440,26 @@ export class DebugService implements debug.IDebugService { } public setFocusedStackFrameAndEvaluate(focusedStackFrame: debug.IStackFrame): TPromise { - this.viewModel.setFocusedStackFrame(focusedStackFrame); - if (focusedStackFrame) { - return this.model.evaluateWatchExpressions(focusedStackFrame); - } else { - this.model.clearWatchExpressionValues(); - return TPromise.as(null); + 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(); + + return this.model.evaluateWatchExpressions(process, focusedStackFrame); } 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.uri); + } else if (breakpoint instanceof FunctionBreakpoint) { return this.sendFunctionBreakpoints(); } @@ -462,18 +470,17 @@ export class DebugService implements debug.IDebugService { return this.sendAllBreakpoints(); } - public addBreakpoints(rawBreakpoints: debug.IRawBreakpoint[]): TPromise { - this.model.addBreakpoints(rawBreakpoints); - const uris = arrays.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 = arrays.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))); @@ -500,7 +507,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)); } @@ -518,11 +525,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 { @@ -531,6 +538,8 @@ export class DebugService implements debug.IDebugService { public createProcess(configurationOrName: debug.IConfig | string): TPromise { this.removeReplExpressions(); + const sessionId = 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 @@ -562,7 +571,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, { @@ -571,7 +580,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) => { @@ -587,9 +596,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.IConfig): TPromise { return this.telemetryService.getTelemetryInfo().then(info => { const telemetryInfo: { [key: string]: string } = Object.create(null); @@ -750,16 +757,10 @@ 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, - request: 'attach', - port, - sourceMaps: configuration.sourceMaps, - outDir: configuration.outDir, - debugServer: configuration.debugServer - }) + const sessionId = generateUuid(); + this.setStateAndEmit(sessionId, debug.State.Initializing); + return this.configurationManager.getConfiguration(this.viewModel.selectedConfigurationName).then(config => + this.doCreateProcess(sessionId, config) ); } @@ -791,25 +792,24 @@ 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. + const data: { [id: string]: { line: number, verified: boolean } } = {}; + this.model.getBreakpoints().forEach(bp => { + 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); + } } } @@ -821,14 +821,16 @@ 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(); + const control = visibleEditors[i].getControl(); if (control) { control.revealLineInCenterIfOutsideViewport(lineNumber); control.setSelection({ startLineNumber: lineNumber, startColumn: 1, endLineNumber: lineNumber, endColumn: 1 }); @@ -843,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 : ''; @@ -860,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, @@ -890,18 +895,8 @@ export class DebugService implements debug.IDebugService { private transitionToRunningState(session: RawDebugSession, threadId?: number): void { this.model.clearThreads(session.getId(), false, threadId); - - // 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 { @@ -918,15 +913,17 @@ export class DebugService implements debug.IDebugService { return result; } - 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))) - .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); } @@ -936,11 +933,21 @@ export class DebugService implements debug.IDebugService { return TPromise.as(null); } - const breakpointsToSend = arrays.distinct( - this.model.getBreakpoints().filter(bp => this.model.areBreakpointsActivated() && bp.enabled && bp.source.uri.toString() === modelUri.toString()), + const breakpointsToSend = distinct( + 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); + + 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, @@ -961,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); } @@ -985,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); } @@ -998,20 +1007,20 @@ 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 { 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 bbc20a775ba..14560bd486c 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,64 +205,68 @@ 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; } } // 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 { - 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); @@ -270,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) { @@ -286,63 +290,60 @@ 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); } } } -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 { - if (typeof element === 'number') { - return element.toString(); - } + public getId(tree: ITree, element: any): string { if (typeof element === 'string') { return element; } @@ -350,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()); } @@ -379,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); } } @@ -412,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'; @@ -424,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') { @@ -445,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')); @@ -486,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) { @@ -535,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; @@ -560,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; - if (variable.reference === 0) { - actions.push(this.instantiationService.createInstance(debugactions.SetValueAction, debugactions.SetValueAction.ID, debugactions.SetValueAction.LABEL, variable)); + public getSecondaryActions(tree: ITree, element: any): TPromise { + let actions: IAction[] = []; + const variable = element; + 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 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.hasChildren && !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); } } @@ -636,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'; @@ -648,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')); @@ -679,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, @@ -698,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; @@ -723,16 +724,16 @@ 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) { + if (!expression.hasChildren) { this.debugService.getViewModel().setSelectedExpression(expression); } return true; @@ -741,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.hasChildren) { this.debugService.getViewModel().setSelectedExpression(element); return true; } @@ -754,7 +755,7 @@ export class VariablesController extends BaseDebugController { // watch expressions -export class WatchExpressionsActionProvider implements renderer.IActionProvider { +export class WatchExpressionsActionProvider implements IActionProvider { private instantiationService: IInstantiationService; @@ -762,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.RenameWatchExpressionAction, debugactions.RenameWatchExpressionAction.ID, debugactions.RenameWatchExpressionAction.LABEL, expression)); - if (expression.reference === 0) { + 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.hasChildren) { 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; - if (variable.reference === 0) { + actions.push(this.instantiationService.createInstance(AddWatchExpressionAction, AddWatchExpressionAction.ID, AddWatchExpressionAction.LABEL)); + if (element instanceof Variable) { + const variable = element; + if (!variable.hasChildren) { 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.hasChildren && !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'; @@ -852,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 ) { @@ -861,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 }); } @@ -887,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 { @@ -895,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"), @@ -914,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(); } @@ -925,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; @@ -941,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) { @@ -951,11 +952,11 @@ 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) { + if (!expression.hasChildren) { this.debugService.getViewModel().setSelectedExpression(expression); } return true; @@ -964,11 +965,11 @@ 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 (watchExpression.reference === 0) { + if (element instanceof Expression) { + const watchExpression = element; + if (!watchExpression.hasChildren) { this.debugService.getViewModel().setSelectedExpression(watchExpression); } return true; @@ -977,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; @@ -992,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); } } @@ -1081,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'; @@ -1098,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 @@ -1106,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 }); } @@ -1149,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); @@ -1170,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, { @@ -1197,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.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.uri.fsPath), this.contextService); data.checkbox.checked = breakpoint.enabled; data.actionBar.context = breakpoint; @@ -1217,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, getPathLabel(paths.basename((element).uri.fsPath), this.contextService), 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; @@ -1247,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)); @@ -1256,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); @@ -1289,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; @@ -1304,10 +1305,8 @@ export class BreakpointsController extends BaseDebugController { return false; } - private openBreakpointSource(breakpoint: debug.IBreakpoint, 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); - } + private openBreakpointSource(breakpoint: Breakpoint, event: IKeyboardEvent | IMouseEvent, preserveFocus: boolean): void { + const sideBySide = (event && (event.ctrlKey || event.metaKey)); + this.debugService.openOrRevealSource(breakpoint.uri, 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..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 { @@ -403,8 +408,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/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/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 }; } 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"); } 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 527ff5e75b6..a1b3462306d 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'; @@ -30,7 +29,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 +121,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: '' }] }], @@ -159,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.") + }, } }; @@ -169,7 +173,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 +184,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,62 +245,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 = nameOrConfig ? config.configurations.filter(cfg => cfg.name === nameOrConfig) : [config.configurations[0]]; + const config = this.configurationService.getConfiguration('launch'); - result = filtered.length === 1 ? objects.deepClone(filtered[0]) : null; - 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 && config.debugServer) { + 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 { @@ -347,8 +343,4 @@ export class ConfigurationManager implements debug.IConfigurationManager { return !!this.allModeIdsForBreakpoints[modeId]; } - - public loadLaunchConfig(): TPromise { - return TPromise.as(this.configurationService.getConfiguration('launch')); - } } 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); 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/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(() => { 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..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); }); @@ -294,16 +294,16 @@ 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(); + model.evaluateWatchExpressions(process, null); assertWatchExpressions(model.getWatchExpressions(), 'new_name'); model.removeWatchExpressions(); @@ -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 => { diff --git a/src/vs/workbench/parts/emmet/node/emmetActions.ts b/src/vs/workbench/parts/emmet/node/emmetActions.ts index 296bd9b298b..f3cde468d4d 100644 --- a/src/vs/workbench/parts/emmet/node/emmetActions.ts +++ b/src/vs/workbench/parts/emmet/node/emmetActions.ts @@ -10,10 +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, ExtensionPointContribution } from 'vs/platform/extensions/common/extensions'; import * as emmet from 'emmet'; interface IEmmetConfiguration { @@ -33,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; } - } + }); }); } @@ -134,29 +130,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.readExtensionPointContributions(grammarsExtPoint).then((contributions) => { + return new GrammarContributions(contributions); + }); + } + 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(); }); + } } 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 1ff5bf6e127..d8364fd01f9 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -26,14 +26,13 @@ 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'; 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; @@ -341,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) { @@ -385,6 +386,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; }); } @@ -519,6 +525,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 +646,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 { 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..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,13 +19,13 @@ 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, 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/extensionsActions.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts index 91f0b3224ee..097079f1f76 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts @@ -11,12 +11,12 @@ 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'; 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'; @@ -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; @@ -138,10 +139,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); } @@ -282,82 +279,195 @@ export class DropDownMenuActionItem extends ActionItem { private disposables: IDisposable[] = []; private _extension: IExtension; - constructor(action: IAction, private menuActions: IExtensionAction[], 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) { - menuAction.extension = extension; + for (const menuActions of this.menuActionGroups) { + for (const menuAction of menuActions) { + menuAction.extension = extension; + } } } public showMenu(): void { + 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({ getAnchor: () => anchor, - getActions: () => TPromise.wrap(this.menuActions), + getActions: () => TPromise.wrap(actions) }); } + 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); } } -export class EnableForWorkspaceAction extends Action { +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"))], + [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) { + 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; + } + } + + public run(): TPromise { + this._actionItem.showMenu(); + return TPromise.wrap(null); + } + + dispose(): void { + super.dispose(); + this.disposables = dispose(this.disposables); + } +} + +export class EnableForWorkspaceAction extends Action implements IExtensionAction { + + 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 = this.extension.type !== LocalExtensionType.System && ExtensionState.Disabled === this.extension.state + && !this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier) && this.extensionsRuntimeService.canEnable(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 { +export class EnableGloballyAction extends Action implements IExtensionAction { + + 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); + this.enabled = this.extension.type !== LocalExtensionType.System && this.extensionsRuntimeService.isDisabledAlways(this.extension.identifier) && this.extensionsRuntimeService.canEnable(this.extension.identifier); } } run(): TPromise { return this.extensionsWorkbenchService.setEnablement(this.extension, true, false); } + + dispose(): void { + super.dispose(); + this.disposables = dispose(this.disposables); + } } export class EnableAction extends Action { @@ -413,39 +523,81 @@ 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"); + + 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 = this.extension.type !== LocalExtensionType.System && 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 { +export class DisableGloballyAction extends Action implements IExtensionAction { + + 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 = this.extension.type !== LocalExtensionType.System && 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 +655,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 +664,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); } } @@ -548,31 +700,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); } } @@ -595,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 { @@ -685,29 +829,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'; @@ -897,6 +1018,7 @@ export class OpenExtensionsFolderAction extends Action { constructor( id: string, label: string, + @IWindowService private windowService: IWindowService, @IEnvironmentService private environmentService: IEnvironmentService ) { super(id, label, null, true); @@ -904,7 +1026,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); } @@ -973,7 +1095,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); } @@ -988,7 +1112,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"))] + } + ); + }); } } @@ -1020,7 +1152,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[] = []; @@ -1051,7 +1183,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[] = []; @@ -1083,7 +1215,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[] = []; @@ -1114,7 +1246,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[] = []; @@ -1141,4 +1273,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..b1b8d37e986 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([reloadAction, updateAction, 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/extensionsViewlet.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts index 78b9751230e..eb4bdc1f49a 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts @@ -32,11 +32,10 @@ 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'; +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'; @@ -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) ]; } @@ -223,7 +214,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); @@ -241,12 +232,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)); } @@ -270,8 +263,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) 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..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), @@ -104,4 +110,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/extensionEditor.css b/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css index 7380042d3a5..3925233b8a2 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css +++ b/src/vs/workbench/parts/extensions/electron-browser/media/extensionEditor.css @@ -231,9 +231,9 @@ .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; + color: #CCC; } .extension-editor .subcontent .monaco-tree-row .unknown-dependency > .message { 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 diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts similarity index 90% rename from src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts rename to src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts index 575549dafc5..6e2a6a40502 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts @@ -5,8 +5,10 @@ 'use strict'; -import 'vs/css!./media/extensionsViewlet'; -import { localize } from 'vs/nls'; +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'; @@ -27,17 +29,11 @@ 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 { 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 { ExtensionsInput } from 'vs/workbench/parts/extensions/common/extensionsInput'; import { IExtensionsRuntimeService } from 'vs/platform/extensions/common/extensions'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; @@ -166,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 { @@ -234,8 +230,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 +239,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 +380,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); } @@ -427,7 +424,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,23 +442,18 @@ 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 { + 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 { @@ -558,40 +550,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(); } @@ -627,7 +610,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); } @@ -640,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; } 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 97% rename from src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts rename to src/vs/workbench/parts/feedback/browser/feedbackStatusbarItem.ts index 47c109668fe..0afb1544592 100644 --- a/src/vs/workbench/parts/feedback/electron-browser/feedbackStatusbarItem.ts +++ b/src/vs/workbench/parts/feedback/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/files/browser/editors/textFileEditor.ts b/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts index 66e04e1da3b..b71b135b4af 100644 --- a/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts +++ b/src/vs/workbench/parts/files/browser/editors/textFileEditor.ts @@ -145,18 +145,15 @@ export class TextFileEditor extends BaseTextEditor { const textEditor = this.getControl(); textEditor.setModel(textFileModel.textEditorModel); - // TextOptions (avoiding instanceof here for a reason, do not change!) - let optionsGotApplied = false; - if (options && types.isFunction((options).apply)) { - optionsGotApplied = (options).apply(textEditor); + // Always restore View State if any associated + const editorViewState = this.loadTextEditorViewState(this.storageService, this.getInput().getResource().toString()); + if (editorViewState) { + textEditor.restoreViewState(editorViewState); } - // Otherwise restore View State - if (!optionsGotApplied) { - const editorViewState = this.loadTextEditorViewState(this.storageService, this.getInput().getResource().toString()); - if (editorViewState) { - textEditor.restoreViewState(editorViewState); - } + // TextOptions (avoiding instanceof here for a reason, do not change!) + if (options && types.isFunction((options).apply)) { + (options).apply(textEditor); } }, (error) => { 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); 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 { 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")); } 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/parts/git/browser/gitServices.ts b/src/vs/workbench/parts/git/browser/gitServices.ts index fa7a0931bbe..ffc3e9b8a20 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'; @@ -351,7 +350,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; @@ -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; } @@ -482,7 +481,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, () => { @@ -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; } 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(); 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); } } 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 95% rename from src/vs/workbench/parts/nps/electron-browser/nps.contribution.ts rename to src/vs/workbench/parts/nps/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/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/output/browser/outputPanel.ts b/src/vs/workbench/parts/output/browser/outputPanel.ts index f1a52cc4d2c..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 = []; } @@ -87,6 +90,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"); @@ -99,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(); 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 { 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 { 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()); 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..9144ac3d9ca 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); } } @@ -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); } @@ -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', 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; } 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); diff --git a/src/vs/workbench/parts/update/electron-browser/update.ts b/src/vs/workbench/parts/update/electron-browser/update.ts index d93de376be4..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); }), @@ -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, { diff --git a/src/vs/workbench/parts/watermark/browser/watermark.css b/src/vs/workbench/parts/watermark/browser/watermark.css index 2f8f5ba1c65..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,31 +27,17 @@ 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 { + .monaco-workbench .part.editor.empty.has-watermark { background-position-y: 50%; } } 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 86% rename from src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts rename to src/vs/workbench/parts/welcome/browser/gettingStarted.ts index b3181b82ced..48759e78af4 100644 --- a/src/vs/workbench/parts/welcome/electron-browser/electronGettingStarted.ts +++ b/src/vs/workbench/parts/welcome/browser/gettingStarted.ts @@ -8,9 +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'; -import { shell } from 'electron'; - -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 @@ -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/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/services/configuration/common/configuration.ts b/src/vs/workbench/services/configuration/common/configuration.ts index ff8a218a15d..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'); @@ -27,4 +27,10 @@ export interface IWorkspaceConfigurationService extends IConfigurationService { export interface IWorkspaceConfigurationValue extends IConfigurationValue { workspace: T; -} \ No newline at end of file +} + +export const WORKSPACE_STANDALONE_CONFIGURATIONS = { + '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 diff --git a/src/vs/workbench/services/configuration/common/model.ts b/src/vs/workbench/services/configuration/common/model.ts index f3f897928b9..0d16e272ae5 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, true); 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 47b11bd9344..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,8 +224,8 @@ export class WorkspaceConfigurationService implements IWorkspaceConfigurationSer affectedByChanges = true; } - // outside my folder or not a *.json file - if (paths.extname(workspacePath) !== '.json' || !paths.isEqualOrParent(workspacePath, this.workspaceSettingsRootFolder)) { + // only valid workspace config files + if (!this.isWorkspaceConfigurationFile(workspacePath)) { continue; } @@ -224,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; } } @@ -235,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 219ef322dd3..1dd412f6196 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'; @@ -67,7 +68,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, error: Error) => void): void { const id = uuid.generateUuid(); const parentDir = path.join(os.tmpdir(), 'vsctests', id); const workspaceDir = path.join(parentDir, 'workspaceconfig', id); @@ -75,7 +76,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(); + }); + }, error); }); } @@ -116,47 +125,63 @@ suite('WorkspaceConfigurationEditingService - Node', () => { }); test('errors cases - invalid key', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile, false, true /* no workspace */).then(services => { + 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) => { assert.equal(error.code, ConfigurationEditingErrorCode.ERROR_UNKNOWN_KEY); services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('errors cases - invalid target', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + 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) => { assert.equal(error.code, ConfigurationEditingErrorCode.ERROR_INVALID_TARGET); services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('errors cases - no workspace', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile, false, true /* no workspace */).then(services => { + 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) => { assert.equal(error.code, ConfigurationEditingErrorCode.ERROR_NO_WORKSPACE_OPENED); services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('errors cases - invalid configuration', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + createWorkspace((workspaceDir, globalSettingsFile, cleanUp, error) => { + if (error) { + return cleanUp(done, error); + } + + createServices(workspaceDir, globalSettingsFile).done(services => { fs.writeFileSync(globalSettingsFile, ',,,,,,,,,,,,,,'); return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { @@ -165,26 +190,34 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('errors cases - dirty', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile, true).then(services => { + 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) => { assert.equal(error.code, ConfigurationEditingErrorCode.ERROR_CONFIGURATION_FILE_DIRTY); services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('write one setting - empty file', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + 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'); const parsed = json.parse(contents); @@ -194,13 +227,17 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('write one setting - existing file', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + 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" }'); return services.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: 'configurationEditing.service.testSetting', value: 'value' }).then(res => { @@ -215,13 +252,17 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('write workspace standalone setting - empty file', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + 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']); const contents = fs.readFileSync(target).toString('utf8'); @@ -232,13 +273,17 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('write workspace standalone setting - existing file', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + 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']); fs.writeFileSync(target, '{ "my.super.setting": "my.super.value" }'); @@ -255,13 +300,17 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('write workspace standalone setting - empty file - full JSON', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + 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']); const contents = fs.readFileSync(target).toString('utf8'); @@ -273,13 +322,17 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('write workspace standalone setting - existing file - full JSON', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + 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']); fs.writeFileSync(target, '{ "my.super.setting": "my.super.value" }'); @@ -295,13 +348,17 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); test('write workspace standalone setting - existing file with JSON errors - full JSON', (done: () => void) => { - createWorkspace((workspaceDir, globalSettingsFile, cleanUp) => { - return createServices(workspaceDir, globalSettingsFile).then(services => { + 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']); fs.writeFileSync(target, '{ "my.super.setting": '); // invalid JSON @@ -317,7 +374,7 @@ suite('WorkspaceConfigurationEditingService - Node', () => { services.configurationService.dispose(); cleanUp(done); }); - }); + }, error => cleanUp(done, error)); }); }); }); \ No newline at end of file diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts index 5c560a357b8..650ccd8cb60 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts @@ -16,16 +16,19 @@ 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'; 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, 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'; @@ -57,6 +60,8 @@ export class ExtensionHostProcessWorker { return this._onMessage.event; } + private extensionService: MainProcessExtensionService; + constructor( @IWorkspaceContextService private contextService: IWorkspaceContextService, @IMessageService private messageService: IMessageService, @@ -64,7 +69,8 @@ export class ExtensionHostProcessWorker { @ILifecycleService lifecycleService: ILifecycleService, @IInstantiationService private instantiationService: IInstantiationService, @IEnvironmentService private environmentService: IEnvironmentService, - @IExtensionsRuntimeService private extensionsRuntimeService: IExtensionsRuntimeService + @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; @@ -77,7 +83,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', @@ -199,8 +206,12 @@ export class ExtensionHostProcessWorker { if (this.initializeTimer) { window.clearTimeout(this.initializeTimer); } - this.extensionsRuntimeService.getExtensions().then(extensionDescriptors => { - let initPayload = stringify({ + + TPromise.join([ + this.telemetryService.getTelemetryInfo(), + this.extensionService.readExtensions() + ]).then(([telemetryInfo, extensionDescriptions]) => { + let initData: IInitData = { parentPid: process.pid, environment: { appSettingsHome: this.environmentService.appSettingsHome, @@ -212,9 +223,11 @@ export class ExtensionHostProcessWorker { contextService: { workspace: this.contextService.getWorkspace() }, - extensions: extensionDescriptors - }); - this.extensionHostProcessQueuedSender.send(initPayload); + extensions: extensionDescriptions, + configuration: this.configurationService.getConfiguration(), + telemetryInfo + }; + this.extensionHostProcessQueuedSender.send(stringify(initData)); }); } diff --git a/src/vs/workbench/services/extensions/electron-browser/extensions.ts b/src/vs/workbench/services/extensions/electron-browser/extensions.ts index a653f3b15ad..3d0c67bba29 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,26 +31,26 @@ 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 { + 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; @@ -76,30 +78,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[] { @@ -160,6 +165,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; @@ -223,4 +236,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 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); }), 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); 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..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,6 +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'); +import { onError } from 'vs/test/utils/servicesTestUtils'; suite('FileService', () => { let events: utils.TestEventService; @@ -66,7 +67,7 @@ suite('FileService', () => { assert.equal(fs.readFileSync(s.resource.fsPath), contents); done(); - }); + }, error => onError(error, done)); }); test('createFolder', function (done: () => void) { @@ -77,7 +78,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('touchFile', function (done: () => void) { @@ -97,7 +98,7 @@ suite('FileService', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('renameFile', function (done: () => void) { @@ -108,7 +109,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('renameFolder', function (done: () => void) { @@ -130,7 +131,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('moveFile', function (done: () => void) { @@ -141,7 +142,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('move - FILE_MOVE_CONFLICT', function (done: () => void) { @@ -151,7 +152,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('moveFile - MIX CASE', function (done: () => void) { @@ -162,7 +163,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('moveFile - overwrite folder with file', function (done: () => void) { @@ -175,7 +176,7 @@ suite('FileService', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('copyFile', function (done: () => void) { @@ -186,7 +187,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('copyFile - overwrite folder with file', function (done: () => void) { @@ -199,7 +200,7 @@ suite('FileService', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('importFile', function (done: () => void) { @@ -210,7 +211,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('importFile - MIX CASE', function (done: () => void) { @@ -228,7 +229,7 @@ suite('FileService', () => { }); }); }); - }); + }, error => onError(error, done)); }); test('importFile - overwrite folder with file', function (done: () => void) { @@ -242,7 +243,7 @@ suite('FileService', () => { done(); }); }); - }); + }, error => onError(error, done)); }); test('importFile - same file', function (done: () => void) { @@ -252,7 +253,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('deleteFile', function (done: () => void) { @@ -262,7 +263,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('deleteFolder', function (done: () => void) { @@ -272,7 +273,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('resolveFile', function (done: () => void) { @@ -283,7 +284,7 @@ suite('FileService', () => { assert.equal(deep.children.length, 4); done(); - }); + }, error => onError(error, done)); }); test('existsFile', function (done: () => void) { @@ -295,7 +296,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('updateContent', function (done: () => void) { @@ -311,7 +312,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('updateContent - use encoding (UTF 16 BE)', function (done: () => void) { @@ -332,7 +333,7 @@ suite('FileService', () => { }); }); }); - }); + }, error => onError(error, done)); }); test('updateContent - encoding preserved (UTF 16 LE)', function (done: () => void) { @@ -355,7 +356,7 @@ suite('FileService', () => { }); }); }); - }); + }, error => onError(error, done)); }); test('resolveContent - FILE_IS_BINARY', function (done: () => void) { @@ -369,7 +370,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('resolveContent - FILE_IS_DIRECTORY', function (done: () => void) { @@ -379,7 +380,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 +390,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 +402,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('resolveContent - FILE_MODIFIED_SINCE', function (done: () => void) { @@ -415,7 +416,7 @@ suite('FileService', () => { done(); }); - }); + }, error => onError(error, done)); }); test('resolveContent - encoding picked up', function (done: () => void) { @@ -426,7 +427,7 @@ suite('FileService', () => { assert.equal(c.encoding, encoding); done(); - }); + }, error => onError(error, done)); }); test('resolveContent - user overrides BOM', function (done: () => void) { @@ -436,7 +437,7 @@ suite('FileService', () => { assert.equal(c.encoding, 'windows1252'); done(); - }); + }, error => onError(error, done)); }); test('resolveContent - BOM removed', function (done: () => void) { @@ -446,7 +447,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 +457,7 @@ suite('FileService', () => { assert.equal(c.encoding, 'utf8'); done(); - }); + }, error => onError(error, done)); }); test('watchFileChanges', function (done: () => void) { diff --git a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts index f539a78db11..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'; @@ -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, @@ -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/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); } 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) => { 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/services/textfile/test/textFileEditorModel.test.ts b/src/vs/workbench/services/textfile/test/textFileEditorModel.test.ts index ae52b218a63..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:\\', path)); -} - class ServiceAccessor { constructor( @IEventService public eventService: IEventService, @ITextFileService public textFileService: TestTextFileService, @IModelService public modelService: IModelService) { } @@ -44,9 +38,9 @@ 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.load().done(() => { model.textEditorModel.setValue('bar'); assert.ok(model.getLastModifiedTime() <= Date.now()); @@ -59,11 +53,11 @@ suite('Files - TextFileEditorModel', () => { done(); }); - }); + }, error => onError(error, done)); }); 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 +70,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,19 +80,19 @@ 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.load().done(() => { model.textEditorModel.destroy(); assert.ok(model.isDisposed()); done(); - }); + }, error => onError(error, done)); }); 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', () => { @@ -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,32 +111,32 @@ 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('/path/index_async.txt'), 'utf8'); + 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) { 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) { @@ -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('/path/index_async.txt'), 'utf8'); + 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('/path/index_async.txt'), 'utf8'); + 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,12 +204,12 @@ suite('Files - TextFileEditorModel', () => { done(); }); }); - }); + }, error => onError(error, done)); }); 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; @@ -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('/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) => { + input1.resolve().done((model1: TextFileEditorModel) => { + return input2.resolve().then((model2: TextFileEditorModel) => { model1.textEditorModel.setValue('foo'); const m1Mtime = model1.getLastModifiedTime(); @@ -256,16 +250,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); @@ -278,12 +272,12 @@ suite('Files - TextFileEditorModel', () => { }); }); }); - }); + }, error => onError(error, done)); }); 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) { @@ -303,22 +297,22 @@ 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('/path/index_async.txt'), 'utf8'); + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); TextFileEditorModel.setSaveParticipant({ participate: (model) => { @@ -326,19 +320,20 @@ 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 () { - - const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource('/path/index_async.txt'), 'utf8'); + test('Save Participant, bad participant', function (done) { + const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/index_async.txt'), 'utf8'); TextFileEditorModel.setSaveParticipant({ participate: (model) => { @@ -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 3b1a12f2b03..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:\\', path)); -} - class ServiceAccessor { constructor( @ILifecycleService public lifecycleService: TestLifecycleService, @@ -49,8 +43,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 +53,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,10 +63,13 @@ 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); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.equal(service.getDirty().length, 1); @@ -82,14 +80,17 @@ 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) { + 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); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.equal(service.getDirty().length, 1); @@ -100,14 +101,17 @@ suite('Files - TextFileService', () => { assert.ok(!event.value); done(); - }); + }, error => onError(error, done)); }); 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); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.equal(service.getDirty().length, 1); @@ -121,12 +125,15 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); 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(() => { + model.load().done(() => { assert.ok(!service.isDirty(model.getResource())); model.textEditorModel.setValue('foo'); @@ -146,13 +153,16 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); 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(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(service.isDirty(model.getResource())); @@ -163,13 +173,16 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); 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(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(service.isDirty(model.getResource())); @@ -182,14 +195,17 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); 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); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(service.isDirty(model.getResource())); @@ -200,14 +216,17 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); 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); - model.load().then(() => { + model.load().done(() => { model.textEditorModel.setValue('foo'); assert.ok(service.isDirty(model.getResource())); @@ -218,6 +237,6 @@ suite('Files - TextFileService', () => { done(); }); - }); + }, error => onError(error, done)); }); }); \ No newline at end of file diff --git a/src/vs/workbench/services/themes/electron-browser/themeService.ts b/src/vs/workbench/services/themes/electron-browser/themeService.ts index 9be5cff8b6c..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'; @@ -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: { @@ -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: ExtensionMessageCollector): 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: ExtensionMessageCollector): 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; } } 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/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); 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', () => { 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(); 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); }); }); }); diff --git a/src/vs/workbench/workbench.main.ts b/src/vs/workbench/workbench.main.ts index 86a40d61df7..59819a4151a 100644 --- a/src/vs/workbench/workbench.main.ts +++ b/src/vs/workbench/workbench.main.ts @@ -84,13 +84,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';