mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 17:25:39 +01:00
deploy: f86fe93775
This commit is contained in:
parent
7d6e9bc8c2
commit
e6a4254a44
1368 changed files with 27536 additions and 24271 deletions
2
1913.js
2
1913.js
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(self.webpackChunkmy_application=self.webpackChunkmy_application||[]).push([[1913],{1913:(t,n,e)=>{e.r(n),e.d(n,{default:()=>r});const r='monaco.languages.register({ id: "mySpecialLanguage" });\n\nmonaco.languages.registerHoverProvider("mySpecialLanguage", {\n\tprovideHover: function (model, position) {\n\t\treturn xhr("./playground.html").then(function (res) {\n\t\t\treturn {\n\t\t\t\trange: new monaco.Range(\n\t\t\t\t\t1,\n\t\t\t\t\t1,\n\t\t\t\t\tmodel.getLineCount(),\n\t\t\t\t\tmodel.getLineMaxColumn(model.getLineCount())\n\t\t\t\t),\n\t\t\t\tcontents: [\n\t\t\t\t\t{ value: "**SOURCE**" },\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t"```html\\n" +\n\t\t\t\t\t\t\tres.responseText.substring(0, 200) +\n\t\t\t\t\t\t\t"\\n```",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t});\n\t},\n});\n\nmonaco.editor.create(document.getElementById("container"), {\n\tvalue: "\\n\\nHover over this text",\n\tlanguage: "mySpecialLanguage",\n});\n\nfunction xhr(url) {\n\tvar req = null;\n\treturn new Promise(\n\t\tfunction (c, e) {\n\t\t\treq = new XMLHttpRequest();\n\t\t\treq.onreadystatechange = function () {\n\t\t\t\tif (req._canceled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (req.readyState === 4) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t(req.status >= 200 && req.status < 300) ||\n\t\t\t\t\t\treq.status === 1223\n\t\t\t\t\t) {\n\t\t\t\t\t\tc(req);\n\t\t\t\t\t} else {\n\t\t\t\t\t\te(req);\n\t\t\t\t\t}\n\t\t\t\t\treq.onreadystatechange = function () {};\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treq.open("GET", url, true);\n\t\t\treq.responseType = "";\n\n\t\t\treq.send(null);\n\t\t},\n\t\tfunction () {\n\t\t\treq._canceled = true;\n\t\t\treq.abort();\n\t\t}\n\t);\n}\n'}}]);
|
||||
"use strict";(self.webpackChunkmy_application=self.webpackChunkmy_application||[]).push([[1913],{1913:(t,n,e)=>{e.r(n),e.d(n,{default:()=>r});const r='monaco.languages.register({ id: "mySpecialLanguage" });\n\nmonaco.languages.registerHoverProvider("mySpecialLanguage", {\n\tprovideHover: function (model, position) {\n\t\treturn xhr("./playground.html").then(function (res) {\n\t\t\treturn {\n\t\t\t\trange: new monaco.Range(\n\t\t\t\t\t1,\n\t\t\t\t\t1,\n\t\t\t\t\tmodel.getLineCount(),\n\t\t\t\t\tmodel.getLineMaxColumn(model.getLineCount())\n\t\t\t\t),\n\t\t\t\tcontents: [\n\t\t\t\t\t{ value: "**SOURCE**" },\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t"```html\\n" +\n\t\t\t\t\t\t\tres.responseText.substring(0, 200) +\n\t\t\t\t\t\t\t"\\n```",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t});\n\t},\n});\n\nmonaco.editor.create(document.getElementById("container"), {\n\tvalue: "\\n\\nHover over this text",\n\tlanguage: "mySpecialLanguage",\n});\n\nfunction xhr(url) {\n\tvar req = null;\n\treturn new Promise(function (c, e) {\n\t\treq = new XMLHttpRequest();\n\t\treq.onreadystatechange = function () {\n\t\t\tif (req._canceled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (req.readyState === 4) {\n\t\t\t\tif (\n\t\t\t\t\t(req.status >= 200 && req.status < 300) ||\n\t\t\t\t\treq.status === 1223\n\t\t\t\t) {\n\t\t\t\t\tc(req);\n\t\t\t\t} else {\n\t\t\t\t\te(req);\n\t\t\t\t}\n\t\t\t\treq.onreadystatechange = function () {};\n\t\t\t}\n\t\t};\n\n\t\treq.open("GET", url, true);\n\t\treq.responseType = "";\n\n\t\treq.send(null);\n\t}).catch(function () {\n\t\treq._canceled = true;\n\t\treq.abort();\n\t});\n}\n'}}]);
|
||||
//# sourceMappingURL=1913.js.map
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"1913.js","mappings":"8IAAA,4/C","sources":["file:////home/runner/work/monaco-editor/monaco-editor/website/src/website/data/playground-samples/extending-language-services/hover-provider-example/sample.js"],"sourcesContent":["export default \"monaco.languages.register({ id: \\\"mySpecialLanguage\\\" });\\n\\nmonaco.languages.registerHoverProvider(\\\"mySpecialLanguage\\\", {\\n\\tprovideHover: function (model, position) {\\n\\t\\treturn xhr(\\\"./playground.html\\\").then(function (res) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\trange: new monaco.Range(\\n\\t\\t\\t\\t\\t1,\\n\\t\\t\\t\\t\\t1,\\n\\t\\t\\t\\t\\tmodel.getLineCount(),\\n\\t\\t\\t\\t\\tmodel.getLineMaxColumn(model.getLineCount())\\n\\t\\t\\t\\t),\\n\\t\\t\\t\\tcontents: [\\n\\t\\t\\t\\t\\t{ value: \\\"**SOURCE**\\\" },\\n\\t\\t\\t\\t\\t{\\n\\t\\t\\t\\t\\t\\tvalue:\\n\\t\\t\\t\\t\\t\\t\\t\\\"```html\\\\n\\\" +\\n\\t\\t\\t\\t\\t\\t\\tres.responseText.substring(0, 200) +\\n\\t\\t\\t\\t\\t\\t\\t\\\"\\\\n```\\\",\\n\\t\\t\\t\\t\\t},\\n\\t\\t\\t\\t],\\n\\t\\t\\t};\\n\\t\\t});\\n\\t},\\n});\\n\\nmonaco.editor.create(document.getElementById(\\\"container\\\"), {\\n\\tvalue: \\\"\\\\n\\\\nHover over this text\\\",\\n\\tlanguage: \\\"mySpecialLanguage\\\",\\n});\\n\\nfunction xhr(url) {\\n\\tvar req = null;\\n\\treturn new Promise(\\n\\t\\tfunction (c, e) {\\n\\t\\t\\treq = new XMLHttpRequest();\\n\\t\\t\\treq.onreadystatechange = function () {\\n\\t\\t\\t\\tif (req._canceled) {\\n\\t\\t\\t\\t\\treturn;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tif (req.readyState === 4) {\\n\\t\\t\\t\\t\\tif (\\n\\t\\t\\t\\t\\t\\t(req.status >= 200 && req.status < 300) ||\\n\\t\\t\\t\\t\\t\\treq.status === 1223\\n\\t\\t\\t\\t\\t) {\\n\\t\\t\\t\\t\\t\\tc(req);\\n\\t\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\t\\te(req);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\treq.onreadystatechange = function () {};\\n\\t\\t\\t\\t}\\n\\t\\t\\t};\\n\\n\\t\\t\\treq.open(\\\"GET\\\", url, true);\\n\\t\\t\\treq.responseType = \\\"\\\";\\n\\n\\t\\t\\treq.send(null);\\n\\t\\t},\\n\\t\\tfunction () {\\n\\t\\t\\treq._canceled = true;\\n\\t\\t\\treq.abort();\\n\\t\\t}\\n\\t);\\n}\\n\";"],"names":[],"sourceRoot":""}
|
||||
{"version":3,"file":"1913.js","mappings":"8IAAA,m8C","sources":["file:////home/runner/work/monaco-editor/monaco-editor/website/src/website/data/playground-samples/extending-language-services/hover-provider-example/sample.js"],"sourcesContent":["export default \"monaco.languages.register({ id: \\\"mySpecialLanguage\\\" });\\n\\nmonaco.languages.registerHoverProvider(\\\"mySpecialLanguage\\\", {\\n\\tprovideHover: function (model, position) {\\n\\t\\treturn xhr(\\\"./playground.html\\\").then(function (res) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\trange: new monaco.Range(\\n\\t\\t\\t\\t\\t1,\\n\\t\\t\\t\\t\\t1,\\n\\t\\t\\t\\t\\tmodel.getLineCount(),\\n\\t\\t\\t\\t\\tmodel.getLineMaxColumn(model.getLineCount())\\n\\t\\t\\t\\t),\\n\\t\\t\\t\\tcontents: [\\n\\t\\t\\t\\t\\t{ value: \\\"**SOURCE**\\\" },\\n\\t\\t\\t\\t\\t{\\n\\t\\t\\t\\t\\t\\tvalue:\\n\\t\\t\\t\\t\\t\\t\\t\\\"```html\\\\n\\\" +\\n\\t\\t\\t\\t\\t\\t\\tres.responseText.substring(0, 200) +\\n\\t\\t\\t\\t\\t\\t\\t\\\"\\\\n```\\\",\\n\\t\\t\\t\\t\\t},\\n\\t\\t\\t\\t],\\n\\t\\t\\t};\\n\\t\\t});\\n\\t},\\n});\\n\\nmonaco.editor.create(document.getElementById(\\\"container\\\"), {\\n\\tvalue: \\\"\\\\n\\\\nHover over this text\\\",\\n\\tlanguage: \\\"mySpecialLanguage\\\",\\n});\\n\\nfunction xhr(url) {\\n\\tvar req = null;\\n\\treturn new Promise(function (c, e) {\\n\\t\\treq = new XMLHttpRequest();\\n\\t\\treq.onreadystatechange = function () {\\n\\t\\t\\tif (req._canceled) {\\n\\t\\t\\t\\treturn;\\n\\t\\t\\t}\\n\\n\\t\\t\\tif (req.readyState === 4) {\\n\\t\\t\\t\\tif (\\n\\t\\t\\t\\t\\t(req.status >= 200 && req.status < 300) ||\\n\\t\\t\\t\\t\\treq.status === 1223\\n\\t\\t\\t\\t) {\\n\\t\\t\\t\\t\\tc(req);\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\te(req);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treq.onreadystatechange = function () {};\\n\\t\\t\\t}\\n\\t\\t};\\n\\n\\t\\treq.open(\\\"GET\\\", url, true);\\n\\t\\treq.responseType = \\\"\\\";\\n\\n\\t\\treq.send(null);\\n\\t}).catch(function () {\\n\\t\\treq._canceled = true;\\n\\t\\treq.abort();\\n\\t});\\n}\\n\";"],"names":[],"sourceRoot":""}
|
||||
2
index.js
2
index.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2273
node_modules/monaco-editor-core/dev/bundleInfo.json
generated
vendored
2273
node_modules/monaco-editor-core/dev/bundleInfo.json
generated
vendored
File diff suppressed because it is too large
Load diff
928
node_modules/monaco-editor-core/dev/nls.metadata.json
generated
vendored
928
node_modules/monaco-editor-core/dev/nls.metadata.json
generated
vendored
File diff suppressed because it is too large
Load diff
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.de.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.de.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.es.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.es.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.fr.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.fr.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.it.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.it.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.ja.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.ja.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.ko.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.ko.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.ru.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.ru.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.zh-cn.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.zh-cn.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.zh-tw.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/common/worker/simpleWorker.nls.zh-tw.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
59
node_modules/monaco-editor-core/dev/vs/base/worker/workerMain.js
generated
vendored
59
node_modules/monaco-editor-core/dev/vs/base/worker/workerMain.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -9500,11 +9500,11 @@ define(__m[40/*vs/editor/common/languages/linkComputer*/], __M([0/*require*/,1/*
|
|||
if (_classifier === null) {
|
||||
_classifier = new characterClassifier_1.CharacterClassifier(0 /* CharacterClass.None */);
|
||||
// allow-any-unicode-next-line
|
||||
const FORCE_TERMINATION_CHARACTERS = ', \t<>\'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…';
|
||||
const FORCE_TERMINATION_CHARACTERS = ' \t<>\'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…';
|
||||
for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {
|
||||
_classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* CharacterClass.ForceTermination */);
|
||||
}
|
||||
const CANNOT_END_WITH_CHARACTERS = '.;:';
|
||||
const CANNOT_END_WITH_CHARACTERS = '.,;:';
|
||||
for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) {
|
||||
_classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CharacterClass.CannotEndIn */);
|
||||
}
|
||||
|
|
@ -11927,8 +11927,8 @@ define(__m[5/*vs/base/common/platform*/], __M([0/*require*/,1/*exports*/,48/*vs/
|
|||
exports.isMobile = _isMobile;
|
||||
exports.userAgent = _userAgent;
|
||||
/**
|
||||
* The language used for the user interface. The format of
|
||||
* the string is all lower case (e.g. zh-tw for Traditional
|
||||
* The language used for the user interface. or the locale specified by --locale
|
||||
* The format of the string is all lower case (e.g. zh-tw for Traditional
|
||||
* Chinese)
|
||||
*/
|
||||
exports.language = _language;
|
||||
|
|
@ -13504,7 +13504,7 @@ define(__m[7/*vs/base/common/event*/], __M([0/*require*/,1/*exports*/,8/*vs/base
|
|||
* @param disposable A disposable store to add the new EventEmitter to.
|
||||
*/
|
||||
function defer(event, disposable) {
|
||||
return debounce(event, () => void 0, 0, undefined, undefined, disposable);
|
||||
return debounce(event, () => void 0, 0, undefined, true, undefined, disposable);
|
||||
}
|
||||
Event.defer = defer;
|
||||
/**
|
||||
|
|
@ -13606,11 +13606,12 @@ define(__m[7/*vs/base/common/event*/], __M([0/*require*/,1/*exports*/,8/*vs/base
|
|||
disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter);
|
||||
return emitter.event;
|
||||
}
|
||||
function debounce(event, merge, delay = 100, leading = false, leakWarningThreshold, disposable) {
|
||||
function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) {
|
||||
let subscription;
|
||||
let output = undefined;
|
||||
let handle = undefined;
|
||||
let numDebouncedCalls = 0;
|
||||
let doFire;
|
||||
const options = {
|
||||
leakWarningThreshold,
|
||||
onWillAddFirstListener() {
|
||||
|
|
@ -13621,7 +13622,7 @@ define(__m[7/*vs/base/common/event*/], __M([0/*require*/,1/*exports*/,8/*vs/base
|
|||
emitter.fire(output);
|
||||
output = undefined;
|
||||
}
|
||||
const doFire = () => {
|
||||
doFire = () => {
|
||||
const _output = output;
|
||||
output = undefined;
|
||||
handle = undefined;
|
||||
|
|
@ -13642,7 +13643,13 @@ define(__m[7/*vs/base/common/event*/], __M([0/*require*/,1/*exports*/,8/*vs/base
|
|||
}
|
||||
});
|
||||
},
|
||||
onWillRemoveListener() {
|
||||
if (flushOnListenerRemove && numDebouncedCalls > 0) {
|
||||
doFire === null || doFire === void 0 ? void 0 : doFire();
|
||||
}
|
||||
},
|
||||
onDidRemoveLastListener() {
|
||||
doFire = undefined;
|
||||
subscription.dispose();
|
||||
}
|
||||
};
|
||||
|
|
@ -13668,7 +13675,7 @@ define(__m[7/*vs/base/common/event*/], __M([0/*require*/,1/*exports*/,8/*vs/base
|
|||
}
|
||||
last.push(e);
|
||||
return last;
|
||||
}, delay, undefined, undefined, disposable);
|
||||
}, delay, undefined, true, undefined, disposable);
|
||||
}
|
||||
Event.accumulate = accumulate;
|
||||
/**
|
||||
|
|
@ -13776,8 +13783,8 @@ define(__m[7/*vs/base/common/event*/], __M([0/*require*/,1/*exports*/,8/*vs/base
|
|||
latch() {
|
||||
return new ChainableEvent(latch(this.event, undefined, this.c));
|
||||
}
|
||||
debounce(merge, delay = 100, leading = false, leakWarningThreshold) {
|
||||
return new ChainableEvent(debounce(this.event, merge, delay, leading, leakWarningThreshold, this.c));
|
||||
debounce(merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold) {
|
||||
return new ChainableEvent(debounce(this.event, merge, delay, leading, flushOnListenerRemove, leakWarningThreshold, this.c));
|
||||
}
|
||||
on(listener, thisArgs, disposables) {
|
||||
return this.event(listener, thisArgs, disposables);
|
||||
|
|
@ -14070,8 +14077,10 @@ define(__m[7/*vs/base/common/event*/], __M([0/*require*/,1/*exports*/,8/*vs/base
|
|||
this.d.onDidAddListener(this, callback, thisArgs);
|
||||
}
|
||||
const result = listener.subscription.set(() => {
|
||||
var _a, _b;
|
||||
removeMonitor === null || removeMonitor === void 0 ? void 0 : removeMonitor();
|
||||
if (!this.j) {
|
||||
(_b = (_a = this.d) === null || _a === void 0 ? void 0 : _a.onWillRemoveListener) === null || _b === void 0 ? void 0 : _b.call(_a, this);
|
||||
removeListener();
|
||||
if (this.d && this.d.onDidRemoveLastListener) {
|
||||
const hasListeners = (this.n && !this.n.isEmpty());
|
||||
|
|
@ -15701,10 +15710,10 @@ define(__m[53/*vs/editor/common/languages*/], __M([0/*require*/,1/*exports*/,30/
|
|||
exports.TokenizationRegistry = exports.InlayHintKind = exports.Command = exports.FoldingRangeKind = exports.SymbolKinds = exports.isLocationLink = exports.DocumentHighlightKind = exports.SignatureHelpTriggerKind = exports.InlineCompletionTriggerKind = exports.CompletionItemKinds = exports.EncodedTokenizationResult = exports.TokenizationResult = exports.Token = void 0;
|
||||
class Token {
|
||||
constructor(offset, type, language) {
|
||||
this._tokenBrand = undefined;
|
||||
this.offset = offset;
|
||||
this.type = type;
|
||||
this.language = language;
|
||||
this._tokenBrand = undefined;
|
||||
}
|
||||
toString() {
|
||||
return '(' + this.offset + ', ' + this.type + ')';
|
||||
|
|
@ -15716,9 +15725,9 @@ define(__m[53/*vs/editor/common/languages*/], __M([0/*require*/,1/*exports*/,30/
|
|||
*/
|
||||
class TokenizationResult {
|
||||
constructor(tokens, endState) {
|
||||
this._tokenizationResultBrand = undefined;
|
||||
this.tokens = tokens;
|
||||
this.endState = endState;
|
||||
this._tokenizationResultBrand = undefined;
|
||||
}
|
||||
}
|
||||
exports.TokenizationResult = TokenizationResult;
|
||||
|
|
@ -15726,10 +15735,17 @@ define(__m[53/*vs/editor/common/languages*/], __M([0/*require*/,1/*exports*/,30/
|
|||
* @internal
|
||||
*/
|
||||
class EncodedTokenizationResult {
|
||||
constructor(tokens, endState) {
|
||||
this._encodedTokenizationResultBrand = undefined;
|
||||
constructor(
|
||||
/**
|
||||
* The tokens in binary format. Each token occupies two array indices. For token i:
|
||||
* - at offset 2*i => startIndex
|
||||
* - at offset 2*i + 1 => metadata
|
||||
*
|
||||
*/
|
||||
tokens, endState) {
|
||||
this.tokens = tokens;
|
||||
this.endState = endState;
|
||||
this._encodedTokenizationResultBrand = undefined;
|
||||
}
|
||||
}
|
||||
exports.EncodedTokenizationResult = EncodedTokenizationResult;
|
||||
|
|
@ -15919,6 +15935,19 @@ define(__m[53/*vs/editor/common/languages*/], __M([0/*require*/,1/*exports*/,30/
|
|||
SymbolKinds.toIcon = toIcon;
|
||||
})(SymbolKinds = exports.SymbolKinds || (exports.SymbolKinds = {}));
|
||||
class FoldingRangeKind {
|
||||
/**
|
||||
* Returns a {@link FoldingRangeKind} for the given value.
|
||||
*
|
||||
* @param value of the kind.
|
||||
*/
|
||||
static fromValue(value) {
|
||||
switch (value) {
|
||||
case 'comment': return FoldingRangeKind.Comment;
|
||||
case 'imports': return FoldingRangeKind.Imports;
|
||||
case 'region': return FoldingRangeKind.Region;
|
||||
}
|
||||
return new FoldingRangeKind(value);
|
||||
}
|
||||
/**
|
||||
* Creates a new {@link FoldingRangeKind}.
|
||||
*
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/base/worker/workerMain.js.map
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/base/worker/workerMain.js.map
generated
vendored
File diff suppressed because one or more lines are too long
664
node_modules/monaco-editor-core/dev/vs/editor/editor.main.css
generated
vendored
664
node_modules/monaco-editor-core/dev/vs/editor/editor.main.css
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -235,6 +235,7 @@
|
|||
}
|
||||
|
||||
.monaco-button-dropdown > .monaco-button.monaco-dropdown-button {
|
||||
border: 1px solid var(--vscode-button-border, transparent);
|
||||
border-left-width: 0 !important;
|
||||
border-radius: 0 2px 2px 0;
|
||||
}
|
||||
|
|
@ -1242,6 +1243,8 @@
|
|||
background:rgba(0,0,0,0);
|
||||
|
||||
transition: opacity 100ms linear;
|
||||
/* In front of peek view */
|
||||
z-index: 11;
|
||||
}
|
||||
.monaco-scrollable-element > .invisible {
|
||||
opacity: 0;
|
||||
|
|
@ -1781,310 +1784,6 @@
|
|||
padding: 2px;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
.quick-input-widget {
|
||||
position: absolute;
|
||||
width: 600px;
|
||||
z-index: 2550;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
-webkit-app-region: no-drag;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.quick-input-titlebar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-top-left-radius: 5px; /* match border radius of quick input widget */
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
.quick-input-left-action-bar {
|
||||
display: flex;
|
||||
margin-left: 4px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.quick-input-title {
|
||||
padding: 3px 0px;
|
||||
text-align: center;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.quick-input-right-action-bar {
|
||||
display: flex;
|
||||
margin-right: 4px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.quick-input-right-action-bar > .actions-container {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.quick-input-titlebar .monaco-action-bar .action-label.codicon {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.quick-input-description {
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.quick-input-header .quick-input-description {
|
||||
margin: 4px 2px;
|
||||
}
|
||||
|
||||
.quick-input-header {
|
||||
display: flex;
|
||||
padding: 8px 6px 6px 6px;
|
||||
}
|
||||
|
||||
.quick-input-widget.hidden-input .quick-input-header {
|
||||
/* reduce margins and paddings when input box hidden */
|
||||
padding: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.quick-input-and-message {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-grow: 1;
|
||||
min-width: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.quick-input-check-all {
|
||||
align-self: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.quick-input-filter {
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.quick-input-box {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.quick-input-widget.show-checkboxes .quick-input-box,
|
||||
.quick-input-widget.show-checkboxes .quick-input-message {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.quick-input-visible-count {
|
||||
position: absolute;
|
||||
left: -10000px;
|
||||
}
|
||||
|
||||
.quick-input-count {
|
||||
align-self: center;
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.quick-input-count .monaco-count-badge {
|
||||
vertical-align: middle;
|
||||
padding: 2px 4px;
|
||||
border-radius: 2px;
|
||||
min-height: auto;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.quick-input-action {
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.quick-input-action .monaco-text-button {
|
||||
font-size: 11px;
|
||||
padding: 0 6px;
|
||||
display: flex;
|
||||
height: 25px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.quick-input-message {
|
||||
margin-top: -1px;
|
||||
padding: 5px;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.quick-input-message > .codicon {
|
||||
margin: 0 0.2em;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.quick-input-progress.monaco-progress-container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.quick-input-progress.monaco-progress-container,
|
||||
.quick-input-progress.monaco-progress-container .progress-bit {
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.quick-input-list {
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.quick-input-widget.hidden-input .quick-input-list {
|
||||
margin-top: 4px; /* reduce margins when input box hidden */
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-list {
|
||||
overflow: hidden;
|
||||
max-height: calc(20 * 22px);
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-scrollable-element {
|
||||
padding: 0px 5px;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry {
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry.quick-input-list-separator-border {
|
||||
border-top-width: 1px;
|
||||
border-top-style: solid;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-list-row {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border {
|
||||
border-top-style: none;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-label {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-checkbox {
|
||||
align-self: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.quick-input-widget .quick-input-list .quick-input-list-checkbox {
|
||||
display: none;
|
||||
}
|
||||
.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows > .quick-input-list-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label,
|
||||
.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {
|
||||
flex: 1; /* make sure the icon label grows within the row */
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*='codicon-'] {
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows .monaco-highlighted-label > span {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding {
|
||||
margin-right: 8px; /* separate from the separator label or scrollbar if any */
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-label-meta {
|
||||
opacity: 0.7;
|
||||
line-height: normal;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-highlighted-label .highlight {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry .quick-input-list-separator {
|
||||
margin-right: 4px; /* separate from keybindings or actions */
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar {
|
||||
display: flex;
|
||||
flex: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar .action-label {
|
||||
/*
|
||||
* By default, actions in the quick input action bar are hidden
|
||||
* until hovered over them or selected.
|
||||
*/
|
||||
display: none;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon {
|
||||
margin-right: 4px;
|
||||
padding: 0px 2px 2px 2px;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar {
|
||||
margin-right: 4px; /* separate from scrollbar */
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,
|
||||
.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,
|
||||
.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
/* focused items in quick pick */
|
||||
.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,
|
||||
.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator {
|
||||
color: inherit
|
||||
}
|
||||
.quick-input-list .monaco-list-row.focused .monaco-keybinding-key {
|
||||
background: none;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
|
|
@ -4180,38 +3879,43 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
.monaco-editor .sticky-line {
|
||||
color : var(--vscode-editorLineNumber-foreground);
|
||||
overflow : hidden;
|
||||
white-space : nowrap;
|
||||
display : inline-block;
|
||||
color: var(--vscode-editorLineNumber-foreground);
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-line-number {
|
||||
text-align : right;
|
||||
float : left;
|
||||
text-align: right;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-line-root {
|
||||
background-color : inherit;
|
||||
overflow : hidden;
|
||||
white-space : nowrap;
|
||||
width : 100%;
|
||||
background-color: inherit;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.monaco-editor.hc-black .sticky-widget,
|
||||
.monaco-editor.hc-light .sticky-widget {
|
||||
border-bottom: 1px solid var(--vscode-contrastBorder);
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-line-root:hover {
|
||||
background-color: var(--vscode-editorStickyScrollHover-background);
|
||||
cursor : pointer;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-widget {
|
||||
width : 100%;
|
||||
box-shadow : var(--vscode-scrollbar-shadow) 0 3px 2px -2px;
|
||||
z-index : 11;
|
||||
background-color : var(--vscode-editorStickyScroll-background);
|
||||
width: 100%;
|
||||
box-shadow: var(--vscode-scrollbar-shadow) 0 3px 2px -2px;
|
||||
z-index: 11;
|
||||
background-color: var(--vscode-editorStickyScroll-background);
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-widget.peek {
|
||||
background-color : var(--vscode-peekViewEditorStickScroll-background);
|
||||
background-color: var(--vscode-peekViewEditorStickyScroll-background);
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
|
|
@ -4857,7 +4561,7 @@
|
|||
box-sizing: border-box;
|
||||
border: 1px solid var(--vscode-editor-selectionHighlightBorder);
|
||||
}
|
||||
.monaco-editor.hc-black .selectionHighlight, .monaco-editor.hc-light .selectionHighlight {
|
||||
.monaco-editor.hc-black .focused .selectionHighlight, .monaco-editor.hc-light .focused .selectionHighlight {
|
||||
border-style: dotted;
|
||||
}
|
||||
|
||||
|
|
@ -4879,7 +4583,7 @@
|
|||
border-style: dotted;
|
||||
}
|
||||
|
||||
.monaco-editor .focused .wordHighlightText {
|
||||
.monaco-editor .wordHighlightText {
|
||||
background-color: var(--vscode-editor-wordHighlightTextBackground);
|
||||
box-sizing: border-box;
|
||||
border: 1px solid var(--vscode-editor-wordHighlightTextBorder);
|
||||
|
|
@ -5319,13 +5023,321 @@
|
|||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
.quick-input-widget {
|
||||
position: absolute;
|
||||
width: 600px;
|
||||
z-index: 2550;
|
||||
left: 50%;
|
||||
margin-left: -300px;
|
||||
-webkit-app-region: no-drag;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.quick-input-titlebar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-top-left-radius: 5px; /* match border radius of quick input widget */
|
||||
border-top-right-radius: 5px;
|
||||
}
|
||||
|
||||
.quick-input-left-action-bar {
|
||||
display: flex;
|
||||
margin-left: 4px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.quick-input-title {
|
||||
padding: 3px 0px;
|
||||
text-align: center;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.quick-input-right-action-bar {
|
||||
display: flex;
|
||||
margin-right: 4px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.quick-input-right-action-bar > .actions-container {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.quick-input-titlebar .monaco-action-bar .action-label.codicon {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.quick-input-description {
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.quick-input-header .quick-input-description {
|
||||
margin: 4px 2px;
|
||||
}
|
||||
|
||||
.quick-input-header {
|
||||
display: flex;
|
||||
padding: 8px 6px 6px 6px;
|
||||
}
|
||||
|
||||
.quick-input-widget.hidden-input .quick-input-header {
|
||||
/* reduce margins and paddings when input box hidden */
|
||||
padding: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.quick-input-and-message {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-grow: 1;
|
||||
min-width: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.quick-input-check-all {
|
||||
align-self: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.quick-input-filter {
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.quick-input-box {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.quick-input-widget.show-checkboxes .quick-input-box,
|
||||
.quick-input-widget.show-checkboxes .quick-input-message {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.quick-input-visible-count {
|
||||
position: absolute;
|
||||
left: -10000px;
|
||||
}
|
||||
|
||||
.quick-input-count {
|
||||
align-self: center;
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.quick-input-count .monaco-count-badge {
|
||||
vertical-align: middle;
|
||||
padding: 2px 4px;
|
||||
border-radius: 2px;
|
||||
min-height: auto;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.quick-input-action {
|
||||
margin-left: 6px;
|
||||
}
|
||||
|
||||
.quick-input-action .monaco-text-button {
|
||||
font-size: 11px;
|
||||
padding: 0 6px;
|
||||
display: flex;
|
||||
height: 25px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.quick-input-message {
|
||||
margin-top: -1px;
|
||||
padding: 5px;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.quick-input-message > .codicon {
|
||||
margin: 0 0.2em;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
/* Links in descriptions & validations */
|
||||
.quick-input-message a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.quick-input-progress.monaco-progress-container {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.quick-input-progress.monaco-progress-container,
|
||||
.quick-input-progress.monaco-progress-container .progress-bit {
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.quick-input-list {
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.quick-input-widget.hidden-input .quick-input-list {
|
||||
margin-top: 4px; /* reduce margins when input box hidden */
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-list {
|
||||
overflow: hidden;
|
||||
max-height: calc(20 * 22px);
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-scrollable-element {
|
||||
padding: 0px 5px;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry {
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry.quick-input-list-separator-border {
|
||||
border-top-width: 1px;
|
||||
border-top-style: solid;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-list-row {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border {
|
||||
border-top-style: none;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-label {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-checkbox {
|
||||
align-self: center;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.quick-input-widget .quick-input-list .quick-input-list-checkbox {
|
||||
display: none;
|
||||
}
|
||||
.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows > .quick-input-list-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label,
|
||||
.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {
|
||||
flex: 1; /* make sure the icon label grows within the row */
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*='codicon-'] {
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-rows .monaco-highlighted-label > span {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding {
|
||||
margin-right: 8px; /* separate from the separator label or scrollbar if any */
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-label-meta {
|
||||
opacity: 0.7;
|
||||
line-height: normal;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.quick-input-list .monaco-highlighted-label .highlight {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry .quick-input-list-separator {
|
||||
margin-right: 4px; /* separate from keybindings or actions */
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar {
|
||||
display: flex;
|
||||
flex: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar .action-label {
|
||||
/*
|
||||
* By default, actions in the quick input action bar are hidden
|
||||
* until hovered over them or selected.
|
||||
*/
|
||||
display: none;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon {
|
||||
margin-right: 4px;
|
||||
padding: 0px 2px 2px 2px;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry-action-bar {
|
||||
margin-right: 4px; /* separate from scrollbar */
|
||||
}
|
||||
|
||||
.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,
|
||||
.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,
|
||||
.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
/* focused items in quick pick */
|
||||
.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,
|
||||
.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator {
|
||||
color: inherit
|
||||
}
|
||||
.quick-input-list .monaco-list-row.focused .monaco-keybinding-key {
|
||||
background: none;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
.monaco-editor .zone-widget .codicon.codicon-error,
|
||||
.markers-panel .marker-icon.codicon.codicon-error,
|
||||
.markers-panel .marker-icon.error, .markers-panel .marker-icon .codicon.codicon-error,
|
||||
.text-search-provider-messages .providerMessage .codicon.codicon-error,
|
||||
.extensions-viewlet > .extensions .codicon.codicon-error,
|
||||
.extension-editor .codicon.codicon-error,
|
||||
|
|
@ -5334,7 +5346,7 @@
|
|||
}
|
||||
|
||||
.monaco-editor .zone-widget .codicon.codicon-warning,
|
||||
.markers-panel .marker-icon.codicon.codicon-warning,
|
||||
.markers-panel .marker-icon.warning, .markers-panel .marker-icon .codicon.codicon-warning,
|
||||
.text-search-provider-messages .providerMessage .codicon.codicon-warning,
|
||||
.extensions-viewlet > .extensions .codicon.codicon-warning,
|
||||
.extension-editor .codicon.codicon-warning,
|
||||
|
|
@ -5343,7 +5355,7 @@
|
|||
}
|
||||
|
||||
.monaco-editor .zone-widget .codicon.codicon-info,
|
||||
.markers-panel .marker-icon.codicon.codicon-info,
|
||||
.markers-panel .marker-icon.info, .markers-panel .marker-icon .codicon.codicon-info,
|
||||
.text-search-provider-messages .providerMessage .codicon.codicon-info,
|
||||
.extensions-viewlet > .extensions .codicon.codicon-info,
|
||||
.extension-editor .codicon.codicon-info,
|
||||
|
|
|
|||
11188
node_modules/monaco-editor-core/dev/vs/editor/editor.main.js
generated
vendored
11188
node_modules/monaco-editor-core/dev/vs/editor/editor.main.js
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/monaco-editor-core/dev/vs/editor/editor.main.js.map
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/editor/editor.main.js.map
generated
vendored
File diff suppressed because one or more lines are too long
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.de.js
generated
vendored
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.de.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"Zurück",
|
||||
"Drücken Sie die EINGABETASTE, um Ihre Eingabe zu bestätigen, oder ESC, um den Vorgang abzubrechen.",
|
||||
"{0}/{1}",
|
||||
"Nehmen Sie eine Eingabe vor, um die Ergebnisse einzugrenzen.",
|
||||
"Aktivieren Sie alle Kontrollkästchen",
|
||||
"{0} Ergebnisse",
|
||||
"{0} ausgewählt",
|
||||
"OK",
|
||||
"Benutzerdefiniert",
|
||||
"Zurück ({0})",
|
||||
"Zurück",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"Schnelleingabe",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"Editor",
|
||||
"Auf den Editor kann derzeit nicht zugegriffen werden. Drücken Sie {0}, um die Optionen anzuzeigen.",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"Steuert, ob die semantische Hervorhebung für die Sprachen angezeigt wird, die sie unterstützen.",
|
||||
"Lassen Sie Peek-Editoren geöffnet, auch wenn Sie auf ihren Inhalt doppelklicken oder auf die ESCAPETASTE klicken.",
|
||||
"Zeilen, die diese Länge überschreiten, werden aus Leistungsgründen nicht tokenisiert",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"Definiert die Klammersymbole, die den Einzug vergrößern oder verkleinern.",
|
||||
"Das öffnende Klammerzeichen oder die Zeichenfolgensequenz.",
|
||||
"Das schließende Klammerzeichen oder die Zeichenfolgensequenz.",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"Definiert zulässige Zeichen, die nicht hervorgehoben werden.",
|
||||
"Unicodezeichen, die in zulässigen Gebietsschemas üblich sind, werden nicht hervorgehoben.",
|
||||
"Steuert, ob Inline-Vorschläge automatisch im Editor angezeigt werden.",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"Die Symbolleiste „Inline-Vorschlag“ anzeigen, wenn ein Inline-Vorschlag angezeigt wird.",
|
||||
"Die Symbolleiste „Inline-Vorschlag“ anzeigen, wenn Sie mit dem Mauszeiger auf einen Inline-Vorschlag zeigen.",
|
||||
"Steuert, wann die Inlinevorschlagssymbolleiste angezeigt werden soll.",
|
||||
"Steuert, ob die Klammerpaar-Farbgebung aktiviert ist oder nicht. Verwenden Sie {0}, um die Hervorhebungsfarben der Klammer zu überschreiben.",
|
||||
"Steuert, ob jeder Klammertyp über einen eigenen unabhängigen Farbpool verfügt.",
|
||||
"Aktiviert Klammernpaarführungslinien.",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"Steuert, ob Filter- und Suchvorschläge geringfügige Tippfehler berücksichtigen.",
|
||||
"Steuert, ob bei der Sortierung Wörter priorisiert werden, die in der Nähe des Cursors stehen.",
|
||||
"Steuert, ob gespeicherte Vorschlagauswahlen in verschiedenen Arbeitsbereichen und Fenstern gemeinsam verwendet werden (dafür ist \"#editor.suggestSelection#\" erforderlich).",
|
||||
"Aktivieren Sie das Vorschlagswidget immer, wenn IntelliSense automatisch ausgelöst wird.",
|
||||
"Aktivieren Sie den Vorschlag nie, wenn IntelliSense automatisch ausgelöst wird.",
|
||||
"Aktivieren Sie das Vorschlagswidget nur, wenn IntelliSense aus einem Auslöserzeichen ausgelöst wird.",
|
||||
"Aktivieren Sie das Vorschlagswidget nur, wenn IntelliSense während Ihrer Eingabe ausgelöst wird.",
|
||||
"Steuert, ob das Vorschlagswidget aktiv wird, wenn es über einen schnellen Vorschlag oder ein Auslöserzeichen ausgelöst wird. Beachten Sie, dass das Widget immer aktiv ist, wenn es explizit aufgerufen wird, z. B. über „STRG+LEERTASTE“.",
|
||||
"Wählen Sie immer einen Vorschlag aus, wenn IntelliSense automatisch ausgelöst wird.",
|
||||
"Wählen Sie niemals einen Vorschlag aus, wenn IntelliSense automatisch ausgelöst wird.",
|
||||
"Wählen Sie einen Vorschlag nur aus, wenn IntelliSense aus einem Triggerzeichen ausgelöst wird.",
|
||||
"Wählen Sie einen Vorschlag nur aus, wenn Sie IntelliSense während der Eingabe auslösen.",
|
||||
"Steuert, ob ein Vorschlag ausgewählt wird, wenn das Widget angezeigt wird. Beachten Sie, dass dies nur für automatisch ausgelöste Vorschläge gilt (\"#editor.quickSuggestions#\" und \"#editor.suggestOnTriggerCharacters#\"), und dass ein Vorschlag immer ausgewählt wird, wenn er explizit aufgerufen wird, z. B. über STRG+LEERTASTE.",
|
||||
"Steuert, ob ein aktiver Schnipsel verhindert, dass der Bereich \"Schnelle Vorschläge\" angezeigt wird.",
|
||||
"Steuert, ob Symbole in Vorschlägen ein- oder ausgeblendet werden.",
|
||||
"Steuert die Sichtbarkeit der Statusleiste unten im Vorschlagswidget.",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"Der Zeilenumbruch erfolgt beim Mindestanzeigebereich und \"#editor.wordWrapColumn\".",
|
||||
"Steuert, wie der Zeilenumbruch durchgeführt werden soll.",
|
||||
"Steuert die umschließende Spalte des Editors, wenn \"#editor.wordWrap#\" den Wert \"wordWrapColumn\" oder \"bounded\" aufweist.",
|
||||
"Steuert, ob der Editor Registerkarten empfängt oder zur Navigation zur Workbench zurückgibt.",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"Hintergrundfarbe zur Hervorhebung der Zeile an der Cursorposition.",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"Gibt an, ob ein Inline-Vorschlag sichtbar ist.",
|
||||
"Gibt an, ob der Inline-Vorschlag mit Leerzeichen beginnt.",
|
||||
"Ob der Inline-Vorschlag mit Leerzeichen beginnt, das kleiner ist als das, was durch die Tabulatortaste eingefügt werden würde",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"Gibt an, ob ein Inlinevorschlag rückgängig machen würde.",
|
||||
"Gibt an, ob die Symbolleiste „Inline-Vorschlag“ immer sichtbar sein soll.",
|
||||
"Nächsten Inline-Vorschlag anzeigen",
|
||||
"Vorherigen Inline-Vorschlag anzeigen",
|
||||
"Inline-Vorschlag auslösen",
|
||||
"Nächstes Wort des Inline-Vorschlags annehmen",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"Nächstes Wort des Inline-Vorschlags annehmen",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"Wort annehmen",
|
||||
"Inline-Vorschlag annehmen",
|
||||
"Annehmen",
|
||||
"Inlinevorschlag ausblenden",
|
||||
"Symbolleiste immer anzeigen",
|
||||
"\"Wort annehmen\" rückgängig machen",
|
||||
"\"Wort annehmen\" rückgängig machen",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"Vorschlag:",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"Symbol für die Anzeige des nächsten Parameterhinweises.",
|
||||
"Symbol für die Anzeige des vorherigen Parameterhinweises.",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"Zurück",
|
||||
"Weiter",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"Zeilenauswahl erweitern",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"Ungewöhnliche Zeilentrennzeichen",
|
||||
"Ungewöhnliche Zeilentrennzeichen erkannt",
|
||||
"Die Datei \"{0}\" enthält mindestens ein ungewöhnliches Zeilenabschlusszeichen, z. B. Zeilentrennzeichen (LS) oder Absatztrennzeichen (PS).\r\n\r\nEs wird empfohlen, sie aus der Datei zu entfernen. Dies kann über \"editor.unusualLineTerminators\" konfiguriert werden.",
|
||||
"Entfernen ungewöhnlicher Zeilenabschlusszeichen",
|
||||
"&&Ungewöhnliche Zeilenabschlusszeichen entfernen",
|
||||
"Ignorieren",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"Keine Inlay-Hinweise in der Zeile",
|
||||
"Aufgabe abgeschlossen",
|
||||
"Aufgabe fehlgeschlagen",
|
||||
"Terminalbefehl fehlgeschlagen",
|
||||
"Terminalglocke",
|
||||
"Notebookzelle abgeschlossen",
|
||||
"Notebookzelle fehlgeschlagen",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"zuletzt verwendet",
|
||||
"commonly used",
|
||||
"häufig verwendet",
|
||||
"andere Befehle",
|
||||
"Der Befehl {0} hat einen Fehler ausgelöst ({1}).",
|
||||
"Der Befehl \"{0}\" hat zu einem Fehler geführt.",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"Zurück",
|
||||
"Drücken Sie die EINGABETASTE, um Ihre Eingabe zu bestätigen, oder ESC, um den Vorgang abzubrechen.",
|
||||
"{0}/{1}",
|
||||
"Nehmen Sie eine Eingabe vor, um die Ergebnisse einzugrenzen.",
|
||||
"Aktivieren Sie alle Kontrollkästchen",
|
||||
"{0} Ergebnisse",
|
||||
"{0} ausgewählt",
|
||||
"OK",
|
||||
"Benutzerdefiniert",
|
||||
"Zurück ({0})",
|
||||
"Zurück",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"Schnelleingabe",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"Klicken, um den Befehl \"{0}\" auszuführen",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"Allgemeine Vordergrundfarbe. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.",
|
||||
"Allgemeine Vordergrundfarbe. Diese Farbe wird nur verwendet, wenn sie nicht durch eine Komponente überschrieben wird.",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"Hintergrundfarbe der gefilterten Übereinstimmung",
|
||||
"Rahmenfarbe der gefilterten Übereinstimmung",
|
||||
"Strukturstrichfarbe für die Einzugsführungslinien.",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"Strukturstrichfarbe für die Einzugslinien, die nicht aktiv sind.",
|
||||
"Tabellenrahmenfarbe zwischen Spalten.",
|
||||
"Hintergrundfarbe für ungerade Tabellenzeilen.",
|
||||
"Hintergrundfarbe für nicht hervorgehobene Listen-/Strukturelemente.",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.de", {
|
|||
"\"{0}\" konnte nicht für alle Dateien rückgängig gemacht werden, weil bereits ein Vorgang zum Rückgängigmachen oder Wiederholen für \"{1}\" durchgeführt wird.",
|
||||
"\"{0}\" konnte nicht für alle Dateien rückgängig gemacht werden, weil in der Zwischenzeit bereits ein Vorgang zum Rückgängigmachen oder Wiederholen durchgeführt wurde.",
|
||||
"Möchten Sie \"{0}\" für alle Dateien rückgängig machen?",
|
||||
"In {0} Dateien rückgängig machen",
|
||||
"Datei rückgängig machen",
|
||||
"Abbrechen",
|
||||
"&&In {0} Dateien rückgängig machen",
|
||||
"&&Datei rückgängig machen",
|
||||
"\"{0}\" konnte nicht rückgängig gemacht werden, weil bereits ein Vorgang zum Rückgängigmachen oder Wiederholen durchgeführt wird.",
|
||||
"Möchten Sie \"{0}\" rückgängig machen?",
|
||||
"Ja",
|
||||
"&&Ja",
|
||||
"Nein",
|
||||
"\"{0}\" konnte nicht in allen Dateien wiederholt werden. {1}",
|
||||
"\"{0}\" konnte nicht in allen Dateien wiederholt werden. {1}",
|
||||
|
|
|
|||
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.es.js
generated
vendored
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.es.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"Atrás",
|
||||
"Presione \"Entrar\" para confirmar su entrada o \"Esc\" para cancelar",
|
||||
"{0}/{1}",
|
||||
"Escriba para restringir los resultados.",
|
||||
"Activar o desactivar todas las casillas",
|
||||
"{0} resultados",
|
||||
"{0} seleccionados",
|
||||
"Aceptar",
|
||||
"Personalizado",
|
||||
"Atrás ({0})",
|
||||
"Atrás",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"Entrada rápida",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"editor",
|
||||
"El editor no es accesible en este momento. Pulse {0} para ver las opciones.",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"Controla si se muestra semanticHighlighting para los idiomas que lo admiten.",
|
||||
"Mantiene abiertos los editores interactivos, incluso al hacer doble clic en su contenido o presionar \"Escape\".",
|
||||
"Las lineas por encima de esta longitud no se tokenizarán por razones de rendimiento.",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"Define los corchetes que aumentan o reducen la sangría.",
|
||||
"Secuencia de cadena o corchete de apertura.",
|
||||
"Secuencia de cadena o corchete de cierre.",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"Define los caracteres permitidos que no se resaltan.",
|
||||
"Los caracteres Unicode que son comunes en las configuraciones regionales permitidas no se resaltan.",
|
||||
"Controla si se deben mostrar automáticamente las sugerencias alineadas en el editor.",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"Muestra la barra de herramientas de sugerencias insertadas cada vez que se muestra una sugerencia insertada.",
|
||||
"Muestra la barra de herramientas de sugerencias insertadas al mantener el puntero sobre una sugerencia insertada.",
|
||||
"Controla cuándo mostrar la barra de herramientas de sugerencias insertadas.",
|
||||
"Controla si está habilitada o no la coloración de pares de corchetes. Use {0} para invalidar los colores de resaltado de corchete.",
|
||||
"Controla si cada tipo de corchete tiene su propio grupo de colores independiente.",
|
||||
"Habilita guías de par de corchetes.",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"Controla si el filtrado y la ordenación de sugerencias se tienen en cuenta para los errores ortográficos pequeños.",
|
||||
"Controla si la ordenación mejora las palabras que aparecen cerca del cursor.",
|
||||
"Controla si las selecciones de sugerencias recordadas se comparten entre múltiples áreas de trabajo y ventanas (necesita \"#editor.suggestSelection#\").",
|
||||
"Active siempre el widget de sugerencias al desencadenar IntelliSense automáticamente.",
|
||||
"Nunca active la sugerencia cuando se desencadene IntelliSense automáticamente.",
|
||||
"Active el widget de sugerencias solo cuando desencadene IntelliSense desde un carácter de desencadenador.",
|
||||
"Active el widget de sugerencias solo cuando desencadene IntelliSense mientras escribe.",
|
||||
"Controla si el widget de sugerencias se activa cuando se desencadena a través de sugerencias rápidas o caracteres de desencadenador. Tenga en cuenta que el widget siempre está activo cuando se invoca explícitamente, por ejemplo, mediante \"Ctrl+Espacio\".",
|
||||
"Seleccione siempre una sugerencia cuando se desencadene IntelliSense automáticamente.",
|
||||
"Nunca seleccione una sugerencia cuando desencadene IntelliSense automáticamente.",
|
||||
"Seleccione una sugerencia solo cuando desencadene IntelliSense desde un carácter de desencadenador.",
|
||||
"Seleccione una sugerencia solo cuando desencadene IntelliSense mientras escribe.",
|
||||
"Controla si se selecciona una sugerencia cuando se muestra el widget. Tenga en cuenta que esto solo se aplica a las sugerencias desencadenadas automáticamente (`#editor.quickSuggestions#` y `#editor.suggestOnTriggerCharacters#`) y que siempre se selecciona una sugerencia cuando se invoca explícitamente, por ejemplo, a través de \'Ctrl+Espacio\'.",
|
||||
"Controla si un fragmento de código activo impide sugerencias rápidas.",
|
||||
"Controla si mostrar u ocultar iconos en sugerencias.",
|
||||
"Controla la visibilidad de la barra de estado en la parte inferior del widget de sugerencias.",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"Las líneas se ajustarán al valor que sea inferior: el tamaño de la ventanilla o el valor de \"#editor.wordWrapColumn#\".",
|
||||
"Controla cómo deben ajustarse las líneas.",
|
||||
"Controla la columna de ajuste del editor cuando \"#editor.wordWrap#\" es \"wordWrapColumn\" o \"bounded\".",
|
||||
"Controla si el editor recibe las pestañas o las aplaza al área de trabajo para la navegación.",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"Color de fondo para la línea resaltada en la posición del cursor.",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"Si una sugerencia alineada está visible",
|
||||
"Si la sugerencia alineada comienza con un espacio en blanco",
|
||||
"Si la sugerencia insertada comienza con un espacio en blanco menor que lo que se insertaría mediante tabulación",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"Si deshacer desharía una sugerencia insertada",
|
||||
"Indica si la barra de herramientas de sugerencias insertada debe estar siempre visible",
|
||||
"Mostrar sugerencia alineada siguiente",
|
||||
"Mostrar sugerencia alineada anterior",
|
||||
"Desencadenar sugerencia alineada",
|
||||
"Aceptar la siguiente palabra de sugerencia insertada",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"Aceptar la siguiente palabra de sugerencia insertada",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"Aceptar palabra",
|
||||
"Aceptar la sugerencia insertada",
|
||||
"Aceptar",
|
||||
"Ocultar la sugerencia insertada",
|
||||
"Mostrar siempre la barra de herramientas",
|
||||
"Deshacer Aceptar palabra",
|
||||
"Deshacer Aceptar palabra",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"Sugerencia:",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"Icono para mostrar la sugerencia de parámetro siguiente.",
|
||||
"Icono para mostrar la sugerencia de parámetro anterior.",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"Anterior",
|
||||
"Siguiente",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"Expandir selección de línea",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"Terminadores de línea inusuales",
|
||||
"Se han detectado terminadores de línea inusuales",
|
||||
"Este archivo \"{0}\" contiene uno o más caracteres de terminación de línea inusuales, como el separador de línea (LS) o el separador de párrafo (PS).\r\n\r\nSe recomienda eliminarlos del archivo. Esto puede configurarse mediante \"editor.unusualLineTerminators\".",
|
||||
"Quitar terminadores de línea inusuales",
|
||||
"&&Quitar terminadores de línea inusuales",
|
||||
"Omitir",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"No hay sugerencias de incrustación en la línea",
|
||||
"Tarea completada.",
|
||||
"Error en la tarea",
|
||||
"Error del comando de terminal",
|
||||
"Campana de terminal",
|
||||
"Celda del bloc de notas completada",
|
||||
"Error en la celda del bloc de notas",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"usado recientemente",
|
||||
"commonly used",
|
||||
"usados habitualmente",
|
||||
"otros comandos",
|
||||
"El comando \"{0}\" dio lugar a un error ({1})",
|
||||
"El comando \"{0}\" ha dado lugar a un error",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"Atrás",
|
||||
"Presione \"Entrar\" para confirmar su entrada o \"Esc\" para cancelar",
|
||||
"{0}/{1}",
|
||||
"Escriba para restringir los resultados.",
|
||||
"Activar o desactivar todas las casillas",
|
||||
"{0} resultados",
|
||||
"{0} seleccionados",
|
||||
"Aceptar",
|
||||
"Personalizado",
|
||||
"Atrás ({0})",
|
||||
"Atrás",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"Entrada rápida",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"Haga clic en para ejecutar el comando \"{0}\"",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"Color de primer plano general. Este color solo se usa si un componente no lo invalida.",
|
||||
"Primer plano general de los elementos deshabilitados. Este color solo se usa si un componente no lo reemplaza.",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"Color de fondo de la coincidencia filtrada.",
|
||||
"Color de borde de la coincidencia filtrada.",
|
||||
"Color de trazo de árbol para las guías de sangría.",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"Color de trazo de árbol para las guías de sangría que no están activas.",
|
||||
"Color de borde de la tabla entre columnas.",
|
||||
"Color de fondo para las filas de tabla impares.",
|
||||
"Color de primer plano de lista/árbol para los elementos no enfatizados.",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.es", {
|
|||
"No se pudo deshacer \"{0}\" en todos los archivos porque ya hay una operación de deshacer o rehacer en ejecución en {1}",
|
||||
"No se pudo deshacer \"{0}\" en todos los archivos porque se produjo una operación de deshacer o rehacer mientras tanto",
|
||||
"¿Desea deshacer \"{0}\" en todos los archivos?",
|
||||
"Deshacer en {0} archivos",
|
||||
"Deshacer este archivo",
|
||||
"Cancelar",
|
||||
"&&Deshacer en {0} archivos",
|
||||
"Deshacer este &&archivo",
|
||||
"No se pudo deshacer \"{0}\" porque ya hay una operación de deshacer o rehacer en ejecución.",
|
||||
"¿Quiere deshacer \"{0}\"?",
|
||||
"Sí",
|
||||
"&&Sí",
|
||||
"No",
|
||||
"No se pudo rehacer \"{0}\" en todos los archivos. {1}",
|
||||
"No se pudo rehacer \"{0}\" en todos los archivos. {1}",
|
||||
|
|
|
|||
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.fr.js
generated
vendored
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.fr.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"Précédent",
|
||||
"Appuyez sur \'Entrée\' pour confirmer votre saisie, ou sur \'Échap\' pour l\'annuler",
|
||||
"{0}/{1}",
|
||||
"Taper pour affiner les résultats.",
|
||||
"Activer/désactiver toutes les cases à cocher",
|
||||
"{0} résultats",
|
||||
"{0} Sélectionnés",
|
||||
"OK",
|
||||
"Personnalisé",
|
||||
"Précédent ({0})",
|
||||
"Précédent",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"Entrée rapide",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"éditeur",
|
||||
"L\'éditeur n\'est pas accessible pour le moment. Appuyez sur {0} pour voir les options.",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Contrôle si semanticHighlighting est affiché pour les langages qui le prennent en charge.",
|
||||
"Maintenir les éditeurs d\'aperçu ouverts même si l\'utilisateur double-clique sur son contenu ou appuie sur la touche Échap.",
|
||||
"Les lignes plus longues que cette valeur ne sont pas tokenisées pour des raisons de performances",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"Définit les symboles de type crochet qui augmentent ou diminuent le retrait.",
|
||||
"Séquence de chaînes ou de caractères de crochets ouvrants.",
|
||||
"Séquence de chaînes ou de caractères de crochets fermants.",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Définit les caractères autorisés qui ne sont pas mis en surbrillance.",
|
||||
"Les caractères Unicode communs aux paramètres régionaux autorisés ne sont pas mis en surbrillance.",
|
||||
"Contrôle si les suggestions en ligne doivent être affichées automatiquement dans l’éditeur.",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"Afficher la barre d’outils de suggestion en ligne chaque fois qu’une suggestion inline est affichée.",
|
||||
"Afficher la barre d’outils de suggestion en ligne lorsque vous pointez sur une suggestion incluse.",
|
||||
"Contrôle quand afficher la barre d’outils de suggestion incluse.",
|
||||
"Contrôle si la colorisation des paires de crochets est activée ou non. Utilisez {0} pour remplacer les couleurs de surbrillance des crochets.",
|
||||
"Contrôle si chaque type de crochet possède son propre pool de couleurs indépendant.",
|
||||
"Désactive les repères de paire de crochets.",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Détermine si le filtre et le tri des suggestions doivent prendre en compte les fautes de frappes mineures.",
|
||||
"Contrôle si le tri favorise les mots qui apparaissent à proximité du curseur.",
|
||||
"Contrôle si les sélections de suggestion mémorisées sont partagées entre plusieurs espaces de travail et fenêtres (nécessite \'#editor.suggestSelection#\').",
|
||||
"Activez toujours le widget de suggestion lors du déclenchement automatique d’IntelliSense.",
|
||||
"N’activez jamais la suggestion lors du déclenchement automatique d’IntelliSense.",
|
||||
"Activez le widget de suggestion uniquement lors du déclenchement d’IntelliSense à partir d’un caractère déclencheur.",
|
||||
"Activez le widget de suggestion uniquement lors du déclenchement d’IntelliSense lors de la frappe.",
|
||||
"Contrôle si le widget de suggestion devient actif lorsqu’il est déclenché via une suggestion rapide ou des caractères déclencheurs. Notez que le widget est toujours actif lorsqu’il est appelé explicitement, par exemple via `Ctrl+Space`.",
|
||||
"Toujours sélectionner une suggestion lors du déclenchement automatique d’IntelliSense.",
|
||||
"Ne jamais sélectionner une suggestion lors du déclenchement automatique d’IntelliSense.",
|
||||
"Sélectionnez une suggestion uniquement lors du déclenchement d’IntelliSense à partir d’un caractère déclencheur.",
|
||||
"Sélectionnez une suggestion uniquement lors du déclenchement d’IntelliSense au cours de la frappe.",
|
||||
"Contrôle si une suggestion est sélectionnée lorsque le widget s’affiche. Notez que cela s’applique uniquement aux suggestions déclenchées automatiquement (\'#editor.quickSuggestions#\' et \'#editor.suggestOnTriggerCharacters#\') et qu’une suggestion est toujours sélectionnée lorsqu’elle est appelée explicitement, par exemple via \'Ctrl+Espace\'.",
|
||||
"Contrôle si un extrait de code actif empêche les suggestions rapides.",
|
||||
"Contrôle s\'il faut montrer ou masquer les icônes dans les suggestions.",
|
||||
"Contrôle la visibilité de la barre d\'état en bas du widget de suggestion.",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Les lignes seront terminées au minimum du viewport et `#editor.wordWrapColumn#`.",
|
||||
"Contrôle comment les lignes doivent être limitées.",
|
||||
"Contrôle la colonne de terminaison de l’éditeur lorsque `#editor.wordWrap#` est à `wordWrapColumn` ou `bounded`.",
|
||||
"Contrôle si l’éditeur reçoit des onglets ou les reporte au banc d’essai pour la navigation.",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"Couleur d\'arrière-plan de la mise en surbrillance de la ligne à la position du curseur.",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Indique si une suggestion en ligne est visible",
|
||||
"Indique si la suggestion en ligne commence par un espace blanc",
|
||||
"Indique si la suggestion incluse commence par un espace blanc inférieur à ce qui serait inséré par l’onglet.",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"Indique si l’annulation annulerait une suggestion inline",
|
||||
"Indique si la barre d’outils de suggestion en ligne doit toujours être visible",
|
||||
"Afficher la suggestion en ligne suivante",
|
||||
"Afficher la suggestion en ligne précédente",
|
||||
"Déclencher la suggestion en ligne",
|
||||
"Accepter le mot suivant de la suggestion inline",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"Accepter le mot suivant de la suggestion inline",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"Accepter le mot",
|
||||
"Accepter la suggestion inline",
|
||||
"Accepter",
|
||||
"Masquer la suggestion inlined",
|
||||
"Toujours afficher la barre d’outils",
|
||||
"Annuler l’acceptation du mot",
|
||||
"Annuler l’acceptation du mot",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"Suggestion :",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"Icône d\'affichage du prochain conseil de paramètre.",
|
||||
"Icône d\'affichage du précédent conseil de paramètre.",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"Précédent",
|
||||
"Suivant",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"Développer la sélection de ligne",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Marques de fin de ligne inhabituelles",
|
||||
"Marques de fin de ligne inhabituelles détectées",
|
||||
"Le fichier « {0} »contient un ou plusieurs caractères de fin de ligne inhabituels, par exemple le séparateur de ligne (LS) ou le séparateur de paragraphe (PS).\r\n\r\nIl est recommandé de les supprimer du fichier. Vous pouvez configurer ce comportement par le biais de `editor.unusualLineTerminators`.",
|
||||
"Supprimer les marques de fin de ligne inhabituelles",
|
||||
"&&Supprimer les marques de fin de ligne inhabituelles",
|
||||
"Ignorer",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Aucun indicateur d’inlay sur la ligne",
|
||||
"Tâche terminée",
|
||||
"Échec de la tâche",
|
||||
"Échec de la commande de terminal",
|
||||
"Cloche de terminal",
|
||||
"Cellule de bloc-notes terminée",
|
||||
"Échec de la cellule de bloc-notes",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"récemment utilisées",
|
||||
"commonly used",
|
||||
"utilisés le plus souvent",
|
||||
"autres commandes",
|
||||
"La commande \'{0}\' a entraîné une erreur ({1})",
|
||||
"La commande « {0} » a entraîné une erreur",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"Précédent",
|
||||
"Appuyez sur \'Entrée\' pour confirmer votre saisie, ou sur \'Échap\' pour l\'annuler",
|
||||
"{0}/{1}",
|
||||
"Taper pour affiner les résultats.",
|
||||
"Activer/désactiver toutes les cases à cocher",
|
||||
"{0} résultats",
|
||||
"{0} Sélectionnés",
|
||||
"OK",
|
||||
"Personnalisé",
|
||||
"Précédent ({0})",
|
||||
"Précédent",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"Entrée rapide",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"Cliquer pour exécuter la commande \'{0}\'",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"Couleur de premier plan globale. Cette couleur est utilisée si elle n\'est pas remplacée par un composant.",
|
||||
"Premier plan globale pour les éléments désactivés. Cette couleur est utilisée si elle n\'est pas remplacée par un composant.",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Couleur d\'arrière-plan de la correspondance filtrée.",
|
||||
"Couleur de bordure de la correspondance filtrée.",
|
||||
"Couleur de trait de l\'arborescence pour les repères de mise en retrait.",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"Couleur de trait d’arborescence pour les repères de mise en retrait qui ne sont pas actifs.",
|
||||
"Couleur de la bordure du tableau entre les colonnes.",
|
||||
"Couleur d\'arrière-plan pour les lignes de tableau impaires.",
|
||||
"Couleur de premier plan de la liste/l\'arborescence des éléments atténués.",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.fr", {
|
|||
"Impossible d\'annuler \'{0}\' dans tous les fichiers, car une opération d\'annulation ou de rétablissement est déjà en cours d\'exécution sur {1}",
|
||||
"Impossible d\'annuler \'{0}\' dans tous les fichiers, car une opération d\'annulation ou de rétablissement s\'est produite dans l\'intervalle",
|
||||
"Souhaitez-vous annuler \'{0}\' dans tous les fichiers ?",
|
||||
"Annuler dans {0} fichiers",
|
||||
"Annuler ce fichier",
|
||||
"Annuler",
|
||||
"&&Annuler dans {0} fichiers",
|
||||
"Annuler ce &&fichier",
|
||||
"Impossible d\'annuler \'{0}\', car une opération d\'annulation ou de rétablissement est déjà en cours d\'exécution.",
|
||||
"Voulez-vous annuler \'{0}\' ?",
|
||||
"Oui",
|
||||
"&&Oui",
|
||||
"Non",
|
||||
"Impossible de répéter \'{0}\' dans tous les fichiers. {1}",
|
||||
"Impossible de répéter \'{0}\' dans tous les fichiers. {1}",
|
||||
|
|
|
|||
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.it.js
generated
vendored
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.it.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"Indietro",
|
||||
"Premere \'INVIO\' per confermare l\'input oppure \'ESC\' per annullare",
|
||||
"{0}/{1}",
|
||||
"Digitare per ridurre il numero di risultati.",
|
||||
"Attivare/Disattivare tutte le caselle di controllo",
|
||||
"{0} risultati",
|
||||
"{0} selezionati",
|
||||
"OK",
|
||||
"Personalizzato",
|
||||
"Indietro ({0})",
|
||||
"Indietro",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"Input rapido",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"editor",
|
||||
"L\'editor non è accessibile in questo momento. Premere {0} per le opzioni.",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Controlla se l\'evidenziazione semanticHighlighting è visualizzata per i linguaggi che la supportano.",
|
||||
"Consente di mantenere aperti gli editor rapidi anche quando si fa doppio clic sul contenuto o si preme \'ESC\'.",
|
||||
"Per motivi di prestazioni le righe di lunghezza superiore non verranno tokenizzate",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"Definisce i simboli di parentesi quadra che aumentano o riducono il rientro.",
|
||||
"Sequenza di stringa o carattere parentesi quadra di apertura.",
|
||||
"Sequenza di stringa o carattere parentesi quadra di chiusura.",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Definisce i caratteri consentiti che non vengono evidenziati.",
|
||||
"I caratteri Unicode comuni nelle impostazioni locali consentite non vengono evidenziati.",
|
||||
"Controlla se visualizzare automaticamente i suggerimenti inline nell\'Editor.",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"Mostra la barra degli strumenti dei suggerimenti in linea ogni volta che viene visualizzato un suggerimento in linea.",
|
||||
"Mostra la barra degli strumenti dei suggerimenti in linea quando al passaggio del mouse su un suggerimento in linea.",
|
||||
"Controlla quando mostrare la barra dei suggerimenti in linea.",
|
||||
"Controlla se la colorazione delle coppie di parentesi è abilitata. Usare {0} per eseguire l\'override dei colori di evidenziazione delle parentesi.",
|
||||
"Controlla se ogni tipo di parentesi ha un pool di colori indipendente.",
|
||||
"Abilita le guide per coppie di parentesi quadre.",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Controlla se i suggerimenti di filtro e ordinamento valgono per piccoli errori di battitura.",
|
||||
"Controlla se l\'ordinamento privilegia le parole che appaiono più vicine al cursore.",
|
||||
"Controlla se condividere le selezioni dei suggerimenti memorizzati tra aree di lavoro e finestre (richiede `#editor.suggestSelection#`).",
|
||||
"Attivare sempre il widget dei suggerimenti quando si attiva automaticamente IntelliSense.",
|
||||
"Non attivare mai il suggerimento quando si attiva automaticamente IntelliSense.",
|
||||
"Attivare il widget dei suggerimenti solo quando si attiva IntelliSense da un carattere di trigger.",
|
||||
"Attivare il widget dei suggerimenti solo quando si attiva IntelliSense durante la digitazione.",
|
||||
"Controllare se il widget dei suggerimenti diventa attivo quando viene attivato tramite i caratteri di suggerimento rapido o trigger. Si noti che il widget è sempre attivo quando viene richiamato in modo esplicito, ad esempio tramite \'CTRL+BARRA SPAZIATRICE\'.",
|
||||
"Selezionare sempre un suggerimento quando si attiva automaticamente IntelliSense.",
|
||||
"Non selezionare mai un suggerimento quando si attiva automaticamente IntelliSense.",
|
||||
"Selezionare un suggerimento solo quando si attiva IntelliSense da un carattere di trigger.",
|
||||
"Selezionare un suggerimento solo quando si attiva IntelliSense durante la digitazione.",
|
||||
"Controlla se viene selezionato un suggerimento quando viene visualizzato il widget. Si noti che questo si applica solo ai suggerimenti attivati automaticamente (\'#editor.quickSuggestions#\' e \'#editor.suggestOnTriggerCharacters#\') e che un suggerimento viene sempre selezionato quando viene richiamato in modo esplicito, ad esempio tramite \'CTRL+BARRA SPAZIATRICE\'.",
|
||||
"Controlla se un frammento attivo impedisce i suggerimenti rapidi.",
|
||||
"Controlla se mostrare o nascondere le icone nei suggerimenti.",
|
||||
"Controlla la visibilità della barra di stato nella parte inferiore del widget dei suggerimenti.",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Il ritorno a capo automatico delle righe viene applicato in corrispondenza della larghezza minima del viewport e di `#editor.wordWrapColumn#`.",
|
||||
"Controlla il ritorno a capo automatico delle righe.",
|
||||
"Controlla la colonna per il ritorno a capo automatico dell\'editor quando il valore di `#editor.wordWrap#` è `wordWrapColumn` o `bounded`.",
|
||||
"Controlla se l\'editor riceve le schede o le rinvia al workbench per lo spostamento.",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"Colore di sfondo per l\'evidenziazione della riga alla posizione del cursore.",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Se è visibile un suggerimento inline",
|
||||
"Se il suggerimento in linea inizia con spazi vuoti",
|
||||
"Indica se il suggerimento inline inizia con uno spazio vuoto minore di quello che verrebbe inserito dalla tabulazione",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"Indica se l\'annullamento annullerebbe un suggerimento inline",
|
||||
"Indica se la barra degli strumenti dei suggerimenti in linea deve essere sempre visibile",
|
||||
"Mostrare suggerimento inline successivo",
|
||||
"Mostrare suggerimento inline precedente",
|
||||
"Trigger del suggerimento inline",
|
||||
"Accettare suggerimento inline per la parola successiva",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"Accettare suggerimento inline per la parola successiva",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"Accetta parola",
|
||||
"Accetta il suggerimento in linea",
|
||||
"Accetta",
|
||||
"Nascondi suggerimento inline",
|
||||
"Mostra sempre la barra degli strumenti",
|
||||
"Annullare Accetta parola",
|
||||
"Annulla Accetta parola",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"Suggerimento:",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"Icona per visualizzare il suggerimento del parametro successivo.",
|
||||
"Icona per visualizzare il suggerimento del parametro precedente.",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"Indietro",
|
||||
"Avanti",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"Espandere selezione riga",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Caratteri di terminazione di riga insoliti",
|
||||
"Sono stati rilevati caratteri di terminazione di riga insoliti",
|
||||
"Il file \"\r\n\" contiene uno o più caratteri di terminazione di riga insoliti, ad esempio separatore di riga (LS) o separatore di paragrafo (PS).{0}\r\nÈ consigliabile rimuoverli dal file. È possibile configurare questa opzione tramite `editor.unusualLineTerminators`.",
|
||||
"Rimuovi i caratteri di terminazione di riga insoliti",
|
||||
"&&Rimuovi i caratteri di terminazione di riga insoliti",
|
||||
"Ignora",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Nessun suggerimento per l\'inlay nella riga",
|
||||
"Attività completata",
|
||||
"Attività non riuscita",
|
||||
"Comando terminale non riuscito",
|
||||
"Campanello terminale",
|
||||
"Cella del notebook completata",
|
||||
"La cella del notebook ha avuto esito negativo",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"usate di recente",
|
||||
"commonly used",
|
||||
"più usato",
|
||||
"altri comandi",
|
||||
"Il comando \'{0}\' ha restituito un errore ({1})",
|
||||
"Il comando \'{0}\' ha restituito un errore",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"Indietro",
|
||||
"Premere \'INVIO\' per confermare l\'input oppure \'ESC\' per annullare",
|
||||
"{0}/{1}",
|
||||
"Digitare per ridurre il numero di risultati.",
|
||||
"Attivare/Disattivare tutte le caselle di controllo",
|
||||
"{0} risultati",
|
||||
"{0} selezionati",
|
||||
"OK",
|
||||
"Personalizzato",
|
||||
"Indietro ({0})",
|
||||
"Indietro",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"Input rapido",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"Fare clic per eseguire il comando \'{0}\'",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"Colore primo piano generale. Questo colore viene usato solo se non è sostituito da quello di un componente.",
|
||||
"Primo piano generale per gli elementi disabilitati. Questo colore viene usato solo e non è sostituito da quello di un componente.",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Colore di sfondo della corrispondenza filtrata.",
|
||||
"Colore del bordo della corrispondenza filtrata.",
|
||||
"Colore del tratto dell\'albero per le guide per i rientri.",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"Colore del tratto dell\'albero per le guide di rientro non attive.",
|
||||
"Colore del bordo della tabella tra le colonne.",
|
||||
"Colore di sfondo per le righe di tabella dispari.",
|
||||
"Colore primo piano dell\'elenco/albero per gli elementi non evidenziati.",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.it", {
|
|||
"Non è stato possibile annullare \'{0}\' su tutti i file perché è già in esecuzione un\'operazione di annullamento o ripetizione su {1}",
|
||||
"Non è stato possibile annullare \'{0}\' su tutti i file perché nel frattempo è stata eseguita un\'operazione di annullamento o ripetizione",
|
||||
"Annullare \'{0}\' in tutti i file?",
|
||||
"Annulla in {0} file",
|
||||
"Annulla questo file",
|
||||
"Annulla",
|
||||
"&&Annulla in {0} file",
|
||||
"Annulla questo &&file",
|
||||
"Non è stato possibile annullare \'{0}\' perché è già in esecuzione un\'operazione di annullamento o ripetizione.",
|
||||
"Annullare \'{0}\'?",
|
||||
"Sì",
|
||||
"&&Sì",
|
||||
"No",
|
||||
"Non è stato possibile ripetere \'{0}\' in tutti i file. {1}",
|
||||
"Non è stato possibile ripetere \'{0}\' in tutti i file. {1}",
|
||||
|
|
|
|||
95
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.ja.js
generated
vendored
95
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.ja.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"戻る",
|
||||
"\'Enter\' を押して入力を確認するか \'Escape\' を押して取り消します",
|
||||
"{0}/{1}",
|
||||
"入力すると結果が絞り込まれます。",
|
||||
"すべてのチェック ボックスを切り替える",
|
||||
"{0} 件の結果",
|
||||
"{0} 個選択済み",
|
||||
"OK",
|
||||
"カスタム",
|
||||
"戻る ({0})",
|
||||
"戻る",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"クイック入力",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"エディター",
|
||||
"この時点では、エディターにアクセスできません。オプションを表示するには、{0} を押します。",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"semanticHighlighting をサポートされる言語で表示するかどうかを制御します。",
|
||||
"エディターのコンテンツをダブルクリックするか、`Escape` キーを押しても、ピーク エディターを開いたままにします。",
|
||||
"この長さを越える行は、パフォーマンス上の理由によりトークン化されません。",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"インデントを増減する角かっこを定義します。",
|
||||
"左角かっこまたは文字列シーケンス。",
|
||||
"右角かっこまたは文字列シーケンス。",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"強調表示せず許可される文字を定義します。",
|
||||
"許可されているロケールで一般的な Unicode 文字は強調表示されません。",
|
||||
"エディターにインライン候補を自動的に表示するかどうかを制御します。",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"インライン候補が表示されるたびに、インライン候補ツール バーを表示します。",
|
||||
"インライン候補にカーソルを合わせるたびに、インライン候補ツール バーを表示します。",
|
||||
"インライン候補ツール バーを表示するタイミングを制御します。",
|
||||
"ブラケットのペアの色付けが有効かどうかを制御します。 {0} を使用して、ブラケットの強調表示の色をオーバーライドします。",
|
||||
"括弧の各種別が、個別のカラー プールを保持するかどうかを制御します。",
|
||||
"ブラケット ペア ガイドを有効にする。",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"候補のフィルター処理と並び替えでささいな入力ミスを考慮するかどうかを制御します。",
|
||||
"並べ替えがカーソル付近に表示される単語を優先するかどうかを制御します。",
|
||||
"保存された候補セクションを複数のワークプレースとウィンドウで共有するかどうかを制御します (`#editor.suggestSelection#` が必要)。",
|
||||
"IntelliSense を自動的にトリガーするときに、候補ウィジェットを常にアクティブにしないでください。",
|
||||
"IntelliSense を自動的にトリガーするときに、候補をアクティブにしないでください。",
|
||||
"トリガー文字から IntelliSense をトリガーする場合にのみ、候補ウィジェットをアクティブにしてください。",
|
||||
"入力時に IntelliSense をトリガーする場合にのみ、候補ウィジェットをアクティブにしてください。",
|
||||
"クイック候補またはトリガー文字を使用してトリガーされたときに、候補ウィジェットがアクティブになるかどうかを制御します。ウィジェットは、明示的に呼び出されたときに常にアクティブであることに注意してください (例: \'Ctrl+Space\')。",
|
||||
"IntelliSense を自動でトリガーする場合に、常に候補を選択します。",
|
||||
"IntelliSense を自動でトリガーする場合に、候補を選択しません。",
|
||||
"トリガー文字から IntelliSense をトリガーする場合にのみ、候補を選択します。",
|
||||
"入力時に IntelliSense をトリガーする場合にのみ、候補を選択します。",
|
||||
"ウィジェットを表示する際に候補を選択するかどうかを制御します。こちらは自動的にトリガーされる候補 (\'#editor.quickSuggestions#\' と \'#editor.suggestOnTriggerCharacters#\') にのみ適用され、(\'Ctrl+Space\' などを通じて) 明示的に呼び出される際には常に候補が選択されることにご注意ください。",
|
||||
"アクティブ スニペットがクイック候補を防止するかどうかを制御します。",
|
||||
"提案のアイコンを表示するか、非表示にするかを制御します。",
|
||||
"候補ウィジェットの下部にあるステータス バーの表示を制御します。",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"ビューポートと `#editor.wordWrapColumn#` の最小値で行を折り返します。",
|
||||
"行の折り返し方法を制御します。",
|
||||
"`#editor.wordWrap#` が `wordWrapColumn` または `bounded` の場合に、エディターの折り返し桁を制御します。",
|
||||
"エディターがタブを受け取るか、ワークベンチに委ねてナビゲーションするかを制御します。",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"カーソル位置の行を強調表示する背景色。",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"インライン候補を表示するかどうか",
|
||||
"インライン候補がスペースで始まるかどうか",
|
||||
"インライン候補が、タブで挿入されるものよりも小さいスペースで始まるかどうか",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"元に戻す場合にインライン候補を元に戻すかどうか",
|
||||
"インライン提案ツール バーを常に表示するかどうか",
|
||||
"次のインライン候補を表示する",
|
||||
"前のインライン候補を表示する",
|
||||
"インライン候補をトリガーする",
|
||||
"インライン提案の次の単語を承諾する",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"インライン提案の次の単語を承諾する",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"ワードを承諾する",
|
||||
"インライン候補を承諾する",
|
||||
"承諾する",
|
||||
"インライン候補を非表示にする",
|
||||
"常にツール バーを表示する",
|
||||
"ワードの承認を元に戻す",
|
||||
"ワードの承諾を元に戻す",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"おすすめ:",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"次のパラメーター ヒントを表示するためのアイコン。",
|
||||
"前のパラメーター ヒントを表示するためのアイコン。",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"前へ",
|
||||
"次へ",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"行全体を選択する",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"普通ではない行終端記号",
|
||||
"普通ではない行終端記号が検出されました",
|
||||
"このファイル \'{0}\' には、行区切り文字 (LS) や段落区切り記号 (PS) などの特殊な行の終端文字が 1 つ以上含まれています。\r\n\r\nそれらをファイルから削除することをお勧めします。これは \'editor.unusualLineTerminators\' を使用して構成できます。",
|
||||
"特殊な行の終端記号を削除する",
|
||||
"特殊な行の終端記号を削除する(&&R)",
|
||||
"無視する",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"行にインレイ ヒントがありません",
|
||||
"タスクが完了しました",
|
||||
"タスクが失敗しました",
|
||||
"ターミナル コマンドが失敗しました",
|
||||
"ターミナル ベル",
|
||||
"ノートブック セルが完了しました",
|
||||
"ノートブック セルが失敗しました",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"最近使用したもの",
|
||||
"commonly used",
|
||||
"よく使用するもの",
|
||||
"その他のコマンド",
|
||||
"コマンド \'{0}\' でエラー ({1}) が発生しました",
|
||||
"コマンド \'{0}\' でエラーが発生しました",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"戻る",
|
||||
"\'Enter\' を押して入力を確認するか \'Escape\' を押して取り消します",
|
||||
"{0}/{1}",
|
||||
"入力すると結果が絞り込まれます。",
|
||||
"すべてのチェック ボックスを切り替える",
|
||||
"{0} 件の結果",
|
||||
"{0} 個選択済み",
|
||||
"OK",
|
||||
"カスタム",
|
||||
"戻る ({0})",
|
||||
"戻る",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"クイック入力",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"クリックして \'{0}\' コマンドを実行",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"全体の前景色。この色は、コンポーネントによってオーバーライドされていない場合にのみ使用されます。",
|
||||
"無効な要素の全体的な前景。この色は、コンポーネントによってオーバーライドされない場合にのみ使用されます。",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"フィルタリングされた一致の背景色。",
|
||||
"フィルタリングされた一致の境界線の色。",
|
||||
"インデント ガイドのツリー ストロークの色。",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"アクティブでないインデント ガイドのツリー ストロークの色。",
|
||||
"列間の表の境界線の色。",
|
||||
"奇数テーブル行の背景色。",
|
||||
"強調表示されていない項目のリスト/ツリー前景色。 ",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.ja", {
|
|||
"{1} で元に戻すまたはやり直し操作が既に実行されているため、すべてのファイルに対して \'{0}\' を元に戻すことはできませんでした",
|
||||
"元に戻すまたはやり直し操作がその期間に実行中であったため、すべてのファイルに対して \'{0}\' を元に戻すことはできませんでした",
|
||||
"すべてのファイルで \'{0}\' を元に戻しますか?",
|
||||
"{0} 個のファイルで元に戻す",
|
||||
"{0} 個のファイルで元に戻す(&&U)",
|
||||
"このファイルを元に戻す",
|
||||
"キャンセル",
|
||||
"元に戻すまたはやり直し操作が既に実行されているため、\'{0}\' を元に戻すことはできませんでした。",
|
||||
"\'{0}\' を元に戻しますか?",
|
||||
"はい",
|
||||
"はい(&&Y)",
|
||||
"いいえ",
|
||||
"すべてのファイルで \'{0}\' をやり直しできませんでした。{1}",
|
||||
"すべてのファイルで \'{0}\' をやり直しできませんでした。{1}",
|
||||
|
|
|
|||
55
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.js
generated
vendored
55
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -87,22 +87,6 @@ define("vs/editor/editor.main.nls", {
|
|||
"vs/base/common/platform": [
|
||||
"_"
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"Back",
|
||||
"Press 'Enter' to confirm your input or 'Escape' to cancel",
|
||||
"{0}/{1}",
|
||||
"Type to narrow down results.",
|
||||
"Toggle all checkboxes",
|
||||
"{0} Results",
|
||||
"{0} Selected",
|
||||
"OK",
|
||||
"Custom",
|
||||
"Back ({0})",
|
||||
"Back"
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"Quick Input"
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"editor",
|
||||
"The editor is not accessible at this time. Press {0} for options."
|
||||
|
|
@ -177,6 +161,7 @@ define("vs/editor/editor.main.nls", {
|
|||
"Controls whether the semanticHighlighting is shown for the languages that support it.",
|
||||
"Keep peek editors open even when double-clicking their content or when hitting `Escape`.",
|
||||
"Lines above this length will not be tokenized for performance reasons",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"Defines the bracket symbols that increase or decrease the indentation.",
|
||||
"The opening bracket character or string sequence.",
|
||||
"The closing bracket character or string sequence.",
|
||||
|
|
@ -519,7 +504,8 @@ define("vs/editor/editor.main.nls", {
|
|||
"Lines will wrap at `#editor.wordWrapColumn#`.",
|
||||
"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.",
|
||||
"Controls how lines should wrap.",
|
||||
"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`."
|
||||
"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.",
|
||||
"Controls whether the editor receives tabs or defers them to the workbench for navigation."
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"Background color for the highlight of line at the cursor position.",
|
||||
|
|
@ -1039,7 +1025,7 @@ define("vs/editor/editor.main.nls", {
|
|||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"Accept Next Word Of Inline Suggestion",
|
||||
"Hide Inline Suggestion",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Word",
|
||||
"Undo Accept Word"
|
||||
|
|
@ -1403,7 +1389,7 @@ define("vs/editor/editor.main.nls", {
|
|||
"Unusual Line Terminators",
|
||||
"Detected unusual line terminators",
|
||||
"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",
|
||||
"Remove Unusual Line Terminators",
|
||||
"&&Remove Unusual Line Terminators",
|
||||
"Ignore"
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1469,6 +1455,7 @@ define("vs/editor/editor.main.nls", {
|
|||
"No Inlay Hints on Line",
|
||||
"Task Completed",
|
||||
"Task Failed",
|
||||
"Terminal Command Failed",
|
||||
"Terminal Bell",
|
||||
"Notebook Cell Completed",
|
||||
"Notebook Cell Failed",
|
||||
|
|
@ -1546,11 +1533,30 @@ define("vs/editor/editor.main.nls", {
|
|||
"recently used",
|
||||
"commonly used",
|
||||
"other commands",
|
||||
"Command '{0}' resulted in an error ({1})"
|
||||
"Command '{0}' resulted in an error"
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}"
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"Back",
|
||||
"Press 'Enter' to confirm your input or 'Escape' to cancel",
|
||||
"{0}/{1}",
|
||||
"Type to narrow down results.",
|
||||
"Toggle all checkboxes",
|
||||
"{0} Results",
|
||||
"{0} Selected",
|
||||
"OK",
|
||||
"Custom",
|
||||
"Back ({0})",
|
||||
"Back"
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"Quick Input"
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"Click to execute command '{0}'"
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"Overall foreground color. This color is only used if not overridden by a component.",
|
||||
"Overall foreground for disabled elements. This color is only used if not overridden by a component.",
|
||||
|
|
@ -1783,12 +1789,11 @@ define("vs/editor/editor.main.nls", {
|
|||
"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",
|
||||
"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",
|
||||
"Would you like to undo '{0}' across all files?",
|
||||
"Undo in {0} Files",
|
||||
"Undo this File",
|
||||
"Cancel",
|
||||
"&&Undo in {0} Files",
|
||||
"Undo this &&File",
|
||||
"Could not undo '{0}' because there is already an undo or redo operation running.",
|
||||
"Would you like to undo '{0}'?",
|
||||
"Yes",
|
||||
"&&Yes",
|
||||
"No",
|
||||
"Could not redo '{0}' across all files. {1}",
|
||||
"Could not redo '{0}' across all files. {1}",
|
||||
|
|
|
|||
101
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.ko.js
generated
vendored
101
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.ko.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"뒤로",
|
||||
"입력을 확인하려면 \'Enter\' 키를 누르고, 취소하려면 \'Esc\' 키를 누르세요.",
|
||||
"{0} / {1}",
|
||||
"결과의 범위를 축소하려면 입력하세요.",
|
||||
"모든 확인란 선택/해제",
|
||||
"{0}개 결과",
|
||||
"{0} 선택됨",
|
||||
"확인",
|
||||
"사용자 지정",
|
||||
"뒤로({0})",
|
||||
"뒤로",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"빠른 입력",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"편집기",
|
||||
"현재 편집기에 액세스할 수 없습니다. 옵션을 보려면 {0}을(를) 누릅니다.",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"semanticHighlighting이 지원하는 언어에 대해 표시되는지 여부를 제어합니다.",
|
||||
"해당 콘텐츠를 두 번 클릭하거나 \'Esc\' 키를 누르더라도 Peek 편집기를 열린 상태로 유지합니다.",
|
||||
"이 길이를 초과하는 줄은 성능상의 이유로 토큰화되지 않습니다.",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"들여쓰기를 늘리거나 줄이는 대괄호 기호를 정의합니다.",
|
||||
"여는 대괄호 문자 또는 문자열 시퀀스입니다.",
|
||||
"닫는 대괄호 문자 또는 문자열 시퀀스입니다.",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"강조 표시되지 않는 허용된 문자를 정의합니다.",
|
||||
"허용된 로캘에서 공통적인 유니코드 문자는 강조 표시되지 않습니다.",
|
||||
"편집기에서 인라인 제안을 자동으로 표시할지 여부를 제어합니다.",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"인라인 추천을 표시힐 때마다 인라인 추천 도구 모음을 표시합니다.",
|
||||
"인라인 추천을 마우스로 가리키면 인라인 추천 도구 모음을 표시합니다.",
|
||||
"인라인 추천 도구 모음을 표시할 시기를 제어합니다.",
|
||||
"대괄호 쌍 색 지정을 사용할지 여부를 제어합니다. {0}을(를) 사용하여 대괄호 강조 색을 재정의합니다.",
|
||||
"각 대괄호 형식에 고유한 독립적인 색 풀이 있는지 여부를 제어합니다.",
|
||||
"대괄호 쌍 가이드를 사용하도록 설정합니다.",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"제안 필터링 및 정렬에서 작은 오타를 설명하는지 여부를 제어합니다.",
|
||||
"정렬할 때 커서 근처에 표시되는 단어를 우선할지를 제어합니다.",
|
||||
"저장된 제안 사항 선택 항목을 여러 작업 영역 및 창에서 공유할 것인지 여부를 제어합니다(`#editor.suggestSelection#` 필요).",
|
||||
"IntelliSense를 자동으로 트리거할 때 항상 제안 위젯을 활성화합니다.",
|
||||
"IntelliSense를 자동으로 트리거할 때 제안을 활성화하지 않습니다.",
|
||||
"트리거 문자로 IntelliSense를 트리거할 때만 제안 위젯을 활성화합니다.",
|
||||
"입력으로 IntelliSense를 트리거할 때만 제안 위젯을 활성화합니다.",
|
||||
"빠른 제안 또는 트리거 문자를 통해 트리거될 때 제안 위젯이 활성화되는지 여부를 제어합니다. 위젯은 명시적으로 호출되면 항상 활성 상태를 보입니다(예: `Ctrl+Space`를 통해).",
|
||||
"IntelliSense를 자동으로 트리거할 때 항상 제안을 선택합니다.",
|
||||
"IntelliSense를 자동으로 트리거할 때 제안을 선택하지 마세요.",
|
||||
"트리거 문자에서 IntelliSense를 트리거할 때만 제안을 선택합니다.",
|
||||
"입력할 때 IntelliSense를 트리거할 때만 제안을 선택합니다.",
|
||||
"위젯이 표시될 때 제안을 선택할지 여부를 제어합니다. 이는 자동으로 트리거된 제안(\'#editor.quickSuggestions#\' 및 \'#editor.suggestOnTriggerCharacters#\')에만 적용되며, 제안이 명시적으로 호출될 때 항상 선택됩니다(예: \'Ctrl+Space\'를 통해).",
|
||||
"활성 코드 조각이 빠른 제안을 방지하는지 여부를 제어합니다.",
|
||||
"제안의 아이콘을 표시할지 여부를 제어합니다.",
|
||||
"제안 위젯 하단의 상태 표시줄 가시성을 제어합니다.",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"뷰포트의 최소값 및 `#editor.wordWrapColumn#`에서 줄이 바뀝니다.",
|
||||
"줄 바꿈 여부를 제어합니다.",
|
||||
"`#editor.wordWrap#`이 `wordWrapColumn` 또는 \'bounded\'인 경우 편집기의 열 줄 바꿈을 제어합니다.",
|
||||
"편집기에서 탭을 받을지 또는 탐색을 위해 워크벤치로 미룰지를 제어합니다.",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"커서 위치의 줄 강조 표시에 대한 배경색입니다.",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"인라인 제안 표시 여부",
|
||||
"인라인 제안이 공백으로 시작하는지 여부",
|
||||
"인라인 제안이 탭에 의해 삽입되는 것보다 작은 공백으로 시작하는지 여부",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"실행 취소가 인라인 제안을 실행 취소할지 여부",
|
||||
"인라인 추천 도구 모음을 항상 표시할지 여부",
|
||||
"다음 인라인 제안 표시",
|
||||
"이전 인라인 제안 표시",
|
||||
"인라인 제안 트리거",
|
||||
"인라인 제안의 다음 단어 수락",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"인라인 제안의 다음 단어 수락",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"단어 수락",
|
||||
"인라인 추천 수락",
|
||||
"수락",
|
||||
"인라인 제안 숨기기",
|
||||
"항상 도구 모음 표시",
|
||||
"Word 수락 취소",
|
||||
"단어 수락 취소",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"제안:",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"다음 매개 변수 힌트 표시의 아이콘입니다.",
|
||||
"이전 매개 변수 힌트 표시의 아이콘입니다.",
|
||||
"{0}({1})",
|
||||
"이전",
|
||||
"다음",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"선 선택 영역 확장",
|
||||
|
|
@ -1326,7 +1312,7 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"자세한 정보",
|
||||
],
|
||||
"vs/editor/contrib/suggest/browser/suggestWidgetStatus": [
|
||||
"{0} ({1})",
|
||||
"{0}({1})",
|
||||
],
|
||||
"vs/editor/contrib/symbolIcons/browser/symbolIcons": [
|
||||
"배열 기호의 전경색입니다. 이러한 기호는 개요, 이동 경로 및 제안 위젯에 나타납니다.",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"비정상적인 줄 종결자",
|
||||
"비정상적인 줄 종결자가 검색됨",
|
||||
"이 파일 ‘\r\n’에 LS(줄 구분 기호) 또는 PS(단락 구분 기호) 같은 하나 이상의 비정상적인 줄 종결자 문자가 포함되어 있습니다.{0}\r\n파일에서 제거하는 것이 좋습니다. `editor.unusualLineTerminators`를 통해 구성할 수 있습니다.",
|
||||
"비정상적인 줄 종결자 제거",
|
||||
"비정상적인 줄 종결자 제거(&&R)",
|
||||
"무시",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"줄의 인레이 힌트 없음",
|
||||
"완료된 작업",
|
||||
"작업 실패",
|
||||
"터미널 명령 실패",
|
||||
"터미널 벨",
|
||||
"Notebook 셀 완료됨",
|
||||
"Notebook 셀 실패",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"최근에 사용한 항목",
|
||||
"commonly used",
|
||||
"일반적으로 사용됨",
|
||||
"기타 명령",
|
||||
"명령 \'{0}\'에서 오류({1})가 발생했습니다.",
|
||||
"\'{0}\' 명령에서 오류가 발생했습니다.",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"뒤로",
|
||||
"입력을 확인하려면 \'Enter\' 키를 누르고, 취소하려면 \'Esc\' 키를 누르세요.",
|
||||
"{0} / {1}",
|
||||
"결과의 범위를 축소하려면 입력하세요.",
|
||||
"모든 확인란 선택/해제",
|
||||
"{0}개 결과",
|
||||
"{0} 선택됨",
|
||||
"확인",
|
||||
"사용자 지정",
|
||||
"뒤로({0})",
|
||||
"뒤로",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"빠른 입력",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"\'{0}\' 명령을 실행하려면 클릭",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"전체 전경색입니다. 이 색은 구성 요소에서 재정의하지 않은 경우에만 사용됩니다.",
|
||||
"비활성화된 요소의 전체 전경입니다. 이 색은 구성 요소에서 재정의하지 않는 경우에만 사용됩니다.",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"필터링된 일치 항목의 배경색입니다.",
|
||||
"필터링된 일치 항목의 테두리 색입니다.",
|
||||
"들여쓰기 가이드의 트리 스트로크 색입니다.",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"활성 상태가 아닌 들여쓰기 안내선의 트리 스트로크 색입니다.",
|
||||
"열 사이의 표 테두리 색입니다.",
|
||||
"홀수 테이블 행의 배경색입니다.",
|
||||
"강조되지 않은 항목의 목록/트리 전경색. ",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.ko", {
|
|||
"{1}에서 실행 취소 또는 다시 실행 작업이 이미 실행 중이므로 모든 파일에서 \'{0}\'을(를) 실행 취소할 수 없습니다.",
|
||||
"그동안 실행 취소 또는 다시 실행 작업이 발생했기 때문에 모든 파일에서 \'{0}\'을(를) 실행 취소할 수 없습니다.",
|
||||
"모든 파일에서 \'{0}\'을(를) 실행 취소하시겠습니까?",
|
||||
"{0}개 파일에서 실행 취소",
|
||||
"이 파일 실행 취소",
|
||||
"취소",
|
||||
"파일 {0}개에서 실행 취소(&&U)",
|
||||
"이 파일 실행 취소(&&F)",
|
||||
"실행 취소 또는 다시 실행 작업이 이미 실행 중이므로 \'{0}\'을(를) 실행 취소할 수 없습니다.",
|
||||
"\'{0}\'을(를) 실행 취소하시겠습니까?",
|
||||
"예",
|
||||
"예(&&Y)",
|
||||
"아니요",
|
||||
"모든 파일에서 \'{0}\'을(를) 다시 실행할 수 없습니다. {1}",
|
||||
"모든 파일에서 \'{0}\'을(를) 다시 실행할 수 없습니다. {1}",
|
||||
|
|
|
|||
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.ru.js
generated
vendored
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.ru.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"Назад",
|
||||
"Нажмите клавишу ВВОД, чтобы подтвердить введенные данные, или ESCAPE для отмены",
|
||||
"{0} / {1}",
|
||||
"Введите текст, чтобы уменьшить число результатов.",
|
||||
"Переключить все флажки",
|
||||
"Результаты: {0}",
|
||||
"{0} выбрано",
|
||||
"OK",
|
||||
"Другой",
|
||||
"Назад ({0})",
|
||||
"Назад",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"Быстрый ввод",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"редактор",
|
||||
"Сейчас редактор недоступен. Нажмите {0} для отображения вариантов.",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Определяет показ семантической подсветки для языков, поддерживающих ее.",
|
||||
"Оставлять быстрый редактор открытым даже при двойном щелчке по его содержимому и при нажатии ESC.",
|
||||
"Строки, длина которых превышает указанное значение, не будут размечены из соображений производительности",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"Определяет символы скобок, увеличивающие или уменьшающие отступ.",
|
||||
"Открывающий символ скобки или строковая последовательность.",
|
||||
"Закрывающий символ скобки или строковая последовательность.",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Определяет разрешенные символы, которые не выделяются.",
|
||||
"Символы Юникода, распространенные в разрешенных языках, не выделяются.",
|
||||
"Определяет, следует ли автоматически показывать встроенные предложения в редакторе.",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"Отображать панель инструментов встроенного предложения при каждом отображении встроенного предложения.",
|
||||
"Отображать панель инструментов предложений при наведении указателя мыши на встроенное предложение.",
|
||||
"Определяет, когда отображать встроенную панель инструментов предложений.",
|
||||
"Определяет, включена ли раскраска пар скобок. Используйте {0} для переопределения цветов выделения скобок.",
|
||||
"Определяет, имеет ли каждый тип скобок собственный независимый пул цветов.",
|
||||
"Включение направляющих для пар скобок.",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Управляет тем, допускаются ли небольшие опечатки в предложениях фильтрации и сортировки.",
|
||||
"Определяет, следует ли учитывать при сортировке слова, расположенные рядом с курсором.",
|
||||
"Определяет, используются ли сохраненные варианты выбора предложений совместно несколькими рабочими областями и окнами (требуется \"#editor.suggestSelection#\").",
|
||||
"Всегда активировать мини-приложение рекомендаций при автоматическом запуске IntelliSense.",
|
||||
"Никогда не активировать предложение при автоматическом запуске IntelliSense.",
|
||||
"Активировать мини-приложения рекомендаций только при активации IntelliSense с помощью триггерного символа.",
|
||||
"Активировать мини-приложения рекомендаций только при запуске IntelliSense во время ввода.",
|
||||
"Определяет, становится ли мини-приложение подсказки активным при запуске с помощью быстрого предложения или триггерных символов. Обратите внимание, что мини-приложения всегда активны при явном вызове, например с помощью \"CTRL+ПРОБЕЛ\".",
|
||||
"Всегда выбирать предложение при автоматической активации IntelliSense.",
|
||||
"Никогда не выбирать предложение при автоматической активации IntelliSense.",
|
||||
"Выбирать предложение только при активации IntelliSense с помощью триггерного символа.",
|
||||
"Выбирать предложение только при активации IntelliSense по мере ввода.",
|
||||
"Определяет, выбирается ли предложение при отображении мини-приложения. Обратите внимание, что этот параметр применяется только к автоматически активированным предложениям (\"#editor.quickSuggestions#\" и \"#editor.suggestOnTriggerCharacters#\"), и что предложение всегда выбирается при явном вызове, например с помощью сочетания клавиш \"CTRL+ПРОБЕЛ\".",
|
||||
"Определяет, запрещает ли активный фрагмент кода экспресс-предложения.",
|
||||
"Указывает, нужно ли отображать значки в предложениях.",
|
||||
"Определяет видимость строки состояния в нижней части виджета предложений.",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Строки будут перенесены по минимальному значению из двух: ширина окна просмотра и \"#editor.wordWrapColumn#\".",
|
||||
"Управляет тем, как следует переносить строки.",
|
||||
"Определяет столбец переноса редактора, если значение \"#editor.wordWrap#\" — \"wordWrapColumn\" или \"bounded\".",
|
||||
"Определяет, получает ли редактор вкладки или откладывает ли их в рабочую среду для навигации.",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"Цвет фона для выделения строки в позиции курсора.",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Отображается ли встроенное предложение",
|
||||
"Начинается ли встроенное предложение с пробела",
|
||||
"Проверяет, не является ли пробел перед встроенной рекомендацией короче, чем текст, вставляемый клавишей TAB",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"Выполняет ли команда \"Отменить\" отмену встроенного предложения",
|
||||
"Должна ли всегда отображаться встроенная панель инструментов предложений",
|
||||
"Показывать следующее встроенное предложение",
|
||||
"Показать предыдущее встроенное предложение",
|
||||
"Активировать встроенное предложение",
|
||||
"Принять следующее слово встроенного предложения",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"Принять следующее слово встроенного предложения",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"Принять Word",
|
||||
"Принять встроенное предложение",
|
||||
"Принять",
|
||||
"Скрыть встроенное предложение",
|
||||
"Всегда отображать панель инструментов",
|
||||
"Отменить принятие слова",
|
||||
"Отменить принятие Word",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"Предложение:",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"Значок для отображения подсказки следующего параметра.",
|
||||
"Значок для отображения подсказки предыдущего параметра.",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"Назад",
|
||||
"Далее",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"Развернуть выделение строки",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Необычные символы завершения строки",
|
||||
"Обнаружены необычные символы завершения строки",
|
||||
"Файл \"{0}\" содержит один или несколько необычных символов завершения строки, таких как разделитель строк (LS) или разделитель абзацев (PS).\r\n\r\nРекомендуется удалить их из файла. Удаление этих символов можно настроить с помощью параметра \"editor.unusualLineTerminators\".",
|
||||
"Удалить необычные символы завершения строки",
|
||||
"&&Удалить необычные символы завершения строки",
|
||||
"Пропустить",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Отсутствие встроенных подсказок в строке",
|
||||
"Задача завершена",
|
||||
"Сбой задачи",
|
||||
"Сбой команды терминала",
|
||||
"Звонок терминала",
|
||||
"Ячейка записной книжки выполнена",
|
||||
"Сбой ячейки записной книжки",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"недавно использованные",
|
||||
"commonly used",
|
||||
"часто используемые",
|
||||
"другие команды",
|
||||
"Команда \"{0}\" привела к ошибке ({1})",
|
||||
"Команда \"{0}\" привела к ошибке",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"Назад",
|
||||
"Нажмите клавишу ВВОД, чтобы подтвердить введенные данные, или ESCAPE для отмены",
|
||||
"{0} / {1}",
|
||||
"Введите текст, чтобы уменьшить число результатов.",
|
||||
"Переключить все флажки",
|
||||
"Результаты: {0}",
|
||||
"{0} выбрано",
|
||||
"ОК",
|
||||
"Другой",
|
||||
"Назад ({0})",
|
||||
"Назад",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"Быстрый ввод",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"Щелкните, чтобы выполнить команду \"{0}\"",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"Общий цвет переднего плана. Этот цвет используется, только если его не переопределит компонент.",
|
||||
"Общий цвет переднего плана для отключенных элементов. Этот цвет используется только в том случае, если он не переопределен компонентом.",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Цвет фона для отфильтрованного совпадения.",
|
||||
"Цвет границы для отфильтрованного совпадения.",
|
||||
"Цвет штриха дерева для направляющих отступа.",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"Цвет штриха дерева для неактивных направляющих отступа.",
|
||||
"Цвет границы таблицы между столбцами.",
|
||||
"Цвет фона для нечетных строк таблицы.",
|
||||
"Цвет переднего плана в списке/дереве для элементов, выделение которых отменено.",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.ru", {
|
|||
"Не удалось отменить действие \"{0}\" для всех файлов, так как в {1} уже выполняется операция отмены или повтора действия",
|
||||
"Не удалось отменить действие \"{0}\" для всех файлов, так как уже выполнялась операция отмены или повтора действия",
|
||||
"Вы хотите отменить \"{0}\" для всех файлов?",
|
||||
"Отменить действие в нескольких файлах ({0})",
|
||||
"Отменить этот файл",
|
||||
"Отмена",
|
||||
"&&Отменить действие в файлах {0}",
|
||||
"Отменить этот &&файл",
|
||||
"Не удалось отменить действие \"{0}\", так как уже выполняется операция отмены или повтора действия",
|
||||
"Вы хотите отменить \"{0}\"?",
|
||||
"Да",
|
||||
"&&Да",
|
||||
"Нет",
|
||||
"Не удалось повторить операцию \"{0}\" для всех файлов. {1}",
|
||||
"Не удалось повторить операцию \"{0}\" для всех файлов. {1}",
|
||||
|
|
|
|||
99
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.zh-cn.js
generated
vendored
99
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.zh-cn.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"上一步",
|
||||
"按 \"Enter\" 以确认或按 \"Esc\" 以取消",
|
||||
"{0}/{1}",
|
||||
"在此输入可缩小结果范围。",
|
||||
"切换所有复选框",
|
||||
"{0} 个结果",
|
||||
"已选 {0} 项",
|
||||
"确定",
|
||||
"自定义",
|
||||
"后退 ({0})",
|
||||
"上一步",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"快速输入",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"编辑器",
|
||||
"现在无法访问编辑器。按 {0} 获取选项。",
|
||||
|
|
@ -163,7 +147,7 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"控制在基于文件内容打开文件时是否自动检测 {0} 和 {1}。",
|
||||
"删除自动插入的尾随空白符号。",
|
||||
"对大型文件进行特殊处理,禁用某些内存密集型功能。",
|
||||
"控制是否根据文档中的文字计算自动完成列表。",
|
||||
"控制是否根据文档中的字词计算自动补全列表。",
|
||||
"仅建议活动文档中的字词。",
|
||||
"建议使用同一语言的所有打开的文档中的字词。",
|
||||
"建议所有打开的文档中的字词。",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"控制是否为支持它的语言显示语义突出显示。",
|
||||
"保持速览编辑器处于打开状态,即使双击其中的内容或者点击 `Escape` 键也是如此。",
|
||||
"由于性能原因,超过这个长度的行将不会被标记",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"定义增加和减少缩进的括号。",
|
||||
"左方括号字符或字符串序列。",
|
||||
"右方括号字符或字符串序列。",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"定义未突出显示的允许字符。",
|
||||
"未突出显示在允许区域设置中常见的 Unicode 字符。",
|
||||
"控制是否在编辑器中自动显示内联建议。",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"每当显示内联建议时,显示内联建议工具栏。",
|
||||
"将鼠标悬停在内联建议上时显示内联建议工具栏。",
|
||||
"控制何时显示内联建议工具栏。",
|
||||
"控制是否启用括号对着色。请使用 {0} 重写括号突出显示颜色。",
|
||||
"控制每个方括号类型是否具有自己的独立颜色池。",
|
||||
"启用括号对参考线。",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"控制对建议的筛选和排序是否考虑小的拼写错误。",
|
||||
"控制排序时是否首选光标附近的字词。",
|
||||
"控制是否在多个工作区和窗口间共享记忆的建议选项(需要 `#editor.suggestSelection#`)。",
|
||||
"自动触发 IntelliSense 时,始终激活建议小组件。",
|
||||
"自动触发 IntelliSense 时,从不激活建议。",
|
||||
"仅当从触发器字符触发 IntelliSense 时激活建议小组件。",
|
||||
"仅在键入时触发 IntelliSense 时激活建议小组件。",
|
||||
"控制建议小组件在通过快速建议或触发器字符触发时是否变为活动状态。请注意,显式调用时,小组件始终处于活动状态,例如通过 `Ctrl+Space`。",
|
||||
"自动触发 IntelliSense 时始终选择建议。",
|
||||
"自动触发 IntelliSense 时,切勿选择建议。",
|
||||
"仅当从触发器字符触发 IntelliSense 时,才选择建议。",
|
||||
"仅在键入时触发 IntelliSense 时才选择建议。",
|
||||
"控制在显示小组件时是否选择建议。请注意,这仅适用于(“#editor.quickSuggestions#”和“#editor.suggestOnTriggerCharacters#”)自动触发的建议,并且始终在显式调用时选择建议,例如通过“Ctrl+Space”。",
|
||||
"控制活动代码段是否阻止快速建议。",
|
||||
"控制是否在建议中显示或隐藏图标。",
|
||||
"控制建议小部件底部的状态栏的可见性。",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"在视区宽度和 `#editor.wordWrapColumn#` 中的较小值处折行。",
|
||||
"控制折行的方式。",
|
||||
"在 `#editor.wordWrap#` 为 `wordWrapColumn` 或 `bounded` 时,控制编辑器的折行列。",
|
||||
"控制编辑器是接收选项卡还是将其延迟到工作台进行导航。",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"光标所在行高亮内容的背景颜色。",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"内联建议是否可见",
|
||||
"内联建议是否以空白开头",
|
||||
"内联建议是否以小于选项卡插入内容的空格开头",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"撤消是否会撤消内联建议",
|
||||
"内联建议工具栏是否应始终可见",
|
||||
"显示下一个内联建议",
|
||||
"显示上一个内联建议",
|
||||
"触发内联建议",
|
||||
"接受内联建议的下一个字",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"接受内联建议的下一个字",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"接受 Word",
|
||||
"接受内联建议",
|
||||
"接受",
|
||||
"隐藏内联建议",
|
||||
"始终显示工具栏",
|
||||
"撤消接受 Word",
|
||||
"撤消接受 Word",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"建议:",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"“显示下一个参数”提示的图标。",
|
||||
"“显示上一个参数”提示的图标。",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"上一个",
|
||||
"下一个",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"展开行选择",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"异常行终止符",
|
||||
"检测到异常行终止符",
|
||||
"文件“{0}”包含一个或多个异常的行终止符,例如行分隔符(LS)或段落分隔符(PS)。\r\n\r\n建议从文件中删除它们。可通过“editor.unusualLineTerminators”进行配置。",
|
||||
"删除异常行终止符",
|
||||
"删除异常行终止符(&&R)",
|
||||
"忽略",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"行上无嵌入提示",
|
||||
"任务已完成",
|
||||
"任务失败",
|
||||
"终端命令失败",
|
||||
"终端钟",
|
||||
"笔记本单元格已完成",
|
||||
"笔记本单元格失败",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"最近使用",
|
||||
"commonly used",
|
||||
"常用",
|
||||
"其他命令",
|
||||
"命令\"{0}\"导致错误 ({1})",
|
||||
"命令 \"{0}\" 导致错误",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"上一步",
|
||||
"按 \"Enter\" 以确认或按 \"Esc\" 以取消",
|
||||
"{0}/{1}",
|
||||
"在此输入可缩小结果范围。",
|
||||
"切换所有复选框",
|
||||
"{0} 个结果",
|
||||
"已选 {0} 项",
|
||||
"确定",
|
||||
"自定义",
|
||||
"后退 ({0})",
|
||||
"上一步",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"快速输入",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"单击以执行命令 \"{0}\"",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"整体前景色。此颜色仅在不被组件覆盖时适用。",
|
||||
"已禁用元素的整体前景色。仅在未由组件替代时才能使用此颜色。",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"筛选后的匹配项的背景颜色。",
|
||||
"筛选后的匹配项的边框颜色。",
|
||||
"缩进参考线的树描边颜色。",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"非活动缩进参考线的树描边颜色。",
|
||||
"列之间的表边框颜色。",
|
||||
"奇数表行的背景色。",
|
||||
"取消强调的项目的列表/树前景颜色。",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.zh-cn", {
|
|||
"无法跨所有文件撤销“{0}”,因为 {1} 上已有一项撤消或重做操作正在运行",
|
||||
"无法跨所有文件撤销“{0}”,因为同时发生了一项撤消或重做操作",
|
||||
"是否要在所有文件中撤消“{0}”?",
|
||||
"在 {0} 个文件中撤消",
|
||||
"撤消此文件",
|
||||
"取消",
|
||||
"在 {0} 个文件中撤消(&&U)",
|
||||
"撤消此文件(&&F)",
|
||||
"无法撤销“{0}”,因为已有一项撤消或重做操作正在运行。",
|
||||
"是否要撤消“{0}”?",
|
||||
"是",
|
||||
"是(&&Y)",
|
||||
"否",
|
||||
"无法在所有文件中重做“{0}”。{1}",
|
||||
"无法在所有文件中重做“{0}”。{1}",
|
||||
|
|
|
|||
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.zh-tw.js
generated
vendored
97
node_modules/monaco-editor-core/dev/vs/editor/editor.main.nls.zh-tw.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
@ -84,22 +84,6 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"vs/base/common/platform": [
|
||||
"_",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInput": [
|
||||
"上一頁",
|
||||
"按 \'Enter\' 鍵確認您的輸入或按 \'Esc\' 鍵取消",
|
||||
"{0}/{1}",
|
||||
"輸入以縮小結果範圍。",
|
||||
"切換所有核取方塊",
|
||||
"{0} 個結果",
|
||||
"已選擇 {0}",
|
||||
"確定",
|
||||
"自訂",
|
||||
"背面 ({0})",
|
||||
"上一頁",
|
||||
],
|
||||
"vs/base/parts/quickinput/browser/quickInputList": [
|
||||
"快速輸入",
|
||||
],
|
||||
"vs/editor/browser/controller/textAreaHandler": [
|
||||
"編輯器",
|
||||
"目前無法存取此編輯器。請按 {0} 取得選項。",
|
||||
|
|
@ -174,6 +158,7 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"控制 semanticHighlighting 是否會為支援的語言顯示。",
|
||||
"即使按兩下內容或按 `Escape`,仍保持瞄孔編輯器開啟。",
|
||||
"因效能的緣故,不會將超過此高度的行 Token 化",
|
||||
"Controls whether the tokenization should happen asynchronously on a web worker.",
|
||||
"定義增加或減少縮排的括弧符號。",
|
||||
"左括弧字元或字串順序。",
|
||||
"右括弧字元或字串順序。",
|
||||
|
|
@ -304,9 +289,9 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"定義未醒目提示的允許字元。",
|
||||
"不會將允許地區設置中常見的 Unicode 字元強調顯示。",
|
||||
"控制是否要在編輯器中自動顯示內嵌建議。",
|
||||
"Show the inline suggestion toolbar whenever an inline suggestion is shown.",
|
||||
"Show the inline suggestion toolbar when hovering over an inline suggestion.",
|
||||
"Controls when to show the inline suggestion toolbar.",
|
||||
"每當顯示內嵌建議時,顯示內嵌建議工具列。",
|
||||
"每當游標停留在內嵌建議上方時,顯示內嵌建議工具列。",
|
||||
"控制何時顯示內嵌建議工具列。",
|
||||
"控制是否啟用成對方括弧著色。使用 {0} 覆寫括弧亮顯顏色。",
|
||||
"控制每個括弧類型是否有自己的獨立色彩集區。",
|
||||
"啟用括弧配對輔助線。",
|
||||
|
|
@ -329,11 +314,11 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"控制對於拚錯字是否進行篩選和排序其建議",
|
||||
"控制排序是否偏好游標附近的字組。",
|
||||
"控制記錄的建議選取項目是否在多個工作區和視窗間共用 (需要 `#editor.suggestSelection#`)。",
|
||||
"自動觸發 IntelliSense 時,一律啟用建議小工具。",
|
||||
"自動觸發 IntelliSense 時,絕不啟用建議。",
|
||||
"只有在從觸發字元觸發 IntelliSense 時,才啟用建議小工具。",
|
||||
"只有在輸入時觸發 IntelliSense 時,才啟用建議小工具。",
|
||||
"控制透過快速建議或觸發字元觸發時,建議小工具是否要變成使用中。請注意,明確叫用 (例如透過「Ctrl+空格鍵」) 小工具時,其一律會為使用中。",
|
||||
"自動觸發 IntelliSense 時一律選取建議。",
|
||||
"自動觸發 IntelliSense 時永不選取建議。",
|
||||
"只有在從觸發字元觸發 IntelliSense 時,才選取建議。",
|
||||
"只有在您輸入時觸發 IntelliSense 時,才選取建議。",
|
||||
"控制小工具顯示時是否選取建議。請注意,這只適用於(\'#editor.quickSuggestions#\' 和 \'#editor.suggestOnTriggerCharacters#\') 自動觸發的建議,而且一律會在明確叫用時選取建議,例如透過 \'Ctrl+Space\'。",
|
||||
"控制正在使用的程式碼片段是否會避免快速建議。",
|
||||
"控制要在建議中顯示或隱藏圖示。",
|
||||
"控制建議小工具底下的狀態列可見度。",
|
||||
|
|
@ -517,6 +502,7 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"當檢視區縮至最小並設定 \'#editor.wordWrapColumn#\' 時換行。",
|
||||
"控制如何換行。",
|
||||
"當 `#editor.wordWrap#` 為 `wordWrapColumn` 或 `bounded` 時,控制編輯器中的資料行換行。",
|
||||
"控制編輯器是否接收索引標籤,或將其延遲至工作台進行流覽。",
|
||||
],
|
||||
"vs/editor/common/core/editorColorRegistry": [
|
||||
"目前游標位置行的反白顯示背景色彩。",
|
||||
|
|
@ -1027,29 +1013,29 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"是否顯示內嵌建議",
|
||||
"內嵌建議是否以空白字元開頭",
|
||||
"內嵌建議的開頭是否為空白,且比 Tab 能插入的字元要小",
|
||||
"Whether undo would undo an inline suggestion",
|
||||
"Whether the inline suggestion toolbar should always be visible",
|
||||
"復原是否復原內嵌建議",
|
||||
"是否一律顯示內嵌建議工具列",
|
||||
"顯示下一個內嵌建議",
|
||||
"顯示上一個內嵌建議",
|
||||
"觸發內嵌建議",
|
||||
"接受下一個內嵌建議字組",
|
||||
"Accept Word",
|
||||
"Accept Inline Suggestion",
|
||||
"Accept",
|
||||
"接受下一個內嵌建議字組",
|
||||
"Always Show Toolbar",
|
||||
"Undo Accept Part",
|
||||
"Undo Accept Word",
|
||||
"接受字組",
|
||||
"接受內嵌建議",
|
||||
"接受",
|
||||
"隱藏內嵌建議",
|
||||
"永遠顯示工具列",
|
||||
"復原接受字組",
|
||||
"復原接受字組",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/ghostTextHoverParticipant": [
|
||||
"建議:",
|
||||
],
|
||||
"vs/editor/contrib/inlineCompletions/browser/inlineSuggestionHintsWidget": [
|
||||
"Icon for show next parameter hint.",
|
||||
"Icon for show previous parameter hint.",
|
||||
"[顯示下一個參數提示] 的圖示。",
|
||||
"[顯示上一個參數提示] 的圖示。",
|
||||
"{0} ({1})",
|
||||
"Previous",
|
||||
"Next",
|
||||
"上一步",
|
||||
"下一步",
|
||||
],
|
||||
"vs/editor/contrib/lineSelection/browser/lineSelection": [
|
||||
"展開線條選取範圍",
|
||||
|
|
@ -1400,7 +1386,7 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"異常的行結束字元",
|
||||
"偵測到異常的行結束字元",
|
||||
"檔案 \'{0}\' 包含一或多個異常的行結束字元,例如行分隔符號 (LS) 或段落分隔符號 (PS)。\r\n\r\n建議您將其從檔案中移除。這可以透過 `editor.unusualLineTerminators` 進行設定。",
|
||||
"移除異常的行結束字元",
|
||||
"移除異常的行結束字元(&&R)",
|
||||
"忽略",
|
||||
],
|
||||
"vs/editor/contrib/wordHighlighter/browser/highlightDecorations": [
|
||||
|
|
@ -1466,6 +1452,7 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"行上沒有嵌入提示",
|
||||
"工作完成",
|
||||
"工作失敗",
|
||||
"終端機命令失敗",
|
||||
"終端鈴",
|
||||
"Notebook 儲存格已完成",
|
||||
"Notebook 儲存格失敗",
|
||||
|
|
@ -1541,13 +1528,32 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"vs/platform/quickinput/browser/commandsQuickAccess": [
|
||||
"{0}, {1}",
|
||||
"最近使用的",
|
||||
"commonly used",
|
||||
"經常使用",
|
||||
"其他命令",
|
||||
"命令 \'{0}\' 造成錯誤 ({1})",
|
||||
"命令 \'{0}\' 造成錯誤",
|
||||
],
|
||||
"vs/platform/quickinput/browser/helpQuickAccess": [
|
||||
"{0}, {1}",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInput": [
|
||||
"上一頁",
|
||||
"按 \'Enter\' 鍵確認您的輸入或按 \'Esc\' 鍵取消",
|
||||
"{0}/{1}",
|
||||
"輸入以縮小結果範圍。",
|
||||
"切換所有核取方塊",
|
||||
"{0} 個結果",
|
||||
"已選擇 {0}",
|
||||
"確定",
|
||||
"自訂",
|
||||
"背面 ({0})",
|
||||
"上一頁",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputList": [
|
||||
"快速輸入",
|
||||
],
|
||||
"vs/platform/quickinput/browser/quickInputUtils": [
|
||||
"按一下以執行命令 ‘{0}’",
|
||||
],
|
||||
"vs/platform/theme/common/colorRegistry": [
|
||||
"整體的前景色彩。僅當未被任何元件覆疊時,才會使用此色彩。",
|
||||
"已停用元素的整體前景。只有在元件未覆蓋時,才能使用這個色彩。",
|
||||
|
|
@ -1698,7 +1704,7 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"已篩選相符項的背景色彩。",
|
||||
"已篩選相符項的框線色彩。",
|
||||
"縮排輔助線的樹狀筆觸色彩。",
|
||||
"Tree stroke color for the indentation guides that are not active.",
|
||||
"非使用中縮排輔助線的樹狀筆觸色彩。",
|
||||
"資料行之間的資料表邊界色彩。",
|
||||
"奇數資料表資料列的背景色彩。",
|
||||
"已取消強調的清單/樹狀結構前景色彩。",
|
||||
|
|
@ -1780,12 +1786,11 @@ define("vs/editor/editor.main.nls.zh-tw", {
|
|||
"因為 {1} 中已經有正在執行的復原或重做作業,所以無法為所有檔案復原 \'{0}\'",
|
||||
"因為同時發生其他復原或重做作業,所以無法為所有檔案復原 \'{0}\'",
|
||||
"要復原所有檔案的 \'{0}\' 嗎?",
|
||||
"在 {0} 個檔案中復原",
|
||||
"復原此檔案",
|
||||
"取消",
|
||||
"在 {0} 個檔案中復原(&&U)",
|
||||
"復原此檔案(&&F)",
|
||||
"因為已經有正在執行的復原或重做作業,所以無法復原 \'{0}\'。",
|
||||
"要復原 \'{0}\' 嗎?",
|
||||
"是",
|
||||
"是(&&Y)",
|
||||
"否",
|
||||
"無法復原所有檔案的 \'{0}\'。{1}",
|
||||
"無法復原所有檔案的 \'{0}\'。{1}",
|
||||
|
|
|
|||
2
node_modules/monaco-editor-core/dev/vs/loader.js
generated
vendored
2
node_modules/monaco-editor-core/dev/vs/loader.js
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
/*!-----------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.35.0-dev.20230127(212670ceb460441b3ebed29e6ca30aa1e9bdde85)
|
||||
* Version: 0.36.0-dev.20230224(f2d1d1d4a1d685a9bcf4bb5d6929080866f20c39)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/vscode/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------*/
|
||||
|
|
|
|||
6
node_modules/monaco-editor-core/esm/vs/base/browser/dom.js
generated
vendored
6
node_modules/monaco-editor-core/esm/vs/base/browser/dom.js
generated
vendored
|
|
@ -535,6 +535,10 @@ export const EventType = {
|
|||
ANIMATION_END: browser.isWebKit ? 'webkitAnimationEnd' : 'animationend',
|
||||
ANIMATION_ITERATION: browser.isWebKit ? 'webkitAnimationIteration' : 'animationiteration'
|
||||
};
|
||||
export function isEventLike(obj) {
|
||||
const candidate = obj;
|
||||
return !!(candidate && typeof candidate.preventDefault === 'function' && typeof candidate.stopPropagation === 'function');
|
||||
}
|
||||
export const EventHelper = {
|
||||
stop: (e, cancelBubble) => {
|
||||
e.preventDefault();
|
||||
|
|
@ -866,7 +870,7 @@ export const basicMarkupHtmlTags = Object.freeze([
|
|||
]);
|
||||
const defaultDomPurifyConfig = Object.freeze({
|
||||
ALLOWED_TAGS: ['a', 'button', 'blockquote', 'code', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'input', 'label', 'li', 'p', 'pre', 'select', 'small', 'span', 'strong', 'textarea', 'ul', 'ol'],
|
||||
ALLOWED_ATTR: ['href', 'data-href', 'data-command', 'target', 'title', 'name', 'src', 'alt', 'class', 'id', 'role', 'tabindex', 'style', 'data-code', 'width', 'height', 'align', 'x-dispatch', 'required', 'checked', 'placeholder', 'type'],
|
||||
ALLOWED_ATTR: ['href', 'data-href', 'data-command', 'target', 'title', 'name', 'src', 'alt', 'class', 'id', 'role', 'tabindex', 'style', 'data-code', 'width', 'height', 'align', 'x-dispatch', 'required', 'checked', 'placeholder', 'type', 'start'],
|
||||
RETURN_DOM: false,
|
||||
RETURN_DOM_FRAGMENT: false,
|
||||
RETURN_TRUSTED_TYPE: true
|
||||
|
|
|
|||
3
node_modules/monaco-editor-core/esm/vs/base/browser/markdownRenderer.js
generated
vendored
3
node_modules/monaco-editor-core/esm/vs/base/browser/markdownRenderer.js
generated
vendored
|
|
@ -228,7 +228,7 @@ export function renderMarkdown(markdown, options = {}, markedOptions = {}) {
|
|||
markdownHtmlDoc.body.querySelectorAll('a')
|
||||
.forEach(a => {
|
||||
const href = a.getAttribute('href'); // Get the raw 'href' attribute value as text, not the resolved 'href'
|
||||
a.removeAttribute('href'); // Clear out href. We use the `data-href` for handling clicks instead
|
||||
a.setAttribute('href', ''); // Clear out href. We use the `data-href` for handling clicks instead
|
||||
if (!href
|
||||
|| /^data:|javascript:/i.test(href)
|
||||
|| (/^command:/i.test(href) && !markdown.isTrusted)
|
||||
|
|
@ -347,6 +347,7 @@ export const allowedMarkdownAttr = [
|
|||
'target',
|
||||
'title',
|
||||
'width',
|
||||
'start',
|
||||
];
|
||||
function getSanitizerOptions(options) {
|
||||
const allowedSchemes = [
|
||||
|
|
|
|||
1
node_modules/monaco-editor-core/esm/vs/base/browser/ui/button/button.css
generated
vendored
1
node_modules/monaco-editor-core/esm/vs/base/browser/ui/button/button.css
generated
vendored
|
|
@ -98,6 +98,7 @@
|
|||
}
|
||||
|
||||
.monaco-button-dropdown > .monaco-button.monaco-dropdown-button {
|
||||
border: 1px solid var(--vscode-button-border, transparent);
|
||||
border-left-width: 0 !important;
|
||||
border-radius: 0 2px 2px 0;
|
||||
}
|
||||
|
|
|
|||
5
node_modules/monaco-editor-core/esm/vs/base/browser/ui/iconLabel/iconLabelHover.js
generated
vendored
5
node_modules/monaco-editor-core/esm/vs/base/browser/ui/iconLabel/iconLabelHover.js
generated
vendored
|
|
@ -110,6 +110,7 @@ export function setupCustomHover(hoverDelegate, htmlElement, content, options) {
|
|||
let hoverWidget;
|
||||
const hideHover = (disposeWidget, disposePreparation) => {
|
||||
var _a;
|
||||
const hadHover = hoverWidget !== undefined;
|
||||
if (disposeWidget) {
|
||||
hoverWidget === null || hoverWidget === void 0 ? void 0 : hoverWidget.dispose();
|
||||
hoverWidget = undefined;
|
||||
|
|
@ -118,7 +119,9 @@ export function setupCustomHover(hoverDelegate, htmlElement, content, options) {
|
|||
hoverPreparation === null || hoverPreparation === void 0 ? void 0 : hoverPreparation.dispose();
|
||||
hoverPreparation = undefined;
|
||||
}
|
||||
(_a = hoverDelegate.onDidHideHover) === null || _a === void 0 ? void 0 : _a.call(hoverDelegate);
|
||||
if (hadHover) {
|
||||
(_a = hoverDelegate.onDidHideHover) === null || _a === void 0 ? void 0 : _a.call(hoverDelegate);
|
||||
}
|
||||
};
|
||||
const triggerShowHover = (delay, focus, target) => {
|
||||
return new TimeoutTimer(() => __awaiter(this, void 0, void 0, function* () {
|
||||
|
|
|
|||
|
|
@ -8,15 +8,18 @@ import { equals } from '../../../common/objects.js';
|
|||
import './keybindingLabel.css';
|
||||
import { localize } from '../../../../nls.js';
|
||||
const $ = dom.$;
|
||||
export const unthemedKeybindingLabelOptions = {
|
||||
keybindingLabelBackground: undefined,
|
||||
keybindingLabelForeground: undefined,
|
||||
keybindingLabelBorder: undefined,
|
||||
keybindingLabelBottomBorder: undefined,
|
||||
keybindingLabelShadow: undefined
|
||||
};
|
||||
export class KeybindingLabel {
|
||||
constructor(container, os, options) {
|
||||
this.os = os;
|
||||
this.keyElements = new Set();
|
||||
this.options = options || Object.create(null);
|
||||
this.labelBackground = this.options.keybindingLabelBackground;
|
||||
this.labelBorder = this.options.keybindingLabelBorder;
|
||||
this.labelBottomBorder = this.options.keybindingLabelBottomBorder;
|
||||
this.labelShadow = this.options.keybindingLabelShadow;
|
||||
const labelForeground = this.options.keybindingLabelForeground;
|
||||
this.domNode = dom.append(container, $('.monaco-keybinding'));
|
||||
if (labelForeground) {
|
||||
|
|
@ -96,17 +99,17 @@ export class KeybindingLabel {
|
|||
createKeyElement(label, extraClass = '') {
|
||||
const keyElement = $('span.monaco-keybinding-key' + extraClass, undefined, label);
|
||||
this.keyElements.add(keyElement);
|
||||
if (this.labelBackground) {
|
||||
keyElement.style.backgroundColor = this.labelBackground;
|
||||
if (this.options.keybindingLabelBackground) {
|
||||
keyElement.style.backgroundColor = this.options.keybindingLabelBackground;
|
||||
}
|
||||
if (this.labelBorder) {
|
||||
keyElement.style.borderColor = this.labelBorder;
|
||||
if (this.options.keybindingLabelBorder) {
|
||||
keyElement.style.borderColor = this.options.keybindingLabelBorder;
|
||||
}
|
||||
if (this.labelBottomBorder) {
|
||||
keyElement.style.borderBottomColor = this.labelBottomBorder;
|
||||
if (this.options.keybindingLabelBottomBorder) {
|
||||
keyElement.style.borderBottomColor = this.options.keybindingLabelBottomBorder;
|
||||
}
|
||||
if (this.labelShadow) {
|
||||
keyElement.style.boxShadow = `inset 0 -1px 0 ${this.labelShadow}`;
|
||||
if (this.options.keybindingLabelShadow) {
|
||||
keyElement.style.boxShadow = `inset 0 -1px 0 ${this.options.keybindingLabelShadow}`;
|
||||
}
|
||||
return keyElement;
|
||||
}
|
||||
|
|
|
|||
15
node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listView.js
generated
vendored
15
node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listView.js
generated
vendored
|
|
@ -621,6 +621,7 @@ class ListView {
|
|||
get onMouseMiddleClick() { return Event.filter(Event.map(this.disposables.add(new DomEmitter(this.domNode, 'auxclick')).event, e => this.toMouseEvent(e), this.disposables), e => e.browserEvent.button === 1, this.disposables); }
|
||||
get onMouseDown() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mousedown')).event, e => this.toMouseEvent(e), this.disposables); }
|
||||
get onMouseOver() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mouseover')).event, e => this.toMouseEvent(e), this.disposables); }
|
||||
get onMouseOut() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mouseout')).event, e => this.toMouseEvent(e), this.disposables); }
|
||||
get onContextMenu() { return Event.any(Event.map(this.disposables.add(new DomEmitter(this.domNode, 'contextmenu')).event, e => this.toMouseEvent(e), this.disposables), Event.map(this.disposables.add(new DomEmitter(this.domNode, TouchEventType.Contextmenu)).event, e => this.toGestureEvent(e), this.disposables)); }
|
||||
get onTouchStart() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'touchstart')).event, e => this.toTouchEvent(e), this.disposables); }
|
||||
get onTap() { return Event.map(this.disposables.add(new DomEmitter(this.rowsContainer, TouchEventType.Tap)).event, e => this.toGestureEvent(e), this.disposables); }
|
||||
|
|
@ -685,9 +686,16 @@ class ListView {
|
|||
}
|
||||
const dragImage = $('.monaco-drag-image');
|
||||
dragImage.textContent = label;
|
||||
document.body.appendChild(dragImage);
|
||||
const getDragImageContainer = (e) => {
|
||||
while (e && !e.classList.contains('monaco-workbench')) {
|
||||
e = e.parentElement;
|
||||
}
|
||||
return e || document.body;
|
||||
};
|
||||
const container = getDragImageContainer(this.domNode);
|
||||
container.appendChild(dragImage);
|
||||
event.dataTransfer.setDragImage(dragImage, -10, -10);
|
||||
setTimeout(() => document.body.removeChild(dragImage), 0);
|
||||
setTimeout(() => container.removeChild(dragImage), 0);
|
||||
}
|
||||
this.domNode.classList.add('dragging');
|
||||
this.currentDragData = new ElementsDragAndDropData(elements);
|
||||
|
|
@ -1035,6 +1043,9 @@ __decorate([
|
|||
__decorate([
|
||||
memoize
|
||||
], ListView.prototype, "onMouseOver", null);
|
||||
__decorate([
|
||||
memoize
|
||||
], ListView.prototype, "onMouseOut", null);
|
||||
__decorate([
|
||||
memoize
|
||||
], ListView.prototype, "onContextMenu", null);
|
||||
|
|
|
|||
3
node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listWidget.js
generated
vendored
3
node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listWidget.js
generated
vendored
|
|
@ -380,7 +380,7 @@ class TypeNavigationController {
|
|||
.forEach(e => EventHelper.stop(e, true))
|
||||
.map(event => event.browserEvent.key)
|
||||
.event;
|
||||
const onClear = Event.debounce(onChar, () => null, 800, undefined, undefined, this.enabledDisposables);
|
||||
const onClear = Event.debounce(onChar, () => null, 800, undefined, undefined, undefined, this.enabledDisposables);
|
||||
const onInput = Event.reduce(Event.any(onChar, onClear), (r, i) => i === null ? null : ((r || '') + i), undefined, this.enabledDisposables);
|
||||
onInput(this.onInput, this, this.enabledDisposables);
|
||||
onClear(this.onClear, this, this.enabledDisposables);
|
||||
|
|
@ -989,6 +989,7 @@ export class List {
|
|||
get onPointer() { return this.mouseController.onPointer; }
|
||||
get onMouseDown() { return this.view.onMouseDown; }
|
||||
get onMouseOver() { return this.view.onMouseOver; }
|
||||
get onMouseOut() { return this.view.onMouseOut; }
|
||||
get onTouchStart() { return this.view.onTouchStart; }
|
||||
get onTap() { return this.view.onTap; }
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
background:rgba(0,0,0,0);
|
||||
|
||||
transition: opacity 100ms linear;
|
||||
/* In front of peek view */
|
||||
z-index: 11;
|
||||
}
|
||||
.monaco-scrollable-element > .invisible {
|
||||
opacity: 0;
|
||||
|
|
|
|||
3
node_modules/monaco-editor-core/esm/vs/base/common/async.js
generated
vendored
3
node_modules/monaco-editor-core/esm/vs/base/common/async.js
generated
vendored
|
|
@ -255,6 +255,9 @@ export class ThrottledDelayer {
|
|||
trigger(promiseFactory, delay) {
|
||||
return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay);
|
||||
}
|
||||
cancel() {
|
||||
this.delayer.cancel();
|
||||
}
|
||||
dispose() {
|
||||
this.delayer.dispose();
|
||||
}
|
||||
|
|
|
|||
9
node_modules/monaco-editor-core/esm/vs/base/common/color.js
generated
vendored
9
node_modules/monaco-editor-core/esm/vs/base/common/color.js
generated
vendored
|
|
@ -278,6 +278,15 @@ class Color {
|
|||
opposite() {
|
||||
return new Color(new RGBA(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));
|
||||
}
|
||||
makeOpaque(opaqueBackground) {
|
||||
if (this.isOpaque() || opaqueBackground.rgba.a !== 1) {
|
||||
// only allow to blend onto a non-opaque color onto a opaque color
|
||||
return this;
|
||||
}
|
||||
const { r, g, b, a } = this.rgba;
|
||||
// https://stackoverflow.com/questions/12228548/finding-equivalent-color-with-opacity
|
||||
return new Color(new RGBA(opaqueBackground.rgba.r - a * (opaqueBackground.rgba.r - r), opaqueBackground.rgba.g - a * (opaqueBackground.rgba.g - g), opaqueBackground.rgba.b - a * (opaqueBackground.rgba.b - b), 1));
|
||||
}
|
||||
toString() {
|
||||
if (!this._toString) {
|
||||
this._toString = Color.Format.CSS.format(this);
|
||||
|
|
|
|||
21
node_modules/monaco-editor-core/esm/vs/base/common/event.js
generated
vendored
21
node_modules/monaco-editor-core/esm/vs/base/common/event.js
generated
vendored
|
|
@ -47,7 +47,7 @@ export var Event;
|
|||
* @param disposable A disposable store to add the new EventEmitter to.
|
||||
*/
|
||||
function defer(event, disposable) {
|
||||
return debounce(event, () => void 0, 0, undefined, undefined, disposable);
|
||||
return debounce(event, () => void 0, 0, undefined, true, undefined, disposable);
|
||||
}
|
||||
Event.defer = defer;
|
||||
/**
|
||||
|
|
@ -149,11 +149,12 @@ export var Event;
|
|||
disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter);
|
||||
return emitter.event;
|
||||
}
|
||||
function debounce(event, merge, delay = 100, leading = false, leakWarningThreshold, disposable) {
|
||||
function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) {
|
||||
let subscription;
|
||||
let output = undefined;
|
||||
let handle = undefined;
|
||||
let numDebouncedCalls = 0;
|
||||
let doFire;
|
||||
const options = {
|
||||
leakWarningThreshold,
|
||||
onWillAddFirstListener() {
|
||||
|
|
@ -164,7 +165,7 @@ export var Event;
|
|||
emitter.fire(output);
|
||||
output = undefined;
|
||||
}
|
||||
const doFire = () => {
|
||||
doFire = () => {
|
||||
const _output = output;
|
||||
output = undefined;
|
||||
handle = undefined;
|
||||
|
|
@ -185,7 +186,13 @@ export var Event;
|
|||
}
|
||||
});
|
||||
},
|
||||
onWillRemoveListener() {
|
||||
if (flushOnListenerRemove && numDebouncedCalls > 0) {
|
||||
doFire === null || doFire === void 0 ? void 0 : doFire();
|
||||
}
|
||||
},
|
||||
onDidRemoveLastListener() {
|
||||
doFire = undefined;
|
||||
subscription.dispose();
|
||||
}
|
||||
};
|
||||
|
|
@ -211,7 +218,7 @@ export var Event;
|
|||
}
|
||||
last.push(e);
|
||||
return last;
|
||||
}, delay, undefined, undefined, disposable);
|
||||
}, delay, undefined, true, undefined, disposable);
|
||||
}
|
||||
Event.accumulate = accumulate;
|
||||
/**
|
||||
|
|
@ -319,8 +326,8 @@ export var Event;
|
|||
latch() {
|
||||
return new ChainableEvent(latch(this.event, undefined, this.disposables));
|
||||
}
|
||||
debounce(merge, delay = 100, leading = false, leakWarningThreshold) {
|
||||
return new ChainableEvent(debounce(this.event, merge, delay, leading, leakWarningThreshold, this.disposables));
|
||||
debounce(merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold) {
|
||||
return new ChainableEvent(debounce(this.event, merge, delay, leading, flushOnListenerRemove, leakWarningThreshold, this.disposables));
|
||||
}
|
||||
on(listener, thisArgs, disposables) {
|
||||
return this.event(listener, thisArgs, disposables);
|
||||
|
|
@ -613,8 +620,10 @@ export class Emitter {
|
|||
this._options.onDidAddListener(this, callback, thisArgs);
|
||||
}
|
||||
const result = listener.subscription.set(() => {
|
||||
var _a, _b;
|
||||
removeMonitor === null || removeMonitor === void 0 ? void 0 : removeMonitor();
|
||||
if (!this._disposed) {
|
||||
(_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.onWillRemoveListener) === null || _b === void 0 ? void 0 : _b.call(_a, this);
|
||||
removeListener();
|
||||
if (this._options && this._options.onDidRemoveLastListener) {
|
||||
const hasListeners = (this._listeners && !this._listeners.isEmpty());
|
||||
|
|
|
|||
45
node_modules/monaco-editor-core/esm/vs/base/common/linkedText.js
generated
vendored
Normal file
45
node_modules/monaco-editor-core/esm/vs/base/common/linkedText.js
generated
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
import { memoize } from './decorators.js';
|
||||
export class LinkedText {
|
||||
constructor(nodes) {
|
||||
this.nodes = nodes;
|
||||
}
|
||||
toString() {
|
||||
return this.nodes.map(node => typeof node === 'string' ? node : node.label).join('');
|
||||
}
|
||||
}
|
||||
__decorate([
|
||||
memoize
|
||||
], LinkedText.prototype, "toString", null);
|
||||
const LINK_REGEX = /\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;
|
||||
export function parseLinkedText(text) {
|
||||
const result = [];
|
||||
let index = 0;
|
||||
let match;
|
||||
while (match = LINK_REGEX.exec(text)) {
|
||||
if (match.index - index > 0) {
|
||||
result.push(text.substring(index, match.index));
|
||||
}
|
||||
const [, label, href, , title] = match;
|
||||
if (title) {
|
||||
result.push({ label, href, title });
|
||||
}
|
||||
else {
|
||||
result.push({ label, href });
|
||||
}
|
||||
index = match.index + match[0].length;
|
||||
}
|
||||
if (index < text.length) {
|
||||
result.push(text.substring(index));
|
||||
}
|
||||
return new LinkedText(result);
|
||||
}
|
||||
4
node_modules/monaco-editor-core/esm/vs/base/common/platform.js
generated
vendored
4
node_modules/monaco-editor-core/esm/vs/base/common/platform.js
generated
vendored
|
|
@ -101,8 +101,8 @@ export const isIOS = _isIOS;
|
|||
export const isMobile = _isMobile;
|
||||
export const userAgent = _userAgent;
|
||||
/**
|
||||
* The language used for the user interface. The format of
|
||||
* the string is all lower case (e.g. zh-tw for Traditional
|
||||
* The language used for the user interface. or the locale specified by --locale
|
||||
* The format of the string is all lower case (e.g. zh-tw for Traditional
|
||||
* Chinese)
|
||||
*/
|
||||
export const language = _language;
|
||||
|
|
|
|||
1429
node_modules/monaco-editor-core/esm/vs/base/parts/quickinput/browser/quickInput.js
generated
vendored
1429
node_modules/monaco-editor-core/esm/vs/base/parts/quickinput/browser/quickInput.js
generated
vendored
File diff suppressed because it is too large
Load diff
26
node_modules/monaco-editor-core/esm/vs/base/parts/quickinput/browser/quickInputUtils.js
generated
vendored
26
node_modules/monaco-editor-core/esm/vs/base/parts/quickinput/browser/quickInputUtils.js
generated
vendored
|
|
@ -1,26 +0,0 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import * as dom from '../../../browser/dom.js';
|
||||
import { IdGenerator } from '../../../common/idGenerator.js';
|
||||
import './media/quickInput.css';
|
||||
const iconPathToClass = {};
|
||||
const iconClassGenerator = new IdGenerator('quick-input-button-icon-');
|
||||
export function getIconClass(iconPath) {
|
||||
if (!iconPath) {
|
||||
return undefined;
|
||||
}
|
||||
let iconClass;
|
||||
const key = iconPath.dark.toString();
|
||||
if (iconPathToClass[key]) {
|
||||
iconClass = iconPathToClass[key];
|
||||
}
|
||||
else {
|
||||
iconClass = iconClassGenerator.nextId();
|
||||
dom.createCSSRule(`.${iconClass}, .hc-light .${iconClass}`, `background-image: ${dom.asCSSUrl(iconPath.light || iconPath.dark)}`);
|
||||
dom.createCSSRule(`.vs-dark .${iconClass}, .hc-black .${iconClass}`, `background-image: ${dom.asCSSUrl(iconPath.dark)}`);
|
||||
iconPathToClass[key] = iconClass;
|
||||
}
|
||||
return iconClass;
|
||||
}
|
||||
34
node_modules/monaco-editor-core/esm/vs/base/parts/quickinput/common/quickInput.js
generated
vendored
34
node_modules/monaco-editor-core/esm/vs/base/parts/quickinput/common/quickInput.js
generated
vendored
|
|
@ -1,34 +0,0 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
export const NO_KEY_MODS = { ctrlCmd: false, alt: false };
|
||||
export var QuickInputHideReason;
|
||||
(function (QuickInputHideReason) {
|
||||
/**
|
||||
* Focus moved away from the quick input.
|
||||
*/
|
||||
QuickInputHideReason[QuickInputHideReason["Blur"] = 1] = "Blur";
|
||||
/**
|
||||
* An explicit user gesture, e.g. pressing Escape key.
|
||||
*/
|
||||
QuickInputHideReason[QuickInputHideReason["Gesture"] = 2] = "Gesture";
|
||||
/**
|
||||
* Anything else.
|
||||
*/
|
||||
QuickInputHideReason[QuickInputHideReason["Other"] = 3] = "Other";
|
||||
})(QuickInputHideReason || (QuickInputHideReason = {}));
|
||||
export var ItemActivation;
|
||||
(function (ItemActivation) {
|
||||
ItemActivation[ItemActivation["NONE"] = 0] = "NONE";
|
||||
ItemActivation[ItemActivation["FIRST"] = 1] = "FIRST";
|
||||
ItemActivation[ItemActivation["SECOND"] = 2] = "SECOND";
|
||||
ItemActivation[ItemActivation["LAST"] = 3] = "LAST";
|
||||
})(ItemActivation || (ItemActivation = {}));
|
||||
export class QuickPickItemScorerAccessor {
|
||||
constructor(options) {
|
||||
this.options = options;
|
||||
}
|
||||
}
|
||||
export const quickPickItemScorerAccessor = new QuickPickItemScorerAccessor();
|
||||
//#endregion
|
||||
2
node_modules/monaco-editor-core/esm/vs/editor/browser/config/editorConfiguration.js
generated
vendored
2
node_modules/monaco-editor-core/esm/vs/editor/browser/config/editorConfiguration.js
generated
vendored
|
|
@ -79,7 +79,7 @@ let EditorConfiguration = class EditorConfiguration extends Disposable {
|
|||
lineNumbersDigitCount: this._lineNumbersDigitCount,
|
||||
emptySelectionClipboard: partialEnv.emptySelectionClipboard,
|
||||
pixelRatio: partialEnv.pixelRatio,
|
||||
tabFocusMode: TabFocus.getTabFocusMode(),
|
||||
tabFocusMode: TabFocus.getTabFocusMode("editorFocus" /* TabFocusContext.Editor */),
|
||||
accessibilitySupport: partialEnv.accessibilitySupport
|
||||
};
|
||||
return EditorOptionsUtil.computeOptions(this._validatedOptions, env);
|
||||
|
|
|
|||
19
node_modules/monaco-editor-core/esm/vs/editor/browser/config/tabFocus.js
generated
vendored
19
node_modules/monaco-editor-core/esm/vs/editor/browser/config/tabFocus.js
generated
vendored
|
|
@ -5,19 +5,22 @@
|
|||
import { Emitter } from '../../../base/common/event.js';
|
||||
class TabFocusImpl {
|
||||
constructor() {
|
||||
this._tabFocus = false;
|
||||
this._tabFocusTerminal = false;
|
||||
this._tabFocusEditor = false;
|
||||
this._onDidChangeTabFocus = new Emitter();
|
||||
this.onDidChangeTabFocus = this._onDidChangeTabFocus.event;
|
||||
}
|
||||
getTabFocusMode() {
|
||||
return this._tabFocus;
|
||||
getTabFocusMode(context) {
|
||||
return context === "terminalFocus" /* TabFocusContext.Terminal */ ? this._tabFocusTerminal : this._tabFocusEditor;
|
||||
}
|
||||
setTabFocusMode(tabFocusMode) {
|
||||
if (this._tabFocus === tabFocusMode) {
|
||||
return;
|
||||
setTabFocusMode(tabFocusMode, context) {
|
||||
if (context === "terminalFocus" /* TabFocusContext.Terminal */) {
|
||||
this._tabFocusTerminal = tabFocusMode;
|
||||
}
|
||||
this._tabFocus = tabFocusMode;
|
||||
this._onDidChangeTabFocus.fire(this._tabFocus);
|
||||
else {
|
||||
this._tabFocusEditor = tabFocusMode;
|
||||
}
|
||||
this._onDidChangeTabFocus.fire();
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
|
|
|||
4
node_modules/monaco-editor-core/esm/vs/editor/browser/editorExtensions.js
generated
vendored
4
node_modules/monaco-editor-core/esm/vs/editor/browser/editorExtensions.js
generated
vendored
|
|
@ -312,6 +312,10 @@ export function registerMultiEditorAction(action) {
|
|||
export function registerInstantiatedEditorAction(editorAction) {
|
||||
EditorContributionRegistry.INSTANCE.registerEditorAction(editorAction);
|
||||
}
|
||||
/**
|
||||
* Registers an editor contribution. Editor contributions have a lifecycle which is bound
|
||||
* to a specific code editor instance.
|
||||
*/
|
||||
export function registerEditorContribution(id, ctor, instantiation) {
|
||||
EditorContributionRegistry.INSTANCE.registerEditorContribution(id, ctor, instantiation);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,10 +24,12 @@ let AbstractCodeEditorService = class AbstractCodeEditorService extends Disposab
|
|||
constructor(_themeService) {
|
||||
super();
|
||||
this._themeService = _themeService;
|
||||
this._onWillCreateCodeEditor = this._register(new Emitter());
|
||||
this._onCodeEditorAdd = this._register(new Emitter());
|
||||
this.onCodeEditorAdd = this._onCodeEditorAdd.event;
|
||||
this._onCodeEditorRemove = this._register(new Emitter());
|
||||
this.onCodeEditorRemove = this._onCodeEditorRemove.event;
|
||||
this._onWillCreateDiffEditor = this._register(new Emitter());
|
||||
this._onDiffEditorAdd = this._register(new Emitter());
|
||||
this.onDiffEditorAdd = this._onDiffEditorAdd.event;
|
||||
this._onDiffEditorRemove = this._register(new Emitter());
|
||||
|
|
@ -39,6 +41,9 @@ let AbstractCodeEditorService = class AbstractCodeEditorService extends Disposab
|
|||
this._diffEditors = Object.create(null);
|
||||
this._globalStyleSheet = null;
|
||||
}
|
||||
willCreateCodeEditor() {
|
||||
this._onWillCreateCodeEditor.fire();
|
||||
}
|
||||
addCodeEditor(editor) {
|
||||
this._codeEditors[editor.getId()] = editor;
|
||||
this._onCodeEditorAdd.fire(editor);
|
||||
|
|
@ -51,6 +56,9 @@ let AbstractCodeEditorService = class AbstractCodeEditorService extends Disposab
|
|||
listCodeEditors() {
|
||||
return Object.keys(this._codeEditors).map(id => this._codeEditors[id]);
|
||||
}
|
||||
willCreateDiffEditor() {
|
||||
this._onWillCreateDiffEditor.fire();
|
||||
}
|
||||
addDiffEditor(editor) {
|
||||
this._diffEditors[editor.getId()] = editor;
|
||||
this._onDiffEditorAdd.fire(editor);
|
||||
|
|
|
|||
41
node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lines/domReadingContext.js
generated
vendored
Normal file
41
node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lines/domReadingContext.js
generated
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
export class DomReadingContext {
|
||||
get didDomLayout() {
|
||||
return this._didDomLayout;
|
||||
}
|
||||
readClientRect() {
|
||||
if (!this._clientRectRead) {
|
||||
this._clientRectRead = true;
|
||||
const rect = this._domNode.getBoundingClientRect();
|
||||
this.markDidDomLayout();
|
||||
this._clientRectDeltaLeft = rect.left;
|
||||
this._clientRectScale = rect.width / this._domNode.offsetWidth;
|
||||
}
|
||||
}
|
||||
get clientRectDeltaLeft() {
|
||||
if (!this._clientRectRead) {
|
||||
this.readClientRect();
|
||||
}
|
||||
return this._clientRectDeltaLeft;
|
||||
}
|
||||
get clientRectScale() {
|
||||
if (!this._clientRectRead) {
|
||||
this.readClientRect();
|
||||
}
|
||||
return this._clientRectScale;
|
||||
}
|
||||
constructor(_domNode, endNode) {
|
||||
this._domNode = _domNode;
|
||||
this.endNode = endNode;
|
||||
this._didDomLayout = false;
|
||||
this._clientRectDeltaLeft = 0;
|
||||
this._clientRectScale = 1;
|
||||
this._clientRectRead = false;
|
||||
}
|
||||
markDidDomLayout() {
|
||||
this._didDomLayout = true;
|
||||
}
|
||||
}
|
||||
10
node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lines/rangeUtil.js
generated
vendored
10
node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lines/rangeUtil.js
generated
vendored
|
|
@ -65,7 +65,7 @@ export class RangeUtil {
|
|||
}
|
||||
return this._mergeAdjacentRanges(result);
|
||||
}
|
||||
static readHorizontalRanges(domNode, startChildIndex, startOffset, endChildIndex, endOffset, clientRectDeltaLeft, clientRectScale, endNode) {
|
||||
static readHorizontalRanges(domNode, startChildIndex, startOffset, endChildIndex, endOffset, context) {
|
||||
// Panic check
|
||||
const min = 0;
|
||||
const max = domNode.children.length - 1;
|
||||
|
|
@ -78,7 +78,8 @@ export class RangeUtil {
|
|||
// We must find the position at the beginning of a <span>
|
||||
// To cover cases of empty <span>s, avoid using a range and use the <span>'s bounding box
|
||||
const clientRects = domNode.children[startChildIndex].getClientRects();
|
||||
return this._createHorizontalRangesFromClientRects(clientRects, clientRectDeltaLeft, clientRectScale);
|
||||
context.markDidDomLayout();
|
||||
return this._createHorizontalRangesFromClientRects(clientRects, context.clientRectDeltaLeft, context.clientRectScale);
|
||||
}
|
||||
// If crossing over to a span only to select offset 0, then use the previous span's maximum offset
|
||||
// Chrome is buggy and doesn't handle 0 offsets well sometimes.
|
||||
|
|
@ -106,7 +107,8 @@ export class RangeUtil {
|
|||
}
|
||||
startOffset = Math.min(startElement.textContent.length, Math.max(0, startOffset));
|
||||
endOffset = Math.min(endElement.textContent.length, Math.max(0, endOffset));
|
||||
const clientRects = this._readClientRects(startElement, startOffset, endElement, endOffset, endNode);
|
||||
return this._createHorizontalRangesFromClientRects(clientRects, clientRectDeltaLeft, clientRectScale);
|
||||
const clientRects = this._readClientRects(startElement, startOffset, endElement, endOffset, context.endNode);
|
||||
context.markDidDomLayout();
|
||||
return this._createHorizontalRangesFromClientRects(clientRects, context.clientRectDeltaLeft, context.clientRectScale);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
60
node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lines/viewLine.js
generated
vendored
60
node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lines/viewLine.js
generated
vendored
|
|
@ -33,35 +33,6 @@ const canUseFastRenderedViewLine = (function () {
|
|||
return true;
|
||||
})();
|
||||
let monospaceAssumptionsAreValid = true;
|
||||
export class DomReadingContext {
|
||||
readClientRect() {
|
||||
if (!this._clientRectRead) {
|
||||
this._clientRectRead = true;
|
||||
const rect = this._domNode.getBoundingClientRect();
|
||||
this._clientRectDeltaLeft = rect.left;
|
||||
this._clientRectScale = rect.width / this._domNode.offsetWidth;
|
||||
}
|
||||
}
|
||||
get clientRectDeltaLeft() {
|
||||
if (!this._clientRectRead) {
|
||||
this.readClientRect();
|
||||
}
|
||||
return this._clientRectDeltaLeft;
|
||||
}
|
||||
get clientRectScale() {
|
||||
if (!this._clientRectRead) {
|
||||
this.readClientRect();
|
||||
}
|
||||
return this._clientRectScale;
|
||||
}
|
||||
constructor(domNode, endNode) {
|
||||
this._domNode = domNode;
|
||||
this._clientRectDeltaLeft = 0;
|
||||
this._clientRectScale = 1;
|
||||
this._clientRectRead = false;
|
||||
this.endNode = endNode;
|
||||
}
|
||||
}
|
||||
export class ViewLineOptions {
|
||||
constructor(config, themeType) {
|
||||
this.themeType = themeType;
|
||||
|
|
@ -205,11 +176,11 @@ class ViewLine {
|
|||
}
|
||||
}
|
||||
// --- end IVisibleLineData
|
||||
getWidth() {
|
||||
getWidth(context) {
|
||||
if (!this._renderedViewLine) {
|
||||
return 0;
|
||||
}
|
||||
return this._renderedViewLine.getWidth();
|
||||
return this._renderedViewLine.getWidth(context);
|
||||
}
|
||||
getWidthIsFast() {
|
||||
if (!this._renderedViewLine) {
|
||||
|
|
@ -246,7 +217,7 @@ class ViewLine {
|
|||
const stopRenderingLineAfter = this._renderedViewLine.input.stopRenderingLineAfter;
|
||||
if (stopRenderingLineAfter !== -1 && startColumn > stopRenderingLineAfter + 1 && endColumn > stopRenderingLineAfter + 1) {
|
||||
// This range is obviously not visible
|
||||
return new VisibleRanges(true, [new FloatHorizontalRange(this.getWidth(), 0)]);
|
||||
return new VisibleRanges(true, [new FloatHorizontalRange(this.getWidth(context), 0)]);
|
||||
}
|
||||
if (stopRenderingLineAfter !== -1 && startColumn > stopRenderingLineAfter + 1) {
|
||||
startColumn = stopRenderingLineAfter + 1;
|
||||
|
|
@ -290,25 +261,26 @@ class FastRenderedViewLine {
|
|||
this._characterMapping = characterMapping;
|
||||
this._charWidth = renderLineInput.spaceWidth;
|
||||
}
|
||||
getWidth() {
|
||||
getWidth(context) {
|
||||
if (!this.domNode || this.input.lineContent.length < 300 /* Constants.MaxMonospaceDistance */) {
|
||||
const horizontalOffset = this._characterMapping.getHorizontalOffset(this._characterMapping.length);
|
||||
return Math.round(this._charWidth * horizontalOffset);
|
||||
}
|
||||
if (this._cachedWidth === -1) {
|
||||
this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth;
|
||||
context === null || context === void 0 ? void 0 : context.markDidDomLayout();
|
||||
}
|
||||
return this._cachedWidth;
|
||||
}
|
||||
getWidthIsFast() {
|
||||
return (this.input.lineContent.length < 300 /* Constants.MaxMonospaceDistance */);
|
||||
return (this.input.lineContent.length < 300 /* Constants.MaxMonospaceDistance */) || this._cachedWidth !== -1;
|
||||
}
|
||||
monospaceAssumptionsAreValid() {
|
||||
if (!this.domNode) {
|
||||
return monospaceAssumptionsAreValid;
|
||||
}
|
||||
if (this.input.lineContent.length < 300 /* Constants.MaxMonospaceDistance */) {
|
||||
const expectedWidth = this.getWidth();
|
||||
const expectedWidth = this.getWidth(null);
|
||||
const actualWidth = this.domNode.domNode.firstChild.offsetWidth;
|
||||
if (Math.abs(expectedWidth - actualWidth) >= 2) {
|
||||
// more than 2px off
|
||||
|
|
@ -358,7 +330,7 @@ class FastRenderedViewLine {
|
|||
return -1;
|
||||
}
|
||||
const domPosition = this._characterMapping.getDomPosition(column);
|
||||
const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode), domPosition.partIndex, domPosition.charIndex, domPosition.partIndex, domPosition.charIndex, context.clientRectDeltaLeft, context.clientRectScale, context.endNode);
|
||||
const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode), domPosition.partIndex, domPosition.charIndex, domPosition.partIndex, domPosition.charIndex, context);
|
||||
if (!r || r.length === 0) {
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -400,12 +372,13 @@ class RenderedViewLine {
|
|||
/**
|
||||
* Width of the line in pixels
|
||||
*/
|
||||
getWidth() {
|
||||
getWidth(context) {
|
||||
if (!this.domNode) {
|
||||
return 0;
|
||||
}
|
||||
if (this._cachedWidth === -1) {
|
||||
this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth;
|
||||
context === null || context === void 0 ? void 0 : context.markDidDomLayout();
|
||||
}
|
||||
return this._cachedWidth;
|
||||
}
|
||||
|
|
@ -463,11 +436,12 @@ class RenderedViewLine {
|
|||
}
|
||||
if (this._containsForeignElements === 1 /* ForeignElementType.Before */) {
|
||||
// We have foreign elements before the (empty) line
|
||||
return this.getWidth();
|
||||
return this.getWidth(context);
|
||||
}
|
||||
// We have foreign elements before & after the (empty) line
|
||||
const readingTarget = this._getReadingTarget(domNode);
|
||||
if (readingTarget.firstChild) {
|
||||
context.markDidDomLayout();
|
||||
return readingTarget.firstChild.offsetWidth;
|
||||
}
|
||||
else {
|
||||
|
|
@ -489,7 +463,7 @@ class RenderedViewLine {
|
|||
_actualReadPixelOffset(domNode, lineNumber, column, context) {
|
||||
if (this._characterMapping.length === 0) {
|
||||
// This line has no content
|
||||
const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), 0, 0, 0, 0, context.clientRectDeltaLeft, context.clientRectScale, context.endNode);
|
||||
const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), 0, 0, 0, 0, context);
|
||||
if (!r || r.length === 0) {
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -497,10 +471,10 @@ class RenderedViewLine {
|
|||
}
|
||||
if (column === this._characterMapping.length && this._isWhitespaceOnly && this._containsForeignElements === 0 /* ForeignElementType.None */) {
|
||||
// This branch helps in the case of whitespace only lines which have a width set
|
||||
return this.getWidth();
|
||||
return this.getWidth(context);
|
||||
}
|
||||
const domPosition = this._characterMapping.getDomPosition(column);
|
||||
const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), domPosition.partIndex, domPosition.charIndex, domPosition.partIndex, domPosition.charIndex, context.clientRectDeltaLeft, context.clientRectScale, context.endNode);
|
||||
const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), domPosition.partIndex, domPosition.charIndex, domPosition.partIndex, domPosition.charIndex, context);
|
||||
if (!r || r.length === 0) {
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -517,11 +491,11 @@ class RenderedViewLine {
|
|||
_readRawVisibleRangesForRange(domNode, startColumn, endColumn, context) {
|
||||
if (startColumn === 1 && endColumn === this._characterMapping.length) {
|
||||
// This branch helps IE with bidi text & gives a performance boost to other browsers when reading visible ranges for an entire line
|
||||
return [new FloatHorizontalRange(0, this.getWidth())];
|
||||
return [new FloatHorizontalRange(0, this.getWidth(context))];
|
||||
}
|
||||
const startDomPosition = this._characterMapping.getDomPosition(startColumn);
|
||||
const endDomPosition = this._characterMapping.getDomPosition(endColumn);
|
||||
return RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), startDomPosition.partIndex, startDomPosition.charIndex, endDomPosition.partIndex, endDomPosition.charIndex, context.clientRectDeltaLeft, context.clientRectScale, context.endNode);
|
||||
return RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), startDomPosition.partIndex, startDomPosition.charIndex, endDomPosition.partIndex, endDomPosition.charIndex, context);
|
||||
}
|
||||
/**
|
||||
* Returns the column for the text found at a specific offset inside a rendered dom node
|
||||
|
|
|
|||
37
node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lines/viewLines.js
generated
vendored
37
node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lines/viewLines.js
generated
vendored
|
|
@ -8,11 +8,12 @@ import { RunOnceScheduler } from '../../../../base/common/async.js';
|
|||
import { applyFontInfo } from '../../config/domFontInfo.js';
|
||||
import { VisibleLinesCollection } from '../../view/viewLayer.js';
|
||||
import { PartFingerprints, ViewPart } from '../../view/viewPart.js';
|
||||
import { DomReadingContext, ViewLine, ViewLineOptions } from './viewLine.js';
|
||||
import { ViewLine, ViewLineOptions } from './viewLine.js';
|
||||
import { Position } from '../../../common/core/position.js';
|
||||
import { Range } from '../../../common/core/range.js';
|
||||
import { LineVisibleRanges, HorizontalPosition, HorizontalRange } from '../../view/renderingContext.js';
|
||||
import { MOUSE_CURSOR_TEXT_CSS_CLASS_NAME } from '../../../../base/browser/ui/mouseCursor/mouseCursor.js';
|
||||
import { DomReadingContext } from './domReadingContext.js';
|
||||
class LastRenderedData {
|
||||
constructor() {
|
||||
this._currentVisibleRange = new Range(1, 1, 1, 1);
|
||||
|
|
@ -304,7 +305,10 @@ class ViewLines extends ViewPart {
|
|||
// Couldn't find line
|
||||
return -1;
|
||||
}
|
||||
return this._visibleLines.getVisibleLine(lineNumber).getWidth();
|
||||
const context = new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot);
|
||||
const result = this._visibleLines.getVisibleLine(lineNumber).getWidth(context);
|
||||
this._updateLineWidthsSlowIfDomDidLayout(context);
|
||||
return result;
|
||||
}
|
||||
linesVisibleRangesForRange(_range, includeNewLines) {
|
||||
if (this.shouldRender()) {
|
||||
|
|
@ -345,6 +349,7 @@ class ViewLines extends ViewPart {
|
|||
}
|
||||
visibleRanges[visibleRangesLen++] = new LineVisibleRanges(visibleRangesForLine.outsideRenderedLine, lineNumber, HorizontalRange.from(visibleRangesForLine.ranges));
|
||||
}
|
||||
this._updateLineWidthsSlowIfDomDidLayout(domReadingContext);
|
||||
if (visibleRangesLen === 0) {
|
||||
return null;
|
||||
}
|
||||
|
|
@ -359,7 +364,10 @@ class ViewLines extends ViewPart {
|
|||
if (lineNumber < this._visibleLines.getStartLineNumber() || lineNumber > this._visibleLines.getEndLineNumber()) {
|
||||
return null;
|
||||
}
|
||||
return this._visibleLines.getVisibleLine(lineNumber).getVisibleRangesForRange(lineNumber, startColumn, endColumn, new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot));
|
||||
const domReadingContext = new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot);
|
||||
const result = this._visibleLines.getVisibleLine(lineNumber).getVisibleRangesForRange(lineNumber, startColumn, endColumn, domReadingContext);
|
||||
this._updateLineWidthsSlowIfDomDidLayout(domReadingContext);
|
||||
return result;
|
||||
}
|
||||
visibleRangeForPosition(position) {
|
||||
const visibleRanges = this._visibleRangesForLineRange(position.lineNumber, position.column, position.column);
|
||||
|
|
@ -379,6 +387,22 @@ class ViewLines extends ViewPart {
|
|||
_updateLineWidthsSlow() {
|
||||
this._updateLineWidths(false);
|
||||
}
|
||||
/**
|
||||
* Update the line widths using DOM layout information after someone else
|
||||
* has caused a synchronous layout.
|
||||
*/
|
||||
_updateLineWidthsSlowIfDomDidLayout(domReadingContext) {
|
||||
if (!domReadingContext.didDomLayout) {
|
||||
// only proceed if we just did a layout
|
||||
return;
|
||||
}
|
||||
if (this._asyncUpdateLineWidths.isScheduled()) {
|
||||
// reading widths is not scheduled => widths are up-to-date
|
||||
return;
|
||||
}
|
||||
this._asyncUpdateLineWidths.cancel();
|
||||
this._updateLineWidthsSlow();
|
||||
}
|
||||
_updateLineWidths(fast) {
|
||||
const rendStartLineNumber = this._visibleLines.getStartLineNumber();
|
||||
const rendEndLineNumber = this._visibleLines.getEndLineNumber();
|
||||
|
|
@ -391,7 +415,7 @@ class ViewLines extends ViewPart {
|
|||
allWidthsComputed = false;
|
||||
continue;
|
||||
}
|
||||
localMaxLineWidth = Math.max(localMaxLineWidth, visibleLine.getWidth());
|
||||
localMaxLineWidth = Math.max(localMaxLineWidth, visibleLine.getWidth(null));
|
||||
}
|
||||
if (allWidthsComputed && rendStartLineNumber === 1 && rendEndLineNumber === this._context.viewModel.getLineCount()) {
|
||||
// we know the max line width for all the lines
|
||||
|
|
@ -411,7 +435,7 @@ class ViewLines extends ViewPart {
|
|||
for (let lineNumber = rendStartLineNumber; lineNumber <= rendEndLineNumber; lineNumber++) {
|
||||
const visibleLine = this._visibleLines.getVisibleLine(lineNumber);
|
||||
if (visibleLine.needsMonospaceFontCheck()) {
|
||||
const lineWidth = visibleLine.getWidth();
|
||||
const lineWidth = visibleLine.getWidth(null);
|
||||
if (lineWidth > longestWidth) {
|
||||
longestWidth = lineWidth;
|
||||
longestLineNumber = lineNumber;
|
||||
|
|
@ -469,6 +493,9 @@ class ViewLines extends ViewPart {
|
|||
// Computing the width of some lines would be slow => delay it
|
||||
this._asyncUpdateLineWidths.schedule();
|
||||
}
|
||||
else {
|
||||
this._asyncUpdateLineWidths.cancel();
|
||||
}
|
||||
if (platform.isLinux && !this._asyncCheckMonospaceFontAssumptions.isScheduled()) {
|
||||
const rendStartLineNumber = this._visibleLines.getStartLineNumber();
|
||||
const rendEndLineNumber = this._visibleLines.getEndLineNumber();
|
||||
|
|
|
|||
3
node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditorWidget.js
generated
vendored
3
node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditorWidget.js
generated
vendored
|
|
@ -60,6 +60,7 @@ import { ILanguageConfigurationService } from '../../common/languages/languageCo
|
|||
import { applyFontInfo } from '../config/domFontInfo.js';
|
||||
import { ILanguageFeaturesService } from '../../common/services/languageFeatures.js';
|
||||
import { CodeEditorContributions } from './codeEditorContributions.js';
|
||||
import { TabFocus } from '../config/tabFocus.js';
|
||||
let EDITOR_ID = 0;
|
||||
class ModelData {
|
||||
constructor(model, viewModel, view, hasRealView, listenersToRemove) {
|
||||
|
|
@ -166,6 +167,7 @@ let CodeEditorWidget = class CodeEditorWidget extends Disposable {
|
|||
this._actions = new Map();
|
||||
this._bannerDomNode = null;
|
||||
this._dropIntoEditorDecorations = this.createDecorationsCollection();
|
||||
codeEditorService.willCreateCodeEditor();
|
||||
const options = Object.assign({}, _options);
|
||||
this._domElement = domElement;
|
||||
this._overflowWidgetsDomNode = options.overflowWidgetsDomNode;
|
||||
|
|
@ -1413,6 +1415,7 @@ class EditorContextKeysManager extends Disposable {
|
|||
this._register(this._editor.onDidBlurEditorText(() => this._updateFromFocus()));
|
||||
this._register(this._editor.onDidChangeModel(() => this._updateFromModel()));
|
||||
this._register(this._editor.onDidChangeConfiguration(() => this._updateFromModel()));
|
||||
this._register(TabFocus.onDidChangeTabFocus(() => this._editorTabMovesFocus.set(TabFocus.getTabFocusMode("editorFocus" /* TabFocusContext.Editor */))));
|
||||
this._updateFromConfig();
|
||||
this._updateFromSelection();
|
||||
this._updateFromFocus();
|
||||
|
|
|
|||
1
node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditorWidget.js
generated
vendored
1
node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditorWidget.js
generated
vendored
|
|
@ -138,6 +138,7 @@ let DiffEditorWidget = class DiffEditorWidget extends Disposable {
|
|||
this._onDidContentSizeChange = this._register(new Emitter());
|
||||
this._lastOriginalWarning = null;
|
||||
this._lastModifiedWarning = null;
|
||||
codeEditorService.willCreateDiffEditor();
|
||||
this._documentDiffProvider = this._register(instantiationService.createInstance(WorkerBasedDocumentDiffProvider, options));
|
||||
this._register(this._documentDiffProvider.onDidChange(e => this._beginUpdateDecorationsSoon()));
|
||||
this._codeEditorService = codeEditorService;
|
||||
|
|
|
|||
|
|
@ -90,6 +90,11 @@ const editorConfiguration = Object.assign(Object.assign({}, editorConfigurationB
|
|||
default: 20000,
|
||||
description: nls.localize('maxTokenizationLineLength', "Lines above this length will not be tokenized for performance reasons")
|
||||
},
|
||||
'editor.experimental.asyncTokenization': {
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
description: nls.localize('editor.experimental.asyncTokenization', "Controls whether the tokenization should happen asynchronously on a web worker.")
|
||||
},
|
||||
'editor.language.brackets': {
|
||||
type: ['array', 'null'],
|
||||
default: null,
|
||||
|
|
|
|||
13
node_modules/monaco-editor-core/esm/vs/editor/common/config/editorOptions.js
generated
vendored
13
node_modules/monaco-editor-core/esm/vs/editor/common/config/editorOptions.js
generated
vendored
|
|
@ -2349,17 +2349,6 @@ class SmartSelect extends BaseEditorOption {
|
|||
};
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
//#region tabFocusMode
|
||||
class EditorTabFocusMode extends ComputedEditorOption {
|
||||
constructor() {
|
||||
super(137 /* EditorOption.tabFocusMode */);
|
||||
}
|
||||
compute(env, options, _) {
|
||||
const readOnly = options.get(86 /* EditorOption.readOnly */);
|
||||
return (readOnly ? true : env.tabFocusMode);
|
||||
}
|
||||
}
|
||||
class WrappingIndentOption extends BaseEditorOption {
|
||||
constructor() {
|
||||
super(131 /* EditorOption.wrappingIndent */, 'wrappingIndent', 1 /* WrappingIndent.Same */, {
|
||||
|
|
@ -2807,7 +2796,7 @@ export const EditorOptions = {
|
|||
// Leave these at the end (because they have dependencies!)
|
||||
editorClassName: register(new EditorClassName()),
|
||||
pixelRatio: register(new EditorPixelRatio()),
|
||||
tabFocusMode: register(new EditorTabFocusMode()),
|
||||
tabFocusMode: register(new EditorBooleanOption(137 /* EditorOption.tabFocusMode */, 'tabFocusMode', false, { markdownDescription: nls.localize('tabFocusMode', "Controls whether the editor receives tabs or defers them to the workbench for navigation.") })),
|
||||
layoutInfo: register(new EditorLayoutInfoComputer()),
|
||||
wrappingInfo: register(new EditorWrappingInfoComputer()),
|
||||
wrappingIndent: register(new WrappingIndentOption()),
|
||||
|
|
|
|||
15
node_modules/monaco-editor-core/esm/vs/editor/common/editorFeatures.js
generated
vendored
Normal file
15
node_modules/monaco-editor-core/esm/vs/editor/common/editorFeatures.js
generated
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
const editorFeatures = [];
|
||||
/**
|
||||
* Registers an editor feature. Editor features will be instantiated only once, as soon as
|
||||
* the first code editor is instantiated.
|
||||
*/
|
||||
export function registerEditorFeature(ctor) {
|
||||
editorFeatures.push(ctor);
|
||||
}
|
||||
export function getEditorFeatures() {
|
||||
return editorFeatures.slice(0);
|
||||
}
|
||||
28
node_modules/monaco-editor-core/esm/vs/editor/common/languages.js
generated
vendored
28
node_modules/monaco-editor-core/esm/vs/editor/common/languages.js
generated
vendored
|
|
@ -8,10 +8,10 @@ import { Range } from './core/range.js';
|
|||
import { TokenizationRegistry as TokenizationRegistryImpl } from './tokenizationRegistry.js';
|
||||
export class Token {
|
||||
constructor(offset, type, language) {
|
||||
this._tokenBrand = undefined;
|
||||
this.offset = offset;
|
||||
this.type = type;
|
||||
this.language = language;
|
||||
this._tokenBrand = undefined;
|
||||
}
|
||||
toString() {
|
||||
return '(' + this.offset + ', ' + this.type + ')';
|
||||
|
|
@ -22,19 +22,26 @@ export class Token {
|
|||
*/
|
||||
export class TokenizationResult {
|
||||
constructor(tokens, endState) {
|
||||
this._tokenizationResultBrand = undefined;
|
||||
this.tokens = tokens;
|
||||
this.endState = endState;
|
||||
this._tokenizationResultBrand = undefined;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export class EncodedTokenizationResult {
|
||||
constructor(tokens, endState) {
|
||||
this._encodedTokenizationResultBrand = undefined;
|
||||
constructor(
|
||||
/**
|
||||
* The tokens in binary format. Each token occupies two array indices. For token i:
|
||||
* - at offset 2*i => startIndex
|
||||
* - at offset 2*i + 1 => metadata
|
||||
*
|
||||
*/
|
||||
tokens, endState) {
|
||||
this.tokens = tokens;
|
||||
this.endState = endState;
|
||||
this._encodedTokenizationResultBrand = undefined;
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
|
@ -222,6 +229,19 @@ export var SymbolKinds;
|
|||
SymbolKinds.toIcon = toIcon;
|
||||
})(SymbolKinds || (SymbolKinds = {}));
|
||||
class FoldingRangeKind {
|
||||
/**
|
||||
* Returns a {@link FoldingRangeKind} for the given value.
|
||||
*
|
||||
* @param value of the kind.
|
||||
*/
|
||||
static fromValue(value) {
|
||||
switch (value) {
|
||||
case 'comment': return FoldingRangeKind.Comment;
|
||||
case 'imports': return FoldingRangeKind.Imports;
|
||||
case 'region': return FoldingRangeKind.Region;
|
||||
}
|
||||
return new FoldingRangeKind(value);
|
||||
}
|
||||
/**
|
||||
* Creates a new {@link FoldingRangeKind}.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -91,7 +91,9 @@ function computeConfig(languageId, registry, configurationService, languageServi
|
|||
let languageConfig = registry.getLanguageConfiguration(languageId);
|
||||
if (!languageConfig) {
|
||||
if (!languageService.isRegisteredLanguageId(languageId)) {
|
||||
throw new Error(`Language id "${languageId}" is not configured nor known`);
|
||||
// this happens for the null language, which can be returned by monarch.
|
||||
// Instead of throwing an error, we just return a default config.
|
||||
return new ResolvedLanguageConfiguration(languageId, {});
|
||||
}
|
||||
languageConfig = new ResolvedLanguageConfiguration(languageId, {});
|
||||
}
|
||||
|
|
|
|||
4
node_modules/monaco-editor-core/esm/vs/editor/common/languages/linkComputer.js
generated
vendored
4
node_modules/monaco-editor-core/esm/vs/editor/common/languages/linkComputer.js
generated
vendored
|
|
@ -89,11 +89,11 @@ function getClassifier() {
|
|||
if (_classifier === null) {
|
||||
_classifier = new CharacterClassifier(0 /* CharacterClass.None */);
|
||||
// allow-any-unicode-next-line
|
||||
const FORCE_TERMINATION_CHARACTERS = ', \t<>\'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…';
|
||||
const FORCE_TERMINATION_CHARACTERS = ' \t<>\'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…';
|
||||
for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {
|
||||
_classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* CharacterClass.ForceTermination */);
|
||||
}
|
||||
const CANNOT_END_WITH_CHARACTERS = '.;:';
|
||||
const CANNOT_END_WITH_CHARACTERS = '.,;:';
|
||||
for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) {
|
||||
_classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CharacterClass.CannotEndIn */);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import { CachedFunction } from '../../../../base/common/cache.js';
|
||||
import { BugIndicatingError } from '../../../../base/common/errors.js';
|
||||
/**
|
||||
* Captures all bracket related configurations for a single language.
|
||||
* Immutable.
|
||||
|
|
@ -11,24 +10,7 @@ import { BugIndicatingError } from '../../../../base/common/errors.js';
|
|||
export class LanguageBracketsConfiguration {
|
||||
constructor(languageId, config) {
|
||||
this.languageId = languageId;
|
||||
let brackets;
|
||||
// Prefer colorized bracket pairs, as they are more accurate.
|
||||
// TODO@hediet: Deprecate `colorizedBracketPairs` and increase accuracy for brackets.
|
||||
if (config.colorizedBracketPairs) {
|
||||
brackets = filterValidBrackets(config.colorizedBracketPairs.map(b => [b[0], b[1]]));
|
||||
}
|
||||
else if (config.brackets) {
|
||||
brackets = filterValidBrackets(config.brackets
|
||||
.map((b) => [b[0], b[1]])
|
||||
// Many languages set < ... > as bracket pair, even though they also use it as comparison operator.
|
||||
// This leads to problems when colorizing this bracket, so we exclude it by default.
|
||||
// Languages can still override this by configuring `colorizedBracketPairs`
|
||||
// https://github.com/microsoft/vscode/issues/132476
|
||||
.filter((p) => !(p[0] === '<' && p[1] === '>')));
|
||||
}
|
||||
else {
|
||||
brackets = [];
|
||||
}
|
||||
const bracketPairs = config.brackets ? filterValidBrackets(config.brackets) : [];
|
||||
const openingBracketInfos = new CachedFunction((bracket) => {
|
||||
const closing = new Set();
|
||||
return {
|
||||
|
|
@ -38,17 +20,34 @@ export class LanguageBracketsConfiguration {
|
|||
});
|
||||
const closingBracketInfos = new CachedFunction((bracket) => {
|
||||
const opening = new Set();
|
||||
const openingColorized = new Set();
|
||||
return {
|
||||
info: new ClosingBracketKind(this, bracket, opening),
|
||||
info: new ClosingBracketKind(this, bracket, opening, openingColorized),
|
||||
opening,
|
||||
openingColorized,
|
||||
};
|
||||
});
|
||||
for (const [open, close] of brackets) {
|
||||
for (const [open, close] of bracketPairs) {
|
||||
const opening = openingBracketInfos.get(open);
|
||||
const closing = closingBracketInfos.get(close);
|
||||
opening.closing.add(closing.info);
|
||||
closing.opening.add(opening.info);
|
||||
}
|
||||
// Treat colorized brackets as brackets, and mark them as colorized.
|
||||
const colorizedBracketPairs = config.colorizedBracketPairs
|
||||
? filterValidBrackets(config.colorizedBracketPairs)
|
||||
// If not configured: Take all brackets except `<` ... `>`
|
||||
// Many languages set < ... > as bracket pair, even though they also use it as comparison operator.
|
||||
// This leads to problems when colorizing this bracket, so we exclude it if not explicitly configured otherwise.
|
||||
// https://github.com/microsoft/vscode/issues/132476
|
||||
: bracketPairs.filter((p) => !(p[0] === '<' && p[1] === '>'));
|
||||
for (const [open, close] of colorizedBracketPairs) {
|
||||
const opening = openingBracketInfos.get(open);
|
||||
const closing = closingBracketInfos.get(close);
|
||||
opening.closing.add(closing.info);
|
||||
closing.openingColorized.add(opening.info);
|
||||
closing.opening.add(opening.info);
|
||||
}
|
||||
this._openingBrackets = new Map([...openingBracketInfos.cachedValues].map(([k, v]) => [k, v.info]));
|
||||
this._closingBrackets = new Map([...closingBracketInfos.cachedValues].map(([k, v]) => [k, v.info]));
|
||||
}
|
||||
|
|
@ -98,25 +97,29 @@ export class ClosingBracketKind extends BracketKindBase {
|
|||
/**
|
||||
* Non empty array of all opening brackets this bracket closes.
|
||||
*/
|
||||
closedBrackets) {
|
||||
openingBrackets, openingColorizedBrackets) {
|
||||
super(config, bracketText);
|
||||
this.closedBrackets = closedBrackets;
|
||||
this.openingBrackets = openingBrackets;
|
||||
this.openingColorizedBrackets = openingColorizedBrackets;
|
||||
this.isOpeningBracket = false;
|
||||
}
|
||||
/**
|
||||
* Checks if this bracket closes the given other bracket.
|
||||
* Brackets from other language configuration can be used (they will always return false).
|
||||
* If other is a bracket with the same language id, they have to be from the same configuration.
|
||||
* If the bracket infos come from different configurations, this method will return false.
|
||||
*/
|
||||
closes(other) {
|
||||
if (other.languageId === this.languageId) {
|
||||
if (other['config'] !== this.config) {
|
||||
throw new BugIndicatingError('Brackets from different language configuration cannot be used.');
|
||||
}
|
||||
if (other['config'] !== this.config) {
|
||||
return false;
|
||||
}
|
||||
return this.closedBrackets.has(other);
|
||||
return this.openingBrackets.has(other);
|
||||
}
|
||||
getClosedBrackets() {
|
||||
return [...this.closedBrackets];
|
||||
closesColorized(other) {
|
||||
if (other['config'] !== this.config) {
|
||||
return false;
|
||||
}
|
||||
return this.openingColorizedBrackets.has(other);
|
||||
}
|
||||
getOpeningBrackets() {
|
||||
return [...this.openingBrackets];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,11 +87,11 @@ export class BracketPairsTextModelPart extends Disposable {
|
|||
this.updateBracketPairsTree();
|
||||
return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketPairsInRange(range, true)) || CallbackIterable.empty;
|
||||
}
|
||||
getBracketsInRange(range) {
|
||||
getBracketsInRange(range, onlyColorizedBrackets = false) {
|
||||
var _a;
|
||||
this.bracketsRequested = true;
|
||||
this.updateBracketPairsTree();
|
||||
return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketsInRange(range)) || CallbackIterable.empty;
|
||||
return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketsInRange(range, onlyColorizedBrackets)) || CallbackIterable.empty;
|
||||
}
|
||||
findMatchingBracketUp(_bracket, _position, maxDuration) {
|
||||
const position = this.textModel.validatePosition(_position);
|
||||
|
|
|
|||
|
|
@ -28,8 +28,7 @@ export class BracketPairsTree extends Disposable {
|
|||
this.onDidChange = this.didChangeEmitter.event;
|
||||
this.queuedTextEditsForInitialAstWithoutTokens = [];
|
||||
this.queuedTextEdits = [];
|
||||
if (textModel.tokenization.backgroundTokenizationState === 0 /* BackgroundTokenizationState.Uninitialized */) {
|
||||
// There are no token information yet
|
||||
if (!textModel.tokenization.hasTokens) {
|
||||
const brackets = this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId());
|
||||
const tokenizer = new FastTokenizer(this.textModel.getValue(), brackets);
|
||||
this.initialAstWithoutTokens = parseDocument(tokenizer, [], undefined, true);
|
||||
|
|
@ -41,7 +40,8 @@ export class BracketPairsTree extends Disposable {
|
|||
this.initialAstWithoutTokens = undefined;
|
||||
this.astWithTokens = this.parseDocumentFromTextBuffer([], undefined, false);
|
||||
}
|
||||
else if (textModel.tokenization.backgroundTokenizationState === 1 /* BackgroundTokenizationState.InProgress */) {
|
||||
else {
|
||||
// We missed some token changes already, so we cannot use the fast tokenizer + delta increments
|
||||
this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer([], undefined, true);
|
||||
this.astWithTokens = this.initialAstWithoutTokens;
|
||||
}
|
||||
|
|
@ -65,6 +65,7 @@ export class BracketPairsTree extends Disposable {
|
|||
}
|
||||
}
|
||||
handleContentChanged(change) {
|
||||
// Must be sorted in ascending order
|
||||
const edits = change.changes.map(c => {
|
||||
const range = Range.lift(c.range);
|
||||
return new TextEditInfo(positionToLength(range.getStartPosition()), positionToLength(range.getEndPosition()), lengthOfString(c.text));
|
||||
|
|
@ -103,13 +104,13 @@ export class BracketPairsTree extends Disposable {
|
|||
const result = parseDocument(tokenizer, edits, previousAstClone, immutable);
|
||||
return result;
|
||||
}
|
||||
getBracketsInRange(range) {
|
||||
getBracketsInRange(range, onlyColorizedBrackets) {
|
||||
this.flushQueue();
|
||||
const startOffset = toLength(range.startLineNumber - 1, range.startColumn - 1);
|
||||
const endOffset = toLength(range.endLineNumber - 1, range.endColumn - 1);
|
||||
return new CallbackIterable(cb => {
|
||||
const node = this.initialAstWithoutTokens || this.astWithTokens;
|
||||
collectBrackets(node, lengthZero, node.length, startOffset, endOffset, cb, 0, 0, new Map());
|
||||
collectBrackets(node, lengthZero, node.length, startOffset, endOffset, cb, 0, 0, new Map(), onlyColorizedBrackets);
|
||||
});
|
||||
}
|
||||
getBracketPairsInRange(range, includeMinIndentation) {
|
||||
|
|
@ -190,7 +191,7 @@ function getFirstBracketAfter(node, nodeOffsetStart, nodeOffsetEnd, position) {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
function collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, nestingLevelOfEqualBracketType, levelPerBracketType, parentPairIsIncomplete = false) {
|
||||
function collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, nestingLevelOfEqualBracketType, levelPerBracketType, onlyColorizedBrackets, parentPairIsIncomplete = false) {
|
||||
if (level > 200) {
|
||||
return true;
|
||||
}
|
||||
|
|
@ -212,7 +213,7 @@ function collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endO
|
|||
node = child;
|
||||
continue whileLoop;
|
||||
}
|
||||
const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, 0, levelPerBracketType);
|
||||
const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, 0, levelPerBracketType, onlyColorizedBrackets);
|
||||
if (!shouldContinue) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -222,6 +223,7 @@ function collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endO
|
|||
return true;
|
||||
}
|
||||
case 2 /* AstNodeKind.Pair */: {
|
||||
const colorize = !onlyColorizedBrackets || !node.closingBracket || node.closingBracket.bracketInfo.closesColorized(node.openingBracket.bracketInfo);
|
||||
let levelPerBracket = 0;
|
||||
if (levelPerBracketType) {
|
||||
let existing = levelPerBracketType.get(node.openingBracket.text);
|
||||
|
|
@ -229,8 +231,10 @@ function collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endO
|
|||
existing = 0;
|
||||
}
|
||||
levelPerBracket = existing;
|
||||
existing++;
|
||||
levelPerBracketType.set(node.openingBracket.text, existing);
|
||||
if (colorize) {
|
||||
existing++;
|
||||
levelPerBracketType.set(node.openingBracket.text, existing);
|
||||
}
|
||||
}
|
||||
const childCount = node.childrenLength;
|
||||
for (let i = 0; i < childCount; i++) {
|
||||
|
|
@ -242,16 +246,24 @@ function collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endO
|
|||
if (lengthLessThanEqual(nodeOffsetStart, endOffset) &&
|
||||
lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {
|
||||
const childEndsAfterEnd = lengthGreaterThanEqual(nodeOffsetEnd, endOffset);
|
||||
if (childEndsAfterEnd) {
|
||||
if (childEndsAfterEnd && child.kind !== 1 /* AstNodeKind.Bracket */) {
|
||||
// No child after this child in the requested window, don't recurse
|
||||
// Don't do this for brackets because of unclosed/unopened brackets
|
||||
node = child;
|
||||
level++;
|
||||
nestingLevelOfEqualBracketType = levelPerBracket + 1;
|
||||
if (colorize) {
|
||||
level++;
|
||||
nestingLevelOfEqualBracketType = levelPerBracket + 1;
|
||||
}
|
||||
else {
|
||||
nestingLevelOfEqualBracketType = levelPerBracket;
|
||||
}
|
||||
continue whileLoop;
|
||||
}
|
||||
const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level + 1, levelPerBracket + 1, levelPerBracketType, !node.closingBracket);
|
||||
if (!shouldContinue) {
|
||||
return false;
|
||||
if (colorize || child.kind !== 1 /* AstNodeKind.Bracket */ || !node.closingBracket) {
|
||||
const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, colorize ? level + 1 : level, colorize ? levelPerBracket + 1 : levelPerBracket, levelPerBracketType, onlyColorizedBrackets, !node.closingBracket);
|
||||
if (!shouldContinue) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
nodeOffsetStart = nodeOffsetEnd;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ export class BracketTokens {
|
|||
for (const closingBracket of configuration.bracketsNew.closingBrackets) {
|
||||
const length = toLength(0, closingBracket.bracketText.length);
|
||||
let bracketIds = SmallImmutableSet.getEmpty();
|
||||
const closingBrackets = closingBracket.getClosedBrackets();
|
||||
const closingBrackets = closingBracket.getOpeningBrackets();
|
||||
for (const bracket of closingBrackets) {
|
||||
bracketIds = bracketIds.add(getId(bracket), identityKeyProvider);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ export class ColorizedBracketPairsDecorationProvider extends Disposable {
|
|||
if (!this.colorizationOptions.enabled) {
|
||||
return [];
|
||||
}
|
||||
const result = this.textModel.bracketPairs.getBracketsInRange(range).map(bracket => ({
|
||||
const result = this.textModel.bracketPairs.getBracketsInRange(range, true).map(bracket => ({
|
||||
id: `bracket${bracket.range.toString()}-${bracket.nestingLevel}`,
|
||||
options: {
|
||||
description: 'BracketPairColorization',
|
||||
|
|
|
|||
|
|
@ -103,16 +103,15 @@ export class PieceTreeTextBufferBuilder {
|
|||
this.cr += lineStarts.cr;
|
||||
this.lf += lineStarts.lf;
|
||||
this.crlf += lineStarts.crlf;
|
||||
if (this.isBasicASCII) {
|
||||
this.isBasicASCII = lineStarts.isBasicASCII;
|
||||
}
|
||||
if (!this.isBasicASCII && !this.containsRTL) {
|
||||
// No need to check if it is basic ASCII
|
||||
this.containsRTL = strings.containsRTL(chunk);
|
||||
}
|
||||
if (!this.isBasicASCII && !this.containsUnusualLineTerminators) {
|
||||
// No need to check if it is basic ASCII
|
||||
this.containsUnusualLineTerminators = strings.containsUnusualLineTerminators(chunk);
|
||||
if (!lineStarts.isBasicASCII) {
|
||||
// this chunk contains non basic ASCII characters
|
||||
this.isBasicASCII = false;
|
||||
if (!this.containsRTL) {
|
||||
this.containsRTL = strings.containsRTL(chunk);
|
||||
}
|
||||
if (!this.containsUnusualLineTerminators) {
|
||||
this.containsUnusualLineTerminators = strings.containsUnusualLineTerminators(chunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
finish(normalizeEOL = true) {
|
||||
|
|
|
|||
338
node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelTokens.js
generated
vendored
338
node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelTokens.js
generated
vendored
|
|
@ -3,21 +3,21 @@
|
|||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import * as arrays from '../../../base/common/arrays.js';
|
||||
import { onUnexpectedError } from '../../../base/common/errors.js';
|
||||
import { LineTokens } from '../tokens/lineTokens.js';
|
||||
import { TokenizationRegistry } from '../languages.js';
|
||||
import { nullTokenizeEncoded } from '../languages/nullTokenize.js';
|
||||
import { Disposable } from '../../../base/common/lifecycle.js';
|
||||
import { runWhenIdle } from '../../../base/common/async.js';
|
||||
import { BugIndicatingError, onUnexpectedError } from '../../../base/common/errors.js';
|
||||
import { Disposable, MutableDisposable } from '../../../base/common/lifecycle.js';
|
||||
import { setTimeout0 } from '../../../base/common/platform.js';
|
||||
import { StopWatch } from '../../../base/common/stopwatch.js';
|
||||
import { countEOL } from '../core/eolCounter.js';
|
||||
import { TokenizationRegistry } from '../languages.js';
|
||||
import { nullTokenizeEncoded } from '../languages/nullTokenize.js';
|
||||
import { ContiguousMultilineTokensBuilder } from '../tokens/contiguousMultilineTokensBuilder.js';
|
||||
import { runWhenIdle } from '../../../base/common/async.js';
|
||||
import { setTimeout0 } from '../../../base/common/platform.js';
|
||||
import { LineTokens } from '../tokens/lineTokens.js';
|
||||
/**
|
||||
* An array that avoids being sparse by always
|
||||
* filling up unused indices with a default value.
|
||||
*/
|
||||
class ContiguousGrowingArray {
|
||||
export class ContiguousGrowingArray {
|
||||
constructor(_default) {
|
||||
this._default = _default;
|
||||
this._store = [];
|
||||
|
|
@ -34,6 +34,7 @@ class ContiguousGrowingArray {
|
|||
}
|
||||
this._store[index] = value;
|
||||
}
|
||||
// TODO have `replace` instead of `delete` and `insert`
|
||||
delete(deleteIndex, deleteCount) {
|
||||
if (deleteCount === 0 || deleteIndex >= this._store.length) {
|
||||
return;
|
||||
|
|
@ -53,8 +54,8 @@ class ContiguousGrowingArray {
|
|||
}
|
||||
/**
|
||||
* Stores the states at the start of each line and keeps track of which lines
|
||||
* must be retokenized. Also uses state equality to quickly validate lines
|
||||
* that don't need to be retokenized.
|
||||
* must be re-tokenized. Also uses state equality to quickly validate lines
|
||||
* that don't need to be re-tokenized.
|
||||
*
|
||||
* For example, when typing on a line, the line gets marked as needing to be tokenized.
|
||||
* Once the line is tokenized, the end state is checked for equality against the begin
|
||||
|
|
@ -92,14 +93,14 @@ export class TokenizationStateStore {
|
|||
this._firstLineNeedsTokenization = lineIndex + 1;
|
||||
// Check if this was the last line
|
||||
if (lineIndex === linesLength - 1) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
// Check if the end state has changed
|
||||
const previousEndState = this._lineBeginState.get(lineIndex + 1);
|
||||
if (previousEndState === null || !endState.equals(previousEndState)) {
|
||||
this._lineBeginState.set(lineIndex + 1, endState);
|
||||
this.markMustBeTokenized(lineIndex + 1);
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
// Perhaps we can skip tokenizing some lines...
|
||||
let i = lineIndex + 1;
|
||||
|
|
@ -110,8 +111,8 @@ export class TokenizationStateStore {
|
|||
i++;
|
||||
}
|
||||
this._firstLineNeedsTokenization = i;
|
||||
return false;
|
||||
}
|
||||
//#region Editing
|
||||
applyEdits(range, eolCount) {
|
||||
this.markMustBeTokenized(range.startLineNumber - 1);
|
||||
this._lineBeginState.delete(range.startLineNumber, range.endLineNumber - range.startLineNumber);
|
||||
|
|
@ -119,6 +120,23 @@ export class TokenizationStateStore {
|
|||
this._lineBeginState.insert(range.startLineNumber, eolCount);
|
||||
this._lineNeedsTokenization.insert(range.startLineNumber, eolCount);
|
||||
}
|
||||
updateTokensUntilLine(textModel, languageIdCodec, builder, lineNumber) {
|
||||
const languageId = textModel.getLanguageId();
|
||||
const linesLength = textModel.getLineCount();
|
||||
const endLineIndex = lineNumber - 1;
|
||||
// Validate all states up to and including endLineIndex
|
||||
for (let lineIndex = this.invalidLineStartIndex; lineIndex <= endLineIndex; lineIndex++) {
|
||||
const text = textModel.getLineContent(lineIndex + 1);
|
||||
const lineStartState = this.getBeginState(lineIndex);
|
||||
const r = safeTokenize(languageIdCodec, languageId, this.tokenizationSupport, text, true, lineStartState);
|
||||
builder.add(lineIndex + 1, r.tokens);
|
||||
this.setEndState(linesLength, lineIndex, r.endState);
|
||||
lineIndex = this.invalidLineStartIndex - 1; // -1 because the outer loop increments it
|
||||
}
|
||||
}
|
||||
isTokenizationComplete(textModel) {
|
||||
return this.invalidLineStartIndex >= textModel.getLineCount();
|
||||
}
|
||||
}
|
||||
export class TextModelTokenization extends Disposable {
|
||||
constructor(_textModel, _tokenizationPart, _languageIdCodec) {
|
||||
|
|
@ -126,9 +144,9 @@ export class TextModelTokenization extends Disposable {
|
|||
this._textModel = _textModel;
|
||||
this._tokenizationPart = _tokenizationPart;
|
||||
this._languageIdCodec = _languageIdCodec;
|
||||
this._isScheduled = false;
|
||||
this._isDisposed = false;
|
||||
this._tokenizationStateStore = null;
|
||||
this._defaultBackgroundTokenizer = null;
|
||||
this.backgroundTokenizer = this._register(new MutableDisposable());
|
||||
this._register(TokenizationRegistry.onDidChange((e) => {
|
||||
const languageId = this._textModel.getLanguageId();
|
||||
if (e.changedLanguages.indexOf(languageId) === -1) {
|
||||
|
|
@ -139,12 +157,8 @@ export class TextModelTokenization extends Disposable {
|
|||
}));
|
||||
this._resetTokenizationState();
|
||||
}
|
||||
dispose() {
|
||||
this._isDisposed = true;
|
||||
super.dispose();
|
||||
}
|
||||
//#region TextModel events
|
||||
handleDidChangeContent(e) {
|
||||
var _a;
|
||||
if (e.isFlush) {
|
||||
this._resetTokenizationState();
|
||||
return;
|
||||
|
|
@ -156,16 +170,16 @@ export class TextModelTokenization extends Disposable {
|
|||
this._tokenizationStateStore.applyEdits(change.range, eolCount);
|
||||
}
|
||||
}
|
||||
this._beginBackgroundTokenization();
|
||||
(_a = this._defaultBackgroundTokenizer) === null || _a === void 0 ? void 0 : _a.handleChanges();
|
||||
}
|
||||
handleDidChangeAttached() {
|
||||
this._beginBackgroundTokenization();
|
||||
var _a;
|
||||
(_a = this._defaultBackgroundTokenizer) === null || _a === void 0 ? void 0 : _a.handleChanges();
|
||||
}
|
||||
handleDidChangeLanguage(e) {
|
||||
this._resetTokenizationState();
|
||||
this._tokenizationPart.clearTokens();
|
||||
}
|
||||
//#endregion
|
||||
_resetTokenizationState() {
|
||||
const [tokenizationSupport, initialState] = initializeTokenization(this._textModel, this._tokenizationPart);
|
||||
if (tokenizationSupport && initialState) {
|
||||
|
|
@ -174,77 +188,55 @@ export class TextModelTokenization extends Disposable {
|
|||
else {
|
||||
this._tokenizationStateStore = null;
|
||||
}
|
||||
this._beginBackgroundTokenization();
|
||||
}
|
||||
_beginBackgroundTokenization() {
|
||||
if (this._isScheduled || !this._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {
|
||||
return;
|
||||
this.backgroundTokenizer.clear();
|
||||
this._defaultBackgroundTokenizer = null;
|
||||
if (this._tokenizationStateStore) {
|
||||
const b = {
|
||||
setTokens: (tokens) => {
|
||||
this._tokenizationPart.setTokens(tokens);
|
||||
},
|
||||
backgroundTokenizationFinished: () => {
|
||||
this._tokenizationPart.handleBackgroundTokenizationFinished();
|
||||
},
|
||||
setEndState: (lineNumber, state) => {
|
||||
var _a, _b;
|
||||
if (!state) {
|
||||
throw new BugIndicatingError();
|
||||
}
|
||||
const invalidLineStartIndex = (_a = this._tokenizationStateStore) === null || _a === void 0 ? void 0 : _a.invalidLineStartIndex;
|
||||
if (invalidLineStartIndex !== undefined && lineNumber - 1 >= invalidLineStartIndex) {
|
||||
// Don't accept states for definitely valid states
|
||||
(_b = this._tokenizationStateStore) === null || _b === void 0 ? void 0 : _b.setEndState(this._textModel.getLineCount(), lineNumber - 1, state);
|
||||
}
|
||||
},
|
||||
};
|
||||
if (tokenizationSupport && tokenizationSupport.createBackgroundTokenizer) {
|
||||
this.backgroundTokenizer.value = tokenizationSupport.createBackgroundTokenizer(this._textModel, b);
|
||||
}
|
||||
if (!this.backgroundTokenizer.value) {
|
||||
this.backgroundTokenizer.value = this._defaultBackgroundTokenizer =
|
||||
new DefaultBackgroundTokenizer(this._textModel, this._tokenizationStateStore, b, this._languageIdCodec);
|
||||
this._defaultBackgroundTokenizer.handleChanges();
|
||||
}
|
||||
}
|
||||
this._isScheduled = true;
|
||||
runWhenIdle((deadline) => {
|
||||
this._isScheduled = false;
|
||||
this._backgroundTokenizeWithDeadline(deadline);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Tokenize until the deadline occurs, but try to yield every 1-2ms.
|
||||
*/
|
||||
_backgroundTokenizeWithDeadline(deadline) {
|
||||
// Read the time remaining from the `deadline` immediately because it is unclear
|
||||
// if the `deadline` object will be valid after execution leaves this function.
|
||||
const endTime = Date.now() + deadline.timeRemaining();
|
||||
const execute = () => {
|
||||
if (this._isDisposed || !this._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {
|
||||
// disposed in the meantime or detached or finished
|
||||
return;
|
||||
}
|
||||
this._backgroundTokenizeForAtLeast1ms();
|
||||
if (Date.now() < endTime) {
|
||||
// There is still time before reaching the deadline, so yield to the browser and then
|
||||
// continue execution
|
||||
setTimeout0(execute);
|
||||
}
|
||||
else {
|
||||
// The deadline has been reached, so schedule a new idle callback if necessary
|
||||
this._beginBackgroundTokenization();
|
||||
}
|
||||
};
|
||||
execute();
|
||||
}
|
||||
/**
|
||||
* Tokenize for at least 1ms.
|
||||
*/
|
||||
_backgroundTokenizeForAtLeast1ms() {
|
||||
const lineCount = this._textModel.getLineCount();
|
||||
const builder = new ContiguousMultilineTokensBuilder();
|
||||
const sw = StopWatch.create(false);
|
||||
do {
|
||||
if (sw.elapsed() > 1) {
|
||||
// the comparison is intentionally > 1 and not >= 1 to ensure that
|
||||
// a full millisecond has elapsed, given how microseconds are rounded
|
||||
// to milliseconds
|
||||
break;
|
||||
}
|
||||
const tokenizedLineNumber = this._tokenizeOneInvalidLine(builder);
|
||||
if (tokenizedLineNumber >= lineCount) {
|
||||
break;
|
||||
}
|
||||
} while (this._hasLinesToTokenize());
|
||||
this._tokenizationPart.setTokens(builder.finalize(), this._isTokenizationComplete());
|
||||
}
|
||||
tokenizeViewport(startLineNumber, endLineNumber) {
|
||||
var _a;
|
||||
const builder = new ContiguousMultilineTokensBuilder();
|
||||
this._tokenizeViewport(builder, startLineNumber, endLineNumber);
|
||||
this._tokenizationPart.setTokens(builder.finalize(), this._isTokenizationComplete());
|
||||
this._heuristicallyTokenizeViewport(builder, startLineNumber, endLineNumber);
|
||||
this._tokenizationPart.setTokens(builder.finalize());
|
||||
(_a = this._defaultBackgroundTokenizer) === null || _a === void 0 ? void 0 : _a.checkFinished();
|
||||
}
|
||||
reset() {
|
||||
this._resetTokenizationState();
|
||||
this._tokenizationPart.clearTokens();
|
||||
}
|
||||
forceTokenization(lineNumber) {
|
||||
var _a, _b;
|
||||
const builder = new ContiguousMultilineTokensBuilder();
|
||||
this._updateTokensUntilLine(builder, lineNumber);
|
||||
this._tokenizationPart.setTokens(builder.finalize(), this._isTokenizationComplete());
|
||||
(_a = this._tokenizationStateStore) === null || _a === void 0 ? void 0 : _a.updateTokensUntilLine(this._textModel, this._languageIdCodec, builder, lineNumber);
|
||||
this._tokenizationPart.setTokens(builder.finalize());
|
||||
(_b = this._defaultBackgroundTokenizer) === null || _b === void 0 ? void 0 : _b.checkFinished();
|
||||
}
|
||||
getTokenTypeIfInsertingCharacter(position, character) {
|
||||
if (!this._tokenizationStateStore) {
|
||||
|
|
@ -304,44 +296,11 @@ export class TextModelTokenization extends Disposable {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
_hasLinesToTokenize() {
|
||||
if (!this._tokenizationStateStore) {
|
||||
return false;
|
||||
}
|
||||
return (this._tokenizationStateStore.invalidLineStartIndex < this._textModel.getLineCount());
|
||||
}
|
||||
_isTokenizationComplete() {
|
||||
if (!this._tokenizationStateStore) {
|
||||
return false;
|
||||
}
|
||||
return (this._tokenizationStateStore.invalidLineStartIndex >= this._textModel.getLineCount());
|
||||
}
|
||||
_tokenizeOneInvalidLine(builder) {
|
||||
if (!this._tokenizationStateStore || !this._hasLinesToTokenize()) {
|
||||
return this._textModel.getLineCount() + 1;
|
||||
}
|
||||
const lineNumber = this._tokenizationStateStore.invalidLineStartIndex + 1;
|
||||
this._updateTokensUntilLine(builder, lineNumber);
|
||||
return lineNumber;
|
||||
}
|
||||
_updateTokensUntilLine(builder, lineNumber) {
|
||||
if (!this._tokenizationStateStore) {
|
||||
return;
|
||||
}
|
||||
const languageId = this._textModel.getLanguageId();
|
||||
const linesLength = this._textModel.getLineCount();
|
||||
const endLineIndex = lineNumber - 1;
|
||||
// Validate all states up to and including endLineIndex
|
||||
for (let lineIndex = this._tokenizationStateStore.invalidLineStartIndex; lineIndex <= endLineIndex; lineIndex++) {
|
||||
const text = this._textModel.getLineContent(lineIndex + 1);
|
||||
const lineStartState = this._tokenizationStateStore.getBeginState(lineIndex);
|
||||
const r = safeTokenize(this._languageIdCodec, languageId, this._tokenizationStateStore.tokenizationSupport, text, true, lineStartState);
|
||||
builder.add(lineIndex + 1, r.tokens);
|
||||
this._tokenizationStateStore.setEndState(linesLength, lineIndex, r.endState);
|
||||
lineIndex = this._tokenizationStateStore.invalidLineStartIndex - 1; // -1 because the outer loop increments it
|
||||
}
|
||||
}
|
||||
_tokenizeViewport(builder, startLineNumber, endLineNumber) {
|
||||
/**
|
||||
* The result is not cached.
|
||||
*/
|
||||
_heuristicallyTokenizeViewport(builder, startLineNumber, endLineNumber) {
|
||||
var _a;
|
||||
if (!this._tokenizationStateStore) {
|
||||
// nothing to do
|
||||
return;
|
||||
|
|
@ -352,19 +311,33 @@ export class TextModelTokenization extends Disposable {
|
|||
}
|
||||
if (startLineNumber <= this._tokenizationStateStore.invalidLineStartIndex) {
|
||||
// tokenization has reached the viewport start...
|
||||
this._updateTokensUntilLine(builder, endLineNumber);
|
||||
this._tokenizationStateStore.updateTokensUntilLine(this._textModel, this._languageIdCodec, builder, endLineNumber);
|
||||
return;
|
||||
}
|
||||
let nonWhitespaceColumn = this._textModel.getLineFirstNonWhitespaceColumn(startLineNumber);
|
||||
const fakeLines = [];
|
||||
let state = this.guessStartState(startLineNumber);
|
||||
const languageId = this._textModel.getLanguageId();
|
||||
for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {
|
||||
const text = this._textModel.getLineContent(lineNumber);
|
||||
const r = safeTokenize(this._languageIdCodec, languageId, this._tokenizationStateStore.tokenizationSupport, text, true, state);
|
||||
builder.add(lineNumber, r.tokens);
|
||||
state = r.endState;
|
||||
}
|
||||
// We overrode the tokens. Because old states might get reused (thus stopping invalidation),
|
||||
// we have to explicitly request the tokens for this range again.
|
||||
(_a = this.backgroundTokenizer.value) === null || _a === void 0 ? void 0 : _a.requestTokens(startLineNumber, endLineNumber + 1);
|
||||
}
|
||||
guessStartState(lineNumber) {
|
||||
let nonWhitespaceColumn = this._textModel.getLineFirstNonWhitespaceColumn(lineNumber);
|
||||
const likelyRelevantLines = [];
|
||||
let initialState = null;
|
||||
for (let i = startLineNumber - 1; nonWhitespaceColumn > 1 && i >= 1; i--) {
|
||||
for (let i = lineNumber - 1; nonWhitespaceColumn > 1 && i >= 1; i--) {
|
||||
const newNonWhitespaceIndex = this._textModel.getLineFirstNonWhitespaceColumn(i);
|
||||
// Ignore lines full of whitespace
|
||||
if (newNonWhitespaceIndex === 0) {
|
||||
continue;
|
||||
}
|
||||
if (newNonWhitespaceIndex < nonWhitespaceColumn) {
|
||||
fakeLines.push(this._textModel.getLineContent(i));
|
||||
likelyRelevantLines.push(this._textModel.getLineContent(i));
|
||||
nonWhitespaceColumn = newNonWhitespaceIndex;
|
||||
initialState = this._tokenizationStateStore.getBeginState(i - 1);
|
||||
if (initialState) {
|
||||
|
|
@ -375,19 +348,14 @@ export class TextModelTokenization extends Disposable {
|
|||
if (!initialState) {
|
||||
initialState = this._tokenizationStateStore.initialState;
|
||||
}
|
||||
likelyRelevantLines.reverse();
|
||||
const languageId = this._textModel.getLanguageId();
|
||||
let state = initialState;
|
||||
for (let i = fakeLines.length - 1; i >= 0; i--) {
|
||||
const r = safeTokenize(this._languageIdCodec, languageId, this._tokenizationStateStore.tokenizationSupport, fakeLines[i], false, state);
|
||||
state = r.endState;
|
||||
}
|
||||
for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {
|
||||
const text = this._textModel.getLineContent(lineNumber);
|
||||
const r = safeTokenize(this._languageIdCodec, languageId, this._tokenizationStateStore.tokenizationSupport, text, true, state);
|
||||
builder.add(lineNumber, r.tokens);
|
||||
this._tokenizationStateStore.markMustBeTokenized(lineNumber - 1);
|
||||
for (const line of likelyRelevantLines) {
|
||||
const r = safeTokenize(this._languageIdCodec, languageId, this._tokenizationStateStore.tokenizationSupport, line, false, state);
|
||||
state = r.endState;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
}
|
||||
function initializeTokenization(textModel, tokenizationPart) {
|
||||
|
|
@ -424,3 +392,103 @@ function safeTokenize(languageIdCodec, languageId, tokenizationSupport, text, ha
|
|||
LineTokens.convertToEndOffset(r.tokens, text.length);
|
||||
return r;
|
||||
}
|
||||
class DefaultBackgroundTokenizer {
|
||||
constructor(_textModel, _stateStore, _backgroundTokenStore, _languageIdCodec) {
|
||||
this._textModel = _textModel;
|
||||
this._stateStore = _stateStore;
|
||||
this._backgroundTokenStore = _backgroundTokenStore;
|
||||
this._languageIdCodec = _languageIdCodec;
|
||||
this._isDisposed = false;
|
||||
this._isScheduled = false;
|
||||
}
|
||||
dispose() {
|
||||
this._isDisposed = true;
|
||||
}
|
||||
handleChanges() {
|
||||
this._beginBackgroundTokenization();
|
||||
}
|
||||
_beginBackgroundTokenization() {
|
||||
if (this._isScheduled || !this._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {
|
||||
return;
|
||||
}
|
||||
this._isScheduled = true;
|
||||
runWhenIdle((deadline) => {
|
||||
this._isScheduled = false;
|
||||
this._backgroundTokenizeWithDeadline(deadline);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Tokenize until the deadline occurs, but try to yield every 1-2ms.
|
||||
*/
|
||||
_backgroundTokenizeWithDeadline(deadline) {
|
||||
// Read the time remaining from the `deadline` immediately because it is unclear
|
||||
// if the `deadline` object will be valid after execution leaves this function.
|
||||
const endTime = Date.now() + deadline.timeRemaining();
|
||||
const execute = () => {
|
||||
if (this._isDisposed || !this._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {
|
||||
// disposed in the meantime or detached or finished
|
||||
return;
|
||||
}
|
||||
this._backgroundTokenizeForAtLeast1ms();
|
||||
if (Date.now() < endTime) {
|
||||
// There is still time before reaching the deadline, so yield to the browser and then
|
||||
// continue execution
|
||||
setTimeout0(execute);
|
||||
}
|
||||
else {
|
||||
// The deadline has been reached, so schedule a new idle callback if necessary
|
||||
this._beginBackgroundTokenization();
|
||||
}
|
||||
};
|
||||
execute();
|
||||
}
|
||||
/**
|
||||
* Tokenize for at least 1ms.
|
||||
*/
|
||||
_backgroundTokenizeForAtLeast1ms() {
|
||||
const lineCount = this._textModel.getLineCount();
|
||||
const builder = new ContiguousMultilineTokensBuilder();
|
||||
const sw = StopWatch.create(false);
|
||||
do {
|
||||
if (sw.elapsed() > 1) {
|
||||
// the comparison is intentionally > 1 and not >= 1 to ensure that
|
||||
// a full millisecond has elapsed, given how microseconds are rounded
|
||||
// to milliseconds
|
||||
break;
|
||||
}
|
||||
const tokenizedLineNumber = this._tokenizeOneInvalidLine(builder);
|
||||
if (tokenizedLineNumber >= lineCount) {
|
||||
break;
|
||||
}
|
||||
} while (this._hasLinesToTokenize());
|
||||
this._backgroundTokenStore.setTokens(builder.finalize());
|
||||
this.checkFinished();
|
||||
}
|
||||
_hasLinesToTokenize() {
|
||||
if (!this._stateStore) {
|
||||
return false;
|
||||
}
|
||||
return this._stateStore.invalidLineStartIndex < this._textModel.getLineCount();
|
||||
}
|
||||
_tokenizeOneInvalidLine(builder) {
|
||||
if (!this._stateStore || !this._hasLinesToTokenize()) {
|
||||
return this._textModel.getLineCount() + 1;
|
||||
}
|
||||
const lineNumber = this._stateStore.invalidLineStartIndex + 1;
|
||||
this._stateStore.updateTokensUntilLine(this._textModel, this._languageIdCodec, builder, lineNumber);
|
||||
return lineNumber;
|
||||
}
|
||||
checkFinished() {
|
||||
if (this._isDisposed) {
|
||||
return;
|
||||
}
|
||||
if (this._stateStore.isTokenizationComplete(this._textModel)) {
|
||||
this._backgroundTokenStore.backgroundTokenizationFinished();
|
||||
}
|
||||
}
|
||||
requestTokens(startLineNumber, endLineNumberExclusive) {
|
||||
for (let lineNumber = startLineNumber; lineNumber < endLineNumberExclusive; lineNumber++) {
|
||||
this._stateStore.markMustBeTokenized(lineNumber - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
91
node_modules/monaco-editor-core/esm/vs/editor/common/model/tokenizationTextModelPart.js
generated
vendored
91
node_modules/monaco-editor-core/esm/vs/editor/common/model/tokenizationTextModelPart.js
generated
vendored
|
|
@ -23,16 +23,15 @@ export class TokenizationTextModelPart extends TextModelPart {
|
|||
this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event;
|
||||
this._onDidChangeTokens = this._register(new Emitter());
|
||||
this.onDidChangeTokens = this._onDidChangeTokens.event;
|
||||
this._backgroundTokenizationState = 0 /* BackgroundTokenizationState.Uninitialized */;
|
||||
this._onBackgroundTokenizationStateChanged = this._register(new Emitter());
|
||||
this._backgroundTokenizationState = 1 /* BackgroundTokenizationState.InProgress */;
|
||||
this._tokens = new ContiguousTokensStore(this._languageService.languageIdCodec);
|
||||
this._semanticTokens = new SparseTokensStore(this._languageService.languageIdCodec);
|
||||
this._tokenization = new TextModelTokenization(_textModel, this, this._languageService.languageIdCodec);
|
||||
this._languageRegistryListener = this._languageConfigurationService.onDidChange(e => {
|
||||
this._tokenization = this._register(new TextModelTokenization(_textModel, this, this._languageService.languageIdCodec));
|
||||
this._register(this._languageConfigurationService.onDidChange(e => {
|
||||
if (e.affects(this._languageId)) {
|
||||
this._onDidChangeLanguageConfiguration.fire({});
|
||||
}
|
||||
});
|
||||
}));
|
||||
}
|
||||
acceptEdit(range, text, eolCount, firstLineLength, lastLineLength) {
|
||||
this._tokens.acceptEdit(range, eolCount, firstLineLength);
|
||||
|
|
@ -45,67 +44,63 @@ export class TokenizationTextModelPart extends TextModelPart {
|
|||
this._tokens.flush();
|
||||
this._semanticTokens.flush();
|
||||
}
|
||||
// TODO@hediet TODO@alexdima what is the difference between this and acceptEdit?
|
||||
handleDidChangeContent(change) {
|
||||
this._tokenization.handleDidChangeContent(change);
|
||||
}
|
||||
dispose() {
|
||||
this._languageRegistryListener.dispose();
|
||||
this._tokenization.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
get backgroundTokenizationState() {
|
||||
return this._backgroundTokenizationState;
|
||||
}
|
||||
handleTokenizationProgress(completed) {
|
||||
handleBackgroundTokenizationFinished() {
|
||||
if (this._backgroundTokenizationState === 2 /* BackgroundTokenizationState.Completed */) {
|
||||
// We already did a full tokenization and don't go back to progressing.
|
||||
return;
|
||||
}
|
||||
const newState = completed ? 2 /* BackgroundTokenizationState.Completed */ : 1 /* BackgroundTokenizationState.InProgress */;
|
||||
if (this._backgroundTokenizationState !== newState) {
|
||||
this._backgroundTokenizationState = newState;
|
||||
this.bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState();
|
||||
this._onBackgroundTokenizationStateChanged.fire();
|
||||
}
|
||||
const newState = 2 /* BackgroundTokenizationState.Completed */;
|
||||
this._backgroundTokenizationState = newState;
|
||||
this.bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState();
|
||||
}
|
||||
setTokens(tokens, backgroundTokenizationCompleted = false) {
|
||||
if (tokens.length !== 0) {
|
||||
const ranges = [];
|
||||
for (let i = 0, len = tokens.length; i < len; i++) {
|
||||
const element = tokens[i];
|
||||
let minChangedLineNumber = 0;
|
||||
let maxChangedLineNumber = 0;
|
||||
let hasChange = false;
|
||||
for (let lineNumber = element.startLineNumber; lineNumber <= element.endLineNumber; lineNumber++) {
|
||||
if (hasChange) {
|
||||
this._tokens.setTokens(this._languageId, lineNumber - 1, this._textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), false);
|
||||
get hasTokens() {
|
||||
return this._tokens.hasTokens;
|
||||
}
|
||||
setTokens(tokens) {
|
||||
if (tokens.length === 0) {
|
||||
return;
|
||||
}
|
||||
const ranges = [];
|
||||
for (let i = 0, len = tokens.length; i < len; i++) {
|
||||
const element = tokens[i];
|
||||
let minChangedLineNumber = 0;
|
||||
let maxChangedLineNumber = 0;
|
||||
let hasChange = false;
|
||||
for (let lineNumber = element.startLineNumber; lineNumber <= element.endLineNumber; lineNumber++) {
|
||||
if (hasChange) {
|
||||
this._tokens.setTokens(this._languageId, lineNumber - 1, this._textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), false);
|
||||
maxChangedLineNumber = lineNumber;
|
||||
}
|
||||
else {
|
||||
const lineHasChange = this._tokens.setTokens(this._languageId, lineNumber - 1, this._textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), true);
|
||||
if (lineHasChange) {
|
||||
hasChange = true;
|
||||
minChangedLineNumber = lineNumber;
|
||||
maxChangedLineNumber = lineNumber;
|
||||
}
|
||||
else {
|
||||
const lineHasChange = this._tokens.setTokens(this._languageId, lineNumber - 1, this._textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), true);
|
||||
if (lineHasChange) {
|
||||
hasChange = true;
|
||||
minChangedLineNumber = lineNumber;
|
||||
maxChangedLineNumber = lineNumber;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hasChange) {
|
||||
ranges.push({
|
||||
fromLineNumber: minChangedLineNumber,
|
||||
toLineNumber: maxChangedLineNumber,
|
||||
});
|
||||
}
|
||||
}
|
||||
if (ranges.length > 0) {
|
||||
this._emitModelTokensChangedEvent({
|
||||
tokenizationSupportChanged: false,
|
||||
semanticTokensApplied: false,
|
||||
ranges: ranges,
|
||||
if (hasChange) {
|
||||
ranges.push({
|
||||
fromLineNumber: minChangedLineNumber,
|
||||
toLineNumber: maxChangedLineNumber,
|
||||
});
|
||||
}
|
||||
}
|
||||
this.handleTokenizationProgress(backgroundTokenizationCompleted);
|
||||
if (ranges.length > 0) {
|
||||
this._emitModelTokensChangedEvent({
|
||||
tokenizationSupportChanged: false,
|
||||
semanticTokensApplied: false,
|
||||
ranges: ranges,
|
||||
});
|
||||
}
|
||||
}
|
||||
setSemanticTokens(tokens, isComplete) {
|
||||
this._semanticTokens.set(tokens, isComplete);
|
||||
|
|
|
|||
371
node_modules/monaco-editor-core/esm/vs/editor/common/services/modelService.js
generated
vendored
371
node_modules/monaco-editor-core/esm/vs/editor/common/services/modelService.js
generated
vendored
|
|
@ -12,31 +12,20 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
import { Emitter } from '../../../base/common/event.js';
|
||||
import { Disposable, DisposableStore, dispose } from '../../../base/common/lifecycle.js';
|
||||
import { Disposable, DisposableStore } from '../../../base/common/lifecycle.js';
|
||||
import * as platform from '../../../base/common/platform.js';
|
||||
import * as errors from '../../../base/common/errors.js';
|
||||
import { TextModel } from '../model/textModel.js';
|
||||
import { EDITOR_MODEL_DEFAULTS } from '../core/textModelDefaults.js';
|
||||
import { PLAINTEXT_LANGUAGE_ID } from '../languages/modesRegistry.js';
|
||||
import { ILanguageService } from '../languages/language.js';
|
||||
import { IModelService } from './model.js';
|
||||
import { ITextResourcePropertiesService } from './textResourceConfiguration.js';
|
||||
import { IConfigurationService } from '../../../platform/configuration/common/configuration.js';
|
||||
import { RunOnceScheduler } from '../../../base/common/async.js';
|
||||
import { CancellationTokenSource } from '../../../base/common/cancellation.js';
|
||||
import { IThemeService } from '../../../platform/theme/common/themeService.js';
|
||||
import { ILogService } from '../../../platform/log/common/log.js';
|
||||
import { IUndoRedoService } from '../../../platform/undoRedo/common/undoRedo.js';
|
||||
import { StringSHA1 } from '../../../base/common/hash.js';
|
||||
import { isEditStackElement } from '../model/editStack.js';
|
||||
import { Schemas } from '../../../base/common/network.js';
|
||||
import { SemanticTokensProviderStyling, toMultilineTokens2 } from './semanticTokensProviderStyling.js';
|
||||
import { getDocumentSemanticTokens, hasDocumentSemanticTokensProvider, isSemanticTokens, isSemanticTokensEdits } from './getSemanticTokens.js';
|
||||
import { equals } from '../../../base/common/objects.js';
|
||||
import { ILanguageConfigurationService } from '../languages/languageConfigurationRegistry.js';
|
||||
import { ILanguageFeatureDebounceService } from './languageFeatureDebounce.js';
|
||||
import { StopWatch } from '../../../base/common/stopwatch.js';
|
||||
import { ILanguageFeaturesService } from './languageFeatures.js';
|
||||
function MODEL_ID(resource) {
|
||||
return resource.toString();
|
||||
}
|
||||
|
|
@ -90,16 +79,13 @@ class DisposedModelInfo {
|
|||
}
|
||||
}
|
||||
let ModelService = class ModelService extends Disposable {
|
||||
constructor(_configurationService, _resourcePropertiesService, _themeService, _logService, _undoRedoService, _languageService, _languageConfigurationService, _languageFeatureDebounceService, languageFeaturesService) {
|
||||
constructor(_configurationService, _resourcePropertiesService, _undoRedoService, _languageService, _languageConfigurationService) {
|
||||
super();
|
||||
this._configurationService = _configurationService;
|
||||
this._resourcePropertiesService = _resourcePropertiesService;
|
||||
this._themeService = _themeService;
|
||||
this._logService = _logService;
|
||||
this._undoRedoService = _undoRedoService;
|
||||
this._languageService = _languageService;
|
||||
this._languageConfigurationService = _languageConfigurationService;
|
||||
this._languageFeatureDebounceService = _languageFeatureDebounceService;
|
||||
this._onModelAdded = this._register(new Emitter());
|
||||
this.onModelAdded = this._onModelAdded.event;
|
||||
this._onModelRemoved = this._register(new Emitter());
|
||||
|
|
@ -110,10 +96,8 @@ let ModelService = class ModelService extends Disposable {
|
|||
this._models = {};
|
||||
this._disposedModels = new Map();
|
||||
this._disposedModelsHeapSize = 0;
|
||||
this._semanticStyling = this._register(new SemanticStyling(this._themeService, this._languageService, this._logService));
|
||||
this._register(this._configurationService.onDidChangeConfiguration(e => this._updateModelOptions(e)));
|
||||
this._updateModelOptions(undefined);
|
||||
this._register(new SemanticColoringFeature(this._semanticStyling, this, this._themeService, this._configurationService, this._languageFeatureDebounceService, languageFeaturesService));
|
||||
}
|
||||
static _readModelOptions(config, isForSimpleWidget) {
|
||||
var _a;
|
||||
|
|
@ -365,9 +349,6 @@ let ModelService = class ModelService extends Disposable {
|
|||
}
|
||||
return modelData.model;
|
||||
}
|
||||
getSemanticTokensProviderStyling(provider) {
|
||||
return this._semanticStyling.get(provider);
|
||||
}
|
||||
// --- end IModelService
|
||||
_schemaShouldMaintainUndoRedoElements(resource) {
|
||||
return (resource.scheme === Schemas.file
|
||||
|
|
@ -443,350 +424,8 @@ ModelService.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK = 20 * 1024 * 1024;
|
|||
ModelService = __decorate([
|
||||
__param(0, IConfigurationService),
|
||||
__param(1, ITextResourcePropertiesService),
|
||||
__param(2, IThemeService),
|
||||
__param(3, ILogService),
|
||||
__param(4, IUndoRedoService),
|
||||
__param(5, ILanguageService),
|
||||
__param(6, ILanguageConfigurationService),
|
||||
__param(7, ILanguageFeatureDebounceService),
|
||||
__param(8, ILanguageFeaturesService)
|
||||
__param(2, IUndoRedoService),
|
||||
__param(3, ILanguageService),
|
||||
__param(4, ILanguageConfigurationService)
|
||||
], ModelService);
|
||||
export { ModelService };
|
||||
export const SEMANTIC_HIGHLIGHTING_SETTING_ID = 'editor.semanticHighlighting';
|
||||
export function isSemanticColoringEnabled(model, themeService, configurationService) {
|
||||
var _a;
|
||||
const setting = (_a = configurationService.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID, { overrideIdentifier: model.getLanguageId(), resource: model.uri })) === null || _a === void 0 ? void 0 : _a.enabled;
|
||||
if (typeof setting === 'boolean') {
|
||||
return setting;
|
||||
}
|
||||
return themeService.getColorTheme().semanticHighlighting;
|
||||
}
|
||||
let SemanticColoringFeature = class SemanticColoringFeature extends Disposable {
|
||||
constructor(semanticStyling, modelService, themeService, configurationService, languageFeatureDebounceService, languageFeaturesService) {
|
||||
super();
|
||||
this._watchers = Object.create(null);
|
||||
this._semanticStyling = semanticStyling;
|
||||
const register = (model) => {
|
||||
this._watchers[model.uri.toString()] = new ModelSemanticColoring(model, this._semanticStyling, themeService, languageFeatureDebounceService, languageFeaturesService);
|
||||
};
|
||||
const deregister = (model, modelSemanticColoring) => {
|
||||
modelSemanticColoring.dispose();
|
||||
delete this._watchers[model.uri.toString()];
|
||||
};
|
||||
const handleSettingOrThemeChange = () => {
|
||||
for (const model of modelService.getModels()) {
|
||||
const curr = this._watchers[model.uri.toString()];
|
||||
if (isSemanticColoringEnabled(model, themeService, configurationService)) {
|
||||
if (!curr) {
|
||||
register(model);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (curr) {
|
||||
deregister(model, curr);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
this._register(modelService.onModelAdded((model) => {
|
||||
if (isSemanticColoringEnabled(model, themeService, configurationService)) {
|
||||
register(model);
|
||||
}
|
||||
}));
|
||||
this._register(modelService.onModelRemoved((model) => {
|
||||
const curr = this._watchers[model.uri.toString()];
|
||||
if (curr) {
|
||||
deregister(model, curr);
|
||||
}
|
||||
}));
|
||||
this._register(configurationService.onDidChangeConfiguration(e => {
|
||||
if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {
|
||||
handleSettingOrThemeChange();
|
||||
}
|
||||
}));
|
||||
this._register(themeService.onDidColorThemeChange(handleSettingOrThemeChange));
|
||||
}
|
||||
dispose() {
|
||||
// Dispose all watchers
|
||||
for (const watcher of Object.values(this._watchers)) {
|
||||
watcher.dispose();
|
||||
}
|
||||
super.dispose();
|
||||
}
|
||||
};
|
||||
SemanticColoringFeature = __decorate([
|
||||
__param(1, IModelService),
|
||||
__param(2, IThemeService),
|
||||
__param(3, IConfigurationService),
|
||||
__param(4, ILanguageFeatureDebounceService),
|
||||
__param(5, ILanguageFeaturesService)
|
||||
], SemanticColoringFeature);
|
||||
class SemanticStyling extends Disposable {
|
||||
constructor(_themeService, _languageService, _logService) {
|
||||
super();
|
||||
this._themeService = _themeService;
|
||||
this._languageService = _languageService;
|
||||
this._logService = _logService;
|
||||
this._caches = new WeakMap();
|
||||
this._register(this._themeService.onDidColorThemeChange(() => {
|
||||
this._caches = new WeakMap();
|
||||
}));
|
||||
}
|
||||
get(provider) {
|
||||
if (!this._caches.has(provider)) {
|
||||
this._caches.set(provider, new SemanticTokensProviderStyling(provider.getLegend(), this._themeService, this._languageService, this._logService));
|
||||
}
|
||||
return this._caches.get(provider);
|
||||
}
|
||||
}
|
||||
class SemanticTokensResponse {
|
||||
constructor(provider, resultId, data) {
|
||||
this.provider = provider;
|
||||
this.resultId = resultId;
|
||||
this.data = data;
|
||||
}
|
||||
dispose() {
|
||||
this.provider.releaseDocumentSemanticTokens(this.resultId);
|
||||
}
|
||||
}
|
||||
let ModelSemanticColoring = class ModelSemanticColoring extends Disposable {
|
||||
constructor(model, stylingProvider, themeService, languageFeatureDebounceService, languageFeaturesService) {
|
||||
super();
|
||||
this._isDisposed = false;
|
||||
this._model = model;
|
||||
this._semanticStyling = stylingProvider;
|
||||
this._provider = languageFeaturesService.documentSemanticTokensProvider;
|
||||
this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentSemanticTokens', { min: ModelSemanticColoring.REQUEST_MIN_DELAY, max: ModelSemanticColoring.REQUEST_MAX_DELAY });
|
||||
this._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() => this._fetchDocumentSemanticTokensNow(), ModelSemanticColoring.REQUEST_MIN_DELAY));
|
||||
this._currentDocumentResponse = null;
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
this._documentProvidersChangeListeners = [];
|
||||
this._providersChangedDuringRequest = false;
|
||||
this._register(this._model.onDidChangeContent(() => {
|
||||
if (!this._fetchDocumentSemanticTokens.isScheduled()) {
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}
|
||||
}));
|
||||
this._register(this._model.onDidChangeLanguage(() => {
|
||||
// clear any outstanding state
|
||||
if (this._currentDocumentResponse) {
|
||||
this._currentDocumentResponse.dispose();
|
||||
this._currentDocumentResponse = null;
|
||||
}
|
||||
if (this._currentDocumentRequestCancellationTokenSource) {
|
||||
this._currentDocumentRequestCancellationTokenSource.cancel();
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
}
|
||||
this._setDocumentSemanticTokens(null, null, null, []);
|
||||
this._fetchDocumentSemanticTokens.schedule(0);
|
||||
}));
|
||||
const bindDocumentChangeListeners = () => {
|
||||
dispose(this._documentProvidersChangeListeners);
|
||||
this._documentProvidersChangeListeners = [];
|
||||
for (const provider of this._provider.all(model)) {
|
||||
if (typeof provider.onDidChange === 'function') {
|
||||
this._documentProvidersChangeListeners.push(provider.onDidChange(() => {
|
||||
if (this._currentDocumentRequestCancellationTokenSource) {
|
||||
// there is already a request running,
|
||||
this._providersChangedDuringRequest = true;
|
||||
return;
|
||||
}
|
||||
this._fetchDocumentSemanticTokens.schedule(0);
|
||||
}));
|
||||
}
|
||||
}
|
||||
};
|
||||
bindDocumentChangeListeners();
|
||||
this._register(this._provider.onDidChange(() => {
|
||||
bindDocumentChangeListeners();
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}));
|
||||
this._register(themeService.onDidColorThemeChange(_ => {
|
||||
// clear out existing tokens
|
||||
this._setDocumentSemanticTokens(null, null, null, []);
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}));
|
||||
this._fetchDocumentSemanticTokens.schedule(0);
|
||||
}
|
||||
dispose() {
|
||||
if (this._currentDocumentResponse) {
|
||||
this._currentDocumentResponse.dispose();
|
||||
this._currentDocumentResponse = null;
|
||||
}
|
||||
if (this._currentDocumentRequestCancellationTokenSource) {
|
||||
this._currentDocumentRequestCancellationTokenSource.cancel();
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
}
|
||||
this._setDocumentSemanticTokens(null, null, null, []);
|
||||
this._isDisposed = true;
|
||||
super.dispose();
|
||||
}
|
||||
_fetchDocumentSemanticTokensNow() {
|
||||
if (this._currentDocumentRequestCancellationTokenSource) {
|
||||
// there is already a request running, let it finish...
|
||||
return;
|
||||
}
|
||||
if (!hasDocumentSemanticTokensProvider(this._provider, this._model)) {
|
||||
// there is no provider
|
||||
if (this._currentDocumentResponse) {
|
||||
// there are semantic tokens set
|
||||
this._model.tokenization.setSemanticTokens(null, false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
const cancellationTokenSource = new CancellationTokenSource();
|
||||
const lastProvider = this._currentDocumentResponse ? this._currentDocumentResponse.provider : null;
|
||||
const lastResultId = this._currentDocumentResponse ? this._currentDocumentResponse.resultId || null : null;
|
||||
const request = getDocumentSemanticTokens(this._provider, this._model, lastProvider, lastResultId, cancellationTokenSource.token);
|
||||
this._currentDocumentRequestCancellationTokenSource = cancellationTokenSource;
|
||||
this._providersChangedDuringRequest = false;
|
||||
const pendingChanges = [];
|
||||
const contentChangeListener = this._model.onDidChangeContent((e) => {
|
||||
pendingChanges.push(e);
|
||||
});
|
||||
const sw = new StopWatch(false);
|
||||
request.then((res) => {
|
||||
this._debounceInformation.update(this._model, sw.elapsed());
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
contentChangeListener.dispose();
|
||||
if (!res) {
|
||||
this._setDocumentSemanticTokens(null, null, null, pendingChanges);
|
||||
}
|
||||
else {
|
||||
const { provider, tokens } = res;
|
||||
const styling = this._semanticStyling.get(provider);
|
||||
this._setDocumentSemanticTokens(provider, tokens || null, styling, pendingChanges);
|
||||
}
|
||||
}, (err) => {
|
||||
const isExpectedError = err && (errors.isCancellationError(err) || (typeof err.message === 'string' && err.message.indexOf('busy') !== -1));
|
||||
if (!isExpectedError) {
|
||||
errors.onUnexpectedError(err);
|
||||
}
|
||||
// Semantic tokens eats up all errors and considers errors to mean that the result is temporarily not available
|
||||
// The API does not have a special error kind to express this...
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
contentChangeListener.dispose();
|
||||
if (pendingChanges.length > 0 || this._providersChangedDuringRequest) {
|
||||
// More changes occurred while the request was running
|
||||
if (!this._fetchDocumentSemanticTokens.isScheduled()) {
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
static _copy(src, srcOffset, dest, destOffset, length) {
|
||||
// protect against overflows
|
||||
length = Math.min(length, dest.length - destOffset, src.length - srcOffset);
|
||||
for (let i = 0; i < length; i++) {
|
||||
dest[destOffset + i] = src[srcOffset + i];
|
||||
}
|
||||
}
|
||||
_setDocumentSemanticTokens(provider, tokens, styling, pendingChanges) {
|
||||
const currentResponse = this._currentDocumentResponse;
|
||||
const rescheduleIfNeeded = () => {
|
||||
if ((pendingChanges.length > 0 || this._providersChangedDuringRequest) && !this._fetchDocumentSemanticTokens.isScheduled()) {
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}
|
||||
};
|
||||
if (this._currentDocumentResponse) {
|
||||
this._currentDocumentResponse.dispose();
|
||||
this._currentDocumentResponse = null;
|
||||
}
|
||||
if (this._isDisposed) {
|
||||
// disposed!
|
||||
if (provider && tokens) {
|
||||
provider.releaseDocumentSemanticTokens(tokens.resultId);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!provider || !styling) {
|
||||
this._model.tokenization.setSemanticTokens(null, false);
|
||||
return;
|
||||
}
|
||||
if (!tokens) {
|
||||
this._model.tokenization.setSemanticTokens(null, true);
|
||||
rescheduleIfNeeded();
|
||||
return;
|
||||
}
|
||||
if (isSemanticTokensEdits(tokens)) {
|
||||
if (!currentResponse) {
|
||||
// not possible!
|
||||
this._model.tokenization.setSemanticTokens(null, true);
|
||||
return;
|
||||
}
|
||||
if (tokens.edits.length === 0) {
|
||||
// nothing to do!
|
||||
tokens = {
|
||||
resultId: tokens.resultId,
|
||||
data: currentResponse.data
|
||||
};
|
||||
}
|
||||
else {
|
||||
let deltaLength = 0;
|
||||
for (const edit of tokens.edits) {
|
||||
deltaLength += (edit.data ? edit.data.length : 0) - edit.deleteCount;
|
||||
}
|
||||
const srcData = currentResponse.data;
|
||||
const destData = new Uint32Array(srcData.length + deltaLength);
|
||||
let srcLastStart = srcData.length;
|
||||
let destLastStart = destData.length;
|
||||
for (let i = tokens.edits.length - 1; i >= 0; i--) {
|
||||
const edit = tokens.edits[i];
|
||||
if (edit.start > srcData.length) {
|
||||
styling.warnInvalidEditStart(currentResponse.resultId, tokens.resultId, i, edit.start, srcData.length);
|
||||
// The edits are invalid and there's no way to recover
|
||||
this._model.tokenization.setSemanticTokens(null, true);
|
||||
return;
|
||||
}
|
||||
const copyCount = srcLastStart - (edit.start + edit.deleteCount);
|
||||
if (copyCount > 0) {
|
||||
ModelSemanticColoring._copy(srcData, srcLastStart - copyCount, destData, destLastStart - copyCount, copyCount);
|
||||
destLastStart -= copyCount;
|
||||
}
|
||||
if (edit.data) {
|
||||
ModelSemanticColoring._copy(edit.data, 0, destData, destLastStart - edit.data.length, edit.data.length);
|
||||
destLastStart -= edit.data.length;
|
||||
}
|
||||
srcLastStart = edit.start;
|
||||
}
|
||||
if (srcLastStart > 0) {
|
||||
ModelSemanticColoring._copy(srcData, 0, destData, 0, srcLastStart);
|
||||
}
|
||||
tokens = {
|
||||
resultId: tokens.resultId,
|
||||
data: destData
|
||||
};
|
||||
}
|
||||
}
|
||||
if (isSemanticTokens(tokens)) {
|
||||
this._currentDocumentResponse = new SemanticTokensResponse(provider, tokens.resultId, tokens.data);
|
||||
const result = toMultilineTokens2(tokens, styling, this._model.getLanguageId());
|
||||
// Adjust incoming semantic tokens
|
||||
if (pendingChanges.length > 0) {
|
||||
// More changes occurred while the request was running
|
||||
// We need to:
|
||||
// 1. Adjust incoming semantic tokens
|
||||
// 2. Request them again
|
||||
for (const change of pendingChanges) {
|
||||
for (const area of result) {
|
||||
for (const singleChange of change.changes) {
|
||||
area.applyEdit(singleChange.range, singleChange.text);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this._model.tokenization.setSemanticTokens(result, true);
|
||||
}
|
||||
else {
|
||||
this._model.tokenization.setSemanticTokens(null, true);
|
||||
}
|
||||
rescheduleIfNeeded();
|
||||
}
|
||||
};
|
||||
ModelSemanticColoring.REQUEST_MIN_DELAY = 300;
|
||||
ModelSemanticColoring.REQUEST_MAX_DELAY = 2000;
|
||||
ModelSemanticColoring = __decorate([
|
||||
__param(2, IThemeService),
|
||||
__param(3, ILanguageFeatureDebounceService),
|
||||
__param(4, ILanguageFeaturesService)
|
||||
], ModelSemanticColoring);
|
||||
|
|
|
|||
6
node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensStyling.js
generated
vendored
Normal file
6
node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensStyling.js
generated
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
import { createDecorator } from '../../../platform/instantiation/common/instantiation.js';
|
||||
export const ISemanticTokensStylingService = createDecorator('semanticTokensStylingService');
|
||||
45
node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensStylingService.js
generated
vendored
Normal file
45
node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensStylingService.js
generated
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
import { Disposable } from '../../../base/common/lifecycle.js';
|
||||
import { ILanguageService } from '../languages/language.js';
|
||||
import { IThemeService } from '../../../platform/theme/common/themeService.js';
|
||||
import { ILogService } from '../../../platform/log/common/log.js';
|
||||
import { SemanticTokensProviderStyling } from './semanticTokensProviderStyling.js';
|
||||
import { ISemanticTokensStylingService } from './semanticTokensStyling.js';
|
||||
import { registerSingleton } from '../../../platform/instantiation/common/extensions.js';
|
||||
let SemanticTokensStylingService = class SemanticTokensStylingService extends Disposable {
|
||||
constructor(_themeService, _logService, _languageService) {
|
||||
super();
|
||||
this._themeService = _themeService;
|
||||
this._logService = _logService;
|
||||
this._languageService = _languageService;
|
||||
this._caches = new WeakMap();
|
||||
this._register(this._themeService.onDidColorThemeChange(() => {
|
||||
this._caches = new WeakMap();
|
||||
}));
|
||||
}
|
||||
getStyling(provider) {
|
||||
if (!this._caches.has(provider)) {
|
||||
this._caches.set(provider, new SemanticTokensProviderStyling(provider.getLegend(), this._themeService, this._languageService, this._logService));
|
||||
}
|
||||
return this._caches.get(provider);
|
||||
}
|
||||
};
|
||||
SemanticTokensStylingService = __decorate([
|
||||
__param(0, IThemeService),
|
||||
__param(1, ILogService),
|
||||
__param(2, ILanguageService)
|
||||
], SemanticTokensStylingService);
|
||||
export { SemanticTokensStylingService };
|
||||
registerSingleton(ISemanticTokensStylingService, SemanticTokensStylingService, 1 /* InstantiationType.Delayed */);
|
||||
4
node_modules/monaco-editor-core/esm/vs/editor/common/tokenizationTextModelPart.js
generated
vendored
4
node_modules/monaco-editor-core/esm/vs/editor/common/tokenizationTextModelPart.js
generated
vendored
|
|
@ -1 +1,5 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
export {};
|
||||
|
|
|
|||
3
node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousTokensStore.js
generated
vendored
3
node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousTokensStore.js
generated
vendored
|
|
@ -20,6 +20,9 @@ export class ContiguousTokensStore {
|
|||
this._lineTokens = [];
|
||||
this._len = 0;
|
||||
}
|
||||
get hasTokens() {
|
||||
return this._lineTokens.length > 0;
|
||||
}
|
||||
getTokens(topLevelLanguageId, lineIndex, lineText) {
|
||||
let rawLineTokens = null;
|
||||
if (lineIndex < this._len) {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||
import { createCancelablePromise, TimeoutTimer } from '../../../../base/common/async.js';
|
||||
import { RGBA } from '../../../../base/common/color.js';
|
||||
import { onUnexpectedError } from '../../../../base/common/errors.js';
|
||||
import { Emitter } from '../../../../base/common/event.js';
|
||||
import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
|
||||
import { StopWatch } from '../../../../base/common/stopwatch.js';
|
||||
import { noBreakWhitespace } from '../../../../base/common/strings.js';
|
||||
|
|
@ -46,6 +47,7 @@ let ColorDetector = class ColorDetector extends Disposable {
|
|||
this._colorDatas = new Map();
|
||||
this._colorDecoratorIds = this._editor.createDecorationsCollection();
|
||||
this._ruleFactory = new DynamicCssRules(this._editor);
|
||||
this._decoratorLimitReporter = new DecoratorLimitReporter();
|
||||
this._colorDecorationClassRefs = this._register(new DisposableStore());
|
||||
this._debounceInformation = languageFeatureDebounceService.for(_languageFeaturesService.colorProvider, 'Document Colors', { min: ColorDetector.RECOMPUTE_TIME });
|
||||
this._register(_editor.onDidChangeModel(() => {
|
||||
|
|
@ -88,9 +90,6 @@ let ColorDetector = class ColorDetector extends Disposable {
|
|||
}
|
||||
return this._editor.getOption(17 /* EditorOption.colorDecorators */);
|
||||
}
|
||||
getDecoratorLimit() {
|
||||
return this._editor.getOption(18 /* EditorOption.colorDecoratorsLimit */);
|
||||
}
|
||||
static get(editor) {
|
||||
return editor.getContribution(this.ID);
|
||||
}
|
||||
|
|
@ -166,7 +165,8 @@ let ColorDetector = class ColorDetector extends Disposable {
|
|||
updateColorDecorators(colorData) {
|
||||
this._colorDecorationClassRefs.clear();
|
||||
const decorations = [];
|
||||
for (let i = 0; i < colorData.length && decorations.length < this.getDecoratorLimit(); i++) {
|
||||
const limit = this._editor.getOption(18 /* EditorOption.colorDecoratorsLimit */);
|
||||
for (let i = 0; i < colorData.length && decorations.length < limit; i++) {
|
||||
const { red, green, blue, alpha } = colorData[i].colorInfo.color;
|
||||
const rgba = new RGBA(Math.round(red * 255), Math.round(green * 255), Math.round(blue * 255), alpha);
|
||||
const color = `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;
|
||||
|
|
@ -191,6 +191,8 @@ let ColorDetector = class ColorDetector extends Disposable {
|
|||
}
|
||||
});
|
||||
}
|
||||
const limited = limit < colorData.length ? limit : false;
|
||||
this._decoratorLimitReporter.update(colorData.length, limited);
|
||||
this._colorDecoratorIds.set(decorations);
|
||||
}
|
||||
removeAllDecorations() {
|
||||
|
|
@ -224,4 +226,18 @@ ColorDetector = __decorate([
|
|||
__param(3, ILanguageFeatureDebounceService)
|
||||
], ColorDetector);
|
||||
export { ColorDetector };
|
||||
export class DecoratorLimitReporter {
|
||||
constructor() {
|
||||
this._onDidChange = new Emitter();
|
||||
this._computed = 0;
|
||||
this._limited = false;
|
||||
}
|
||||
update(computed, limited) {
|
||||
if (computed !== this._computed || limited !== this._limited) {
|
||||
this._computed = computed;
|
||||
this._limited = limited;
|
||||
this._onDidChange.fire();
|
||||
}
|
||||
}
|
||||
}
|
||||
registerEditorContribution(ColorDetector.ID, ColorDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);
|
||||
|
|
|
|||
46
node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findController.js
generated
vendored
46
node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findController.js
generated
vendored
|
|
@ -24,7 +24,9 @@ import { Delayer } from '../../../../base/common/async.js';
|
|||
import { Disposable } from '../../../../base/common/lifecycle.js';
|
||||
import * as strings from '../../../../base/common/strings.js';
|
||||
import { EditorAction, EditorCommand, MultiEditorAction, registerEditorAction, registerEditorCommand, registerEditorContribution, registerMultiEditorAction } from '../../../browser/editorExtensions.js';
|
||||
import { overviewRulerRangeHighlight } from '../../../common/core/editorColorRegistry.js';
|
||||
import { EditorContextKeys } from '../../../common/editorContextKeys.js';
|
||||
import { OverviewRulerLane } from '../../../common/model.js';
|
||||
import { CONTEXT_FIND_INPUT_FOCUSED, CONTEXT_FIND_WIDGET_VISIBLE, CONTEXT_REPLACE_INPUT_FOCUSED, FindModelBoundToEditorModel, FIND_IDS, ToggleCaseSensitiveKeybinding, TogglePreserveCaseKeybinding, ToggleRegexKeybinding, ToggleSearchScopeKeybinding, ToggleWholeWordKeybinding } from './findModel.js';
|
||||
import { FindOptionsWidget } from './findOptionsWidget.js';
|
||||
import { FindReplaceState } from './findState.js';
|
||||
|
|
@ -38,7 +40,7 @@ import { IKeybindingService } from '../../../../platform/keybinding/common/keybi
|
|||
import { INotificationService } from '../../../../platform/notification/common/notification.js';
|
||||
import { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';
|
||||
import { IStorageService } from '../../../../platform/storage/common/storage.js';
|
||||
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
|
||||
import { IThemeService, themeColorFromId } from '../../../../platform/theme/common/themeService.js';
|
||||
const SEARCH_STRING_MAX_LENGTH = 524288;
|
||||
export function getSelectionSearchString(editor, seedSearchStringFromSelection = 'single', seedSearchStringFromNonEmptySelection = false) {
|
||||
if (!editor.hasModel()) {
|
||||
|
|
@ -649,6 +651,7 @@ export class MoveToMatchFindAction extends EditorAction {
|
|||
alias: 'Go to Match...',
|
||||
precondition: CONTEXT_FIND_WIDGET_VISIBLE
|
||||
});
|
||||
this._highlightDecorations = [];
|
||||
}
|
||||
run(accessor, editor, args) {
|
||||
const controller = CommonFindController.get(editor);
|
||||
|
|
@ -658,15 +661,24 @@ export class MoveToMatchFindAction extends EditorAction {
|
|||
const quickInputService = accessor.get(IQuickInputService);
|
||||
const inputBox = quickInputService.createInputBox();
|
||||
inputBox.placeholder = nls.localize('findMatchAction.inputPlaceHolder', "Type a number to go to a specific match (between 1 and {0})", controller.getState().matchesCount);
|
||||
inputBox.onDidChangeValue(value => {
|
||||
const updatePickerAndEditor = (value) => {
|
||||
const index = parseInt(value);
|
||||
if (!isNaN(index) && index > 0 && index <= controller.getState().matchesCount) {
|
||||
// valid
|
||||
inputBox.validationMessage = undefined;
|
||||
controller.goToMatch(index - 1);
|
||||
const currentMatch = controller.getState().currentMatch;
|
||||
if (currentMatch) {
|
||||
this.addDecorations(editor, currentMatch);
|
||||
}
|
||||
}
|
||||
else {
|
||||
inputBox.validationMessage = nls.localize('findMatchAction.inputValidationMessage', "Please type a number between 1 and {0}", controller.getState().matchesCount);
|
||||
this.clearDecorations(editor);
|
||||
}
|
||||
};
|
||||
inputBox.onDidChangeValue(value => {
|
||||
updatePickerAndEditor(value);
|
||||
});
|
||||
inputBox.onDidAccept(() => {
|
||||
const index = parseInt(inputBox.value);
|
||||
|
|
@ -679,10 +691,40 @@ export class MoveToMatchFindAction extends EditorAction {
|
|||
}
|
||||
});
|
||||
inputBox.onDidHide(() => {
|
||||
this.clearDecorations(editor);
|
||||
inputBox.dispose();
|
||||
});
|
||||
inputBox.show();
|
||||
}
|
||||
clearDecorations(editor) {
|
||||
editor.changeDecorations(changeAccessor => {
|
||||
this._highlightDecorations = changeAccessor.deltaDecorations(this._highlightDecorations, []);
|
||||
});
|
||||
}
|
||||
addDecorations(editor, range) {
|
||||
editor.changeDecorations(changeAccessor => {
|
||||
this._highlightDecorations = changeAccessor.deltaDecorations(this._highlightDecorations, [
|
||||
{
|
||||
range,
|
||||
options: {
|
||||
description: 'find-match-quick-access-range-highlight',
|
||||
className: 'rangeHighlight',
|
||||
isWholeLine: true
|
||||
}
|
||||
},
|
||||
{
|
||||
range,
|
||||
options: {
|
||||
description: 'find-match-quick-access-range-highlight-overview',
|
||||
overviewRuler: {
|
||||
color: themeColorFromId(overviewRulerRangeHighlight),
|
||||
position: OverviewRulerLane.Full
|
||||
}
|
||||
}
|
||||
}
|
||||
]);
|
||||
});
|
||||
}
|
||||
}
|
||||
export class SelectionMatchFindAction extends EditorAction {
|
||||
run(accessor, editor) {
|
||||
|
|
|
|||
103
node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/folding.js
generated
vendored
103
node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/folding.js
generated
vendored
|
|
@ -11,8 +11,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
import { createCancelablePromise, Delayer, RunOnceScheduler } from '../../../../base/common/async.js';
|
||||
import { onUnexpectedError } from '../../../../base/common/errors.js';
|
||||
import { CancellationToken } from '../../../../base/common/cancellation.js';
|
||||
import { illegalArgument, onUnexpectedError } from '../../../../base/common/errors.js';
|
||||
import { KeyChord } from '../../../../base/common/keyCodes.js';
|
||||
import { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';
|
||||
import { escapeRegExpCharacters } from '../../../../base/common/strings.js';
|
||||
|
|
@ -36,19 +46,28 @@ import { ILanguageFeatureDebounceService } from '../../../common/services/langua
|
|||
import { StopWatch } from '../../../../base/common/stopwatch.js';
|
||||
import { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';
|
||||
import { Emitter } from '../../../../base/common/event.js';
|
||||
import { CommandsRegistry } from '../../../../platform/commands/common/commands.js';
|
||||
import { URI } from '../../../../base/common/uri.js';
|
||||
import { IModelService } from '../../../common/services/model.js';
|
||||
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
|
||||
const CONTEXT_FOLDING_ENABLED = new RawContextKey('foldingEnabled', false);
|
||||
let FoldingController = class FoldingController extends Disposable {
|
||||
static get(editor) {
|
||||
return editor.getContribution(FoldingController.ID);
|
||||
}
|
||||
static getFoldingRangeProviders(languageFeaturesService, model) {
|
||||
var _a, _b;
|
||||
const foldingRangeProviders = languageFeaturesService.foldingRangeProvider.ordered(model);
|
||||
return (_b = ((_a = FoldingController._foldingRangeSelector) === null || _a === void 0 ? void 0 : _a.call(FoldingController, foldingRangeProviders, model))) !== null && _b !== void 0 ? _b : foldingRangeProviders;
|
||||
}
|
||||
constructor(editor, contextKeyService, languageConfigurationService, notificationService, languageFeatureDebounceService, languageFeaturesService) {
|
||||
super();
|
||||
this.contextKeyService = contextKeyService;
|
||||
this.languageConfigurationService = languageConfigurationService;
|
||||
this.languageFeaturesService = languageFeaturesService;
|
||||
this.localToDispose = this._register(new DisposableStore());
|
||||
this._onDidChangeFoldingLimit = new Emitter();
|
||||
this.editor = editor;
|
||||
this._foldingLimitReporter = new RangesLimitReporter(editor);
|
||||
const options = this.editor.getOptions();
|
||||
this._isEnabled = options.get(40 /* EditorOption.folding */);
|
||||
this._useFoldingProviders = options.get(41 /* EditorOption.foldingStrategy */) !== 'indentation';
|
||||
|
|
@ -56,17 +75,6 @@ let FoldingController = class FoldingController extends Disposable {
|
|||
this._restoringViewState = false;
|
||||
this._currentModelHasFoldedImports = false;
|
||||
this._foldingImportsByDefault = options.get(43 /* EditorOption.foldingImportsByDefault */);
|
||||
this._foldingLimitReporter = {
|
||||
get limit() {
|
||||
return editor.getOptions().get(44 /* EditorOption.foldingMaximumRegions */);
|
||||
},
|
||||
report: (info) => {
|
||||
if (!this._foldingLimitInfo || (info.limited !== this._foldingLimitInfo.limited)) {
|
||||
this._foldingLimitInfo = info;
|
||||
this._onDidChangeFoldingLimit.fire(info);
|
||||
}
|
||||
}
|
||||
};
|
||||
this.updateDebounceInfo = languageFeatureDebounceService.for(languageFeaturesService.foldingRangeProvider, 'Folding', { min: 200 });
|
||||
this.foldingModel = null;
|
||||
this.hiddenRangeModel = null;
|
||||
|
|
@ -195,15 +203,13 @@ let FoldingController = class FoldingController extends Disposable {
|
|||
this.triggerFoldingModelChanged();
|
||||
}
|
||||
getRangeProvider(editorModel) {
|
||||
var _a, _b;
|
||||
if (this.rangeProvider) {
|
||||
return this.rangeProvider;
|
||||
}
|
||||
const indentRangeProvider = new IndentRangeProvider(editorModel, this.languageConfigurationService, this._foldingLimitReporter);
|
||||
this.rangeProvider = indentRangeProvider; // fallback
|
||||
if (this._useFoldingProviders && this.foldingModel) {
|
||||
const foldingProviders = this.languageFeaturesService.foldingRangeProvider.ordered(this.foldingModel.textModel);
|
||||
const selectedProviders = (_b = ((_a = FoldingController._foldingRangeSelector) === null || _a === void 0 ? void 0 : _a.call(FoldingController, foldingProviders, editorModel))) !== null && _b !== void 0 ? _b : foldingProviders;
|
||||
const selectedProviders = FoldingController.getFoldingRangeProviders(this.languageFeaturesService, editorModel);
|
||||
if (selectedProviders.length > 0) {
|
||||
this.rangeProvider = new SyntaxRangeProvider(editorModel, selectedProviders, () => this.triggerFoldingModelChanged(), this._foldingLimitReporter, indentRangeProvider);
|
||||
}
|
||||
|
|
@ -420,6 +426,24 @@ FoldingController = __decorate([
|
|||
__param(5, ILanguageFeaturesService)
|
||||
], FoldingController);
|
||||
export { FoldingController };
|
||||
export class RangesLimitReporter {
|
||||
constructor(editor) {
|
||||
this.editor = editor;
|
||||
this._onDidChange = new Emitter();
|
||||
this._computed = 0;
|
||||
this._limited = false;
|
||||
}
|
||||
get limit() {
|
||||
return this.editor.getOptions().get(44 /* EditorOption.foldingMaximumRegions */);
|
||||
}
|
||||
update(computed, limited) {
|
||||
if (computed !== this._computed || limited !== this._limited) {
|
||||
this._computed = computed;
|
||||
this._limited = limited;
|
||||
this._onDidChange.fire();
|
||||
}
|
||||
}
|
||||
}
|
||||
class FoldingAction extends EditorAction {
|
||||
runEditorCommand(accessor, editor, args) {
|
||||
const languageConfigurationService = accessor.get(ILanguageConfigurationService);
|
||||
|
|
@ -1030,3 +1054,50 @@ for (let i = 1; i <= 7; i++) {
|
|||
}
|
||||
}));
|
||||
}
|
||||
CommandsRegistry.registerCommand('_executeFoldingRangeProvider', function (accessor, ...args) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const [resource] = args;
|
||||
if (!(resource instanceof URI)) {
|
||||
throw illegalArgument();
|
||||
}
|
||||
const languageFeaturesService = accessor.get(ILanguageFeaturesService);
|
||||
const model = accessor.get(IModelService).getModel(resource);
|
||||
if (!model) {
|
||||
throw illegalArgument();
|
||||
}
|
||||
const configurationService = accessor.get(IConfigurationService);
|
||||
if (!configurationService.getValue('editor.folding', { resource })) {
|
||||
return [];
|
||||
}
|
||||
const languageConfigurationService = accessor.get(ILanguageConfigurationService);
|
||||
const strategy = configurationService.getValue('editor.foldingStrategy', { resource });
|
||||
const foldingLimitReporter = {
|
||||
get limit() {
|
||||
return configurationService.getValue('editor.foldingMaximumRegions', { resource });
|
||||
},
|
||||
update: (computed, limited) => { }
|
||||
};
|
||||
const indentRangeProvider = new IndentRangeProvider(model, languageConfigurationService, foldingLimitReporter);
|
||||
let rangeProvider = indentRangeProvider;
|
||||
if (strategy !== 'indentation') {
|
||||
const providers = FoldingController.getFoldingRangeProviders(languageFeaturesService, model);
|
||||
if (providers.length) {
|
||||
rangeProvider = new SyntaxRangeProvider(model, providers, () => { }, foldingLimitReporter, indentRangeProvider);
|
||||
}
|
||||
}
|
||||
const ranges = yield rangeProvider.compute(CancellationToken.None);
|
||||
const result = [];
|
||||
try {
|
||||
if (ranges) {
|
||||
for (let i = 0; i < ranges.length; i++) {
|
||||
const type = ranges.getType(i);
|
||||
result.push({ start: ranges.getStartLineNumber(i), end: ranges.getEndLineNumber(i), kind: type ? FoldingRangeKind.fromValue(type) : undefined });
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
finally {
|
||||
rangeProvider.dispose();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -118,8 +118,8 @@ export class FoldingModel {
|
|||
const foldRange = this._regions.toFoldRange(i);
|
||||
const decRange = this._textModel.getDecorationRange(this._editorDecorationIds[i]);
|
||||
if (decRange) {
|
||||
if (isCollapsed && (isBlocked(decRange.startLineNumber, decRange.endLineNumber) || decRange.endLineNumber - decRange.startLineNumber !== foldRange.endLineNumber - foldRange.startLineNumber)) {
|
||||
isCollapsed = false; // uncollapse is the range is blocked or there has been lines removed or added
|
||||
if (isCollapsed && isBlocked(decRange.startLineNumber, decRange.endLineNumber)) {
|
||||
isCollapsed = false; // uncollapse is the range is blocked
|
||||
}
|
||||
foldedRanges.push({
|
||||
startLineNumber: decRange.startLineNumber,
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class RangesCollector {
|
|||
toIndentRanges(model) {
|
||||
const limit = this._foldingRangesLimit.limit;
|
||||
if (this._length <= limit) {
|
||||
this._foldingRangesLimit.report({ limited: false, computed: this._length });
|
||||
this._foldingRangesLimit.update(this._length, false);
|
||||
// reverse and create arrays of the exact length
|
||||
const startIndexes = new Uint32Array(this._length);
|
||||
const endIndexes = new Uint32Array(this._length);
|
||||
|
|
@ -56,7 +56,7 @@ class RangesCollector {
|
|||
return new FoldingRegions(startIndexes, endIndexes);
|
||||
}
|
||||
else {
|
||||
this._foldingRangesLimit.report({ limited: limit, computed: this._length });
|
||||
this._foldingRangesLimit.update(this._length, limit);
|
||||
let entries = 0;
|
||||
let maxIndent = this._indentOccurrences.length;
|
||||
for (let i = 0; i < this._indentOccurrences.length; i++) {
|
||||
|
|
@ -89,7 +89,7 @@ class RangesCollector {
|
|||
}
|
||||
const foldingRangesLimitDefault = {
|
||||
limit: MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT,
|
||||
report: () => { }
|
||||
update: () => { }
|
||||
};
|
||||
export function computeRanges(model, offSide, markers, foldingRangesLimit = foldingRangesLimitDefault) {
|
||||
const tabSize = model.getOptions().tabSize;
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ class RangesCollector {
|
|||
toIndentRanges() {
|
||||
const limit = this._foldingRangesLimit.limit;
|
||||
if (this._length <= limit) {
|
||||
this._foldingRangesLimit.report({ limited: false, computed: this._length });
|
||||
this._foldingRangesLimit.update(this._length, false);
|
||||
const startIndexes = new Uint32Array(this._length);
|
||||
const endIndexes = new Uint32Array(this._length);
|
||||
for (let i = 0; i < this._length; i++) {
|
||||
|
|
@ -101,7 +101,7 @@ class RangesCollector {
|
|||
return new FoldingRegions(startIndexes, endIndexes, this._types);
|
||||
}
|
||||
else {
|
||||
this._foldingRangesLimit.report({ limited: limit, computed: this._length });
|
||||
this._foldingRangesLimit.update(this._length, limit);
|
||||
let entries = 0;
|
||||
let maxLevel = this._nestingLevelCounts.length;
|
||||
for (let i = 0; i < this._nestingLevelCounts.length; i++) {
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ let FormatOnType = class FormatOnType {
|
|||
this._update();
|
||||
}
|
||||
}));
|
||||
this._update();
|
||||
}
|
||||
dispose() {
|
||||
this._disposables.dispose();
|
||||
|
|
|
|||
|
|
@ -342,8 +342,8 @@ class HideInlineCompletion extends EditorAction {
|
|||
constructor() {
|
||||
super({
|
||||
id: HideInlineCompletion.ID,
|
||||
label: nls.localize('action.inlineSuggest.acceptNextWord', "Accept Next Word Of Inline Suggestion"),
|
||||
alias: 'Accept Next Word Of Inline Suggestion',
|
||||
label: nls.localize('action.inlineSuggest.hide', "Hide Inline Suggestion"),
|
||||
alias: 'Hide Inline Suggestion',
|
||||
precondition: GhostTextController.inlineSuggestionVisible,
|
||||
kbOpts: {
|
||||
weight: 100,
|
||||
|
|
|
|||
|
|
@ -444,26 +444,44 @@ export class InlineCompletionsSession extends BaseGhostTextWidgetModel {
|
|||
const line = firstPart.lines[0];
|
||||
const langId = this.editor.getModel().getLanguageIdAtPosition(ghostText.lineNumber, 1);
|
||||
const config = this.languageConfigurationService.getLanguageConfiguration(langId);
|
||||
const r = new RegExp(config.wordDefinition, config.wordDefinition.flags.replace('g', ''));
|
||||
const m = line.match(r);
|
||||
const wordRegExp = new RegExp(config.wordDefinition.source, config.wordDefinition.flags.replace('g', ''));
|
||||
const m1 = line.match(wordRegExp);
|
||||
let acceptUntilIndexExclusive = 0;
|
||||
if (m && m.index !== undefined) {
|
||||
if (m.index === 0) {
|
||||
acceptUntilIndexExclusive = m[0].length;
|
||||
if (m1 && m1.index !== undefined) {
|
||||
if (m1.index === 0) {
|
||||
acceptUntilIndexExclusive = m1[0].length;
|
||||
}
|
||||
else {
|
||||
acceptUntilIndexExclusive = m.index;
|
||||
acceptUntilIndexExclusive = m1.index;
|
||||
}
|
||||
}
|
||||
else {
|
||||
acceptUntilIndexExclusive = line.length;
|
||||
}
|
||||
const wsRegExp = /\s/g;
|
||||
let m2 = wsRegExp.exec(line);
|
||||
if (m2 && m2.index === 0) {
|
||||
m2 = wsRegExp.exec(line);
|
||||
}
|
||||
if (m2 && m2.index !== undefined) {
|
||||
if (m2.index < acceptUntilIndexExclusive) {
|
||||
acceptUntilIndexExclusive = m2.index;
|
||||
}
|
||||
}
|
||||
const partialText = line.substring(0, acceptUntilIndexExclusive);
|
||||
this.editor.pushUndoStop();
|
||||
this.editor.executeEdits('inlineSuggestion.accept', [
|
||||
EditOperation.replace(Range.fromPositions(position), partialText),
|
||||
]);
|
||||
this.editor.setPosition(position.delta(0, partialText.length));
|
||||
if (completion.sourceProvider.handlePartialAccept) {
|
||||
const acceptedRange = Range.fromPositions(completion.range.getStartPosition(), position.delta(0, acceptUntilIndexExclusive));
|
||||
// This assumes that the inline completion and the model use the same EOL style.
|
||||
// This is not a problem at the moment, because partial acceptance only works for the first line of an
|
||||
// inline completion.
|
||||
const text = this.editor.getModel().getValueInRange(acceptedRange);
|
||||
completion.sourceProvider.handlePartialAccept(completion.sourceInlineCompletions, completion.sourceInlineCompletion, text.length);
|
||||
}
|
||||
}
|
||||
commitCurrentCompletion() {
|
||||
const ghostText = this.ghostText;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|||
};
|
||||
import { h } from '../../../../base/browser/dom.js';
|
||||
import { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';
|
||||
import { KeybindingLabel } from '../../../../base/browser/ui/keybindingLabel/keybindingLabel.js';
|
||||
import { KeybindingLabel, unthemedKeybindingLabelOptions } from '../../../../base/browser/ui/keybindingLabel/keybindingLabel.js';
|
||||
import { Action, Separator } from '../../../../base/common/actions.js';
|
||||
import { RunOnceScheduler } from '../../../../base/common/async.js';
|
||||
import { Codicon } from '../../../../base/common/codicons.js';
|
||||
|
|
@ -161,7 +161,7 @@ class StatusBarViewItem extends MenuEntryActionViewItem {
|
|||
}
|
||||
if (this.label) {
|
||||
const div = h('div.keybinding').root;
|
||||
const k = new KeybindingLabel(div, OS, { disableTitle: true });
|
||||
const k = new KeybindingLabel(div, OS, Object.assign({ disableTitle: true }, unthemedKeybindingLabelOptions));
|
||||
k.set(kb);
|
||||
this.label.textContent = this._action.label;
|
||||
this.label.appendChild(div);
|
||||
|
|
|
|||
14
node_modules/monaco-editor-core/esm/vs/editor/contrib/peekView/browser/peekView.js
generated
vendored
14
node_modules/monaco-editor-core/esm/vs/editor/contrib/peekView/browser/peekView.js
generated
vendored
|
|
@ -135,17 +135,17 @@ let PeekViewWidget = class PeekViewWidget extends ZoneWidget {
|
|||
container.appendChild(this._bodyElement);
|
||||
}
|
||||
_fillHead(container, noCloseAction) {
|
||||
const titleElement = dom.$('.peekview-title');
|
||||
this._titleElement = dom.$('.peekview-title');
|
||||
if (this.options.supportOnTitleClick) {
|
||||
titleElement.classList.add('clickable');
|
||||
dom.addStandardDisposableListener(titleElement, 'click', event => this._onTitleClick(event));
|
||||
this._titleElement.classList.add('clickable');
|
||||
dom.addStandardDisposableListener(this._titleElement, 'click', event => this._onTitleClick(event));
|
||||
}
|
||||
dom.append(this._headElement, titleElement);
|
||||
this._fillTitleIcon(titleElement);
|
||||
dom.append(this._headElement, this._titleElement);
|
||||
this._fillTitleIcon(this._titleElement);
|
||||
this._primaryHeading = dom.$('span.filename');
|
||||
this._secondaryHeading = dom.$('span.dirname');
|
||||
this._metaHeading = dom.$('span.meta');
|
||||
dom.append(titleElement, this._primaryHeading, this._secondaryHeading, this._metaHeading);
|
||||
dom.append(this._titleElement, this._primaryHeading, this._secondaryHeading, this._metaHeading);
|
||||
const actionsContainer = dom.$('.peekview-actions');
|
||||
dom.append(this._headElement, actionsContainer);
|
||||
const actionBarOptions = this._getActionBarOptions();
|
||||
|
|
@ -230,7 +230,7 @@ export const peekViewResultsSelectionBackground = registerColor('peekViewResult.
|
|||
export const peekViewResultsSelectionForeground = registerColor('peekViewResult.selectionForeground', { dark: Color.white, light: '#6C6C6C', hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewResultsSelectionForeground', 'Foreground color of the selected entry in the peek view result list.'));
|
||||
export const peekViewEditorBackground = registerColor('peekViewEditor.background', { dark: '#001F33', light: '#F2F8FC', hcDark: Color.black, hcLight: Color.white }, nls.localize('peekViewEditorBackground', 'Background color of the peek view editor.'));
|
||||
export const peekViewEditorGutterBackground = registerColor('peekViewEditorGutter.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, nls.localize('peekViewEditorGutterBackground', 'Background color of the gutter in the peek view editor.'));
|
||||
export const peekViewEditorStickScrollBackground = registerColor('peekViewEditorStickScroll.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, nls.localize('peekViewEditorStickScrollBackground', 'Background color of sticky scroll in the peek view editor.'));
|
||||
export const peekViewEditorStickyScrollBackground = registerColor('peekViewEditorStickyScroll.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, nls.localize('peekViewEditorStickScrollBackground', 'Background color of sticky scroll in the peek view editor.'));
|
||||
export const peekViewResultsMatchHighlight = registerColor('peekViewResult.matchHighlightBackground', { dark: '#ea5c004d', light: '#ea5c004d', hcDark: null, hcLight: null }, nls.localize('peekViewResultsMatchHighlight', 'Match highlight color in the peek view result list.'));
|
||||
export const peekViewEditorMatchHighlight = registerColor('peekViewEditor.matchHighlightBackground', { dark: '#ff8f0099', light: '#f5d802de', hcDark: null, hcLight: null }, nls.localize('peekViewEditorMatchHighlight', 'Match highlight color in the peek view editor.'));
|
||||
export const peekViewEditorMatchHighlightBorder = registerColor('peekViewEditor.matchHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('peekViewEditorMatchHighlightBorder', 'Match highlight border in the peek view editor.'));
|
||||
|
|
|
|||
342
node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js
generated
vendored
Normal file
342
node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js
generated
vendored
Normal file
|
|
@ -0,0 +1,342 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
||||
return function (target, key) { decorator(target, key, paramIndex); }
|
||||
};
|
||||
import { Disposable, dispose } from '../../../../base/common/lifecycle.js';
|
||||
import * as errors from '../../../../base/common/errors.js';
|
||||
import { IModelService } from '../../../common/services/model.js';
|
||||
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
|
||||
import { RunOnceScheduler } from '../../../../base/common/async.js';
|
||||
import { CancellationTokenSource } from '../../../../base/common/cancellation.js';
|
||||
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
|
||||
import { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';
|
||||
import { getDocumentSemanticTokens, hasDocumentSemanticTokensProvider, isSemanticTokens, isSemanticTokensEdits } from '../common/getSemanticTokens.js';
|
||||
import { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';
|
||||
import { StopWatch } from '../../../../base/common/stopwatch.js';
|
||||
import { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';
|
||||
import { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';
|
||||
import { registerEditorFeature } from '../../../common/editorFeatures.js';
|
||||
import { SEMANTIC_HIGHLIGHTING_SETTING_ID, isSemanticColoringEnabled } from '../common/semanticTokensConfig.js';
|
||||
let DocumentSemanticTokensFeature = class DocumentSemanticTokensFeature extends Disposable {
|
||||
constructor(semanticTokensStylingService, modelService, themeService, configurationService, languageFeatureDebounceService, languageFeaturesService) {
|
||||
super();
|
||||
this._watchers = Object.create(null);
|
||||
const register = (model) => {
|
||||
this._watchers[model.uri.toString()] = new ModelSemanticColoring(model, semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService);
|
||||
};
|
||||
const deregister = (model, modelSemanticColoring) => {
|
||||
modelSemanticColoring.dispose();
|
||||
delete this._watchers[model.uri.toString()];
|
||||
};
|
||||
const handleSettingOrThemeChange = () => {
|
||||
for (const model of modelService.getModels()) {
|
||||
const curr = this._watchers[model.uri.toString()];
|
||||
if (isSemanticColoringEnabled(model, themeService, configurationService)) {
|
||||
if (!curr) {
|
||||
register(model);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (curr) {
|
||||
deregister(model, curr);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
this._register(modelService.onModelAdded((model) => {
|
||||
if (isSemanticColoringEnabled(model, themeService, configurationService)) {
|
||||
register(model);
|
||||
}
|
||||
}));
|
||||
this._register(modelService.onModelRemoved((model) => {
|
||||
const curr = this._watchers[model.uri.toString()];
|
||||
if (curr) {
|
||||
deregister(model, curr);
|
||||
}
|
||||
}));
|
||||
this._register(configurationService.onDidChangeConfiguration(e => {
|
||||
if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {
|
||||
handleSettingOrThemeChange();
|
||||
}
|
||||
}));
|
||||
this._register(themeService.onDidColorThemeChange(handleSettingOrThemeChange));
|
||||
}
|
||||
dispose() {
|
||||
// Dispose all watchers
|
||||
for (const watcher of Object.values(this._watchers)) {
|
||||
watcher.dispose();
|
||||
}
|
||||
super.dispose();
|
||||
}
|
||||
};
|
||||
DocumentSemanticTokensFeature = __decorate([
|
||||
__param(0, ISemanticTokensStylingService),
|
||||
__param(1, IModelService),
|
||||
__param(2, IThemeService),
|
||||
__param(3, IConfigurationService),
|
||||
__param(4, ILanguageFeatureDebounceService),
|
||||
__param(5, ILanguageFeaturesService)
|
||||
], DocumentSemanticTokensFeature);
|
||||
export { DocumentSemanticTokensFeature };
|
||||
let ModelSemanticColoring = class ModelSemanticColoring extends Disposable {
|
||||
constructor(model, _semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService) {
|
||||
super();
|
||||
this._semanticTokensStylingService = _semanticTokensStylingService;
|
||||
this._isDisposed = false;
|
||||
this._model = model;
|
||||
this._provider = languageFeaturesService.documentSemanticTokensProvider;
|
||||
this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentSemanticTokens', { min: ModelSemanticColoring.REQUEST_MIN_DELAY, max: ModelSemanticColoring.REQUEST_MAX_DELAY });
|
||||
this._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() => this._fetchDocumentSemanticTokensNow(), ModelSemanticColoring.REQUEST_MIN_DELAY));
|
||||
this._currentDocumentResponse = null;
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
this._documentProvidersChangeListeners = [];
|
||||
this._providersChangedDuringRequest = false;
|
||||
this._register(this._model.onDidChangeContent(() => {
|
||||
if (!this._fetchDocumentSemanticTokens.isScheduled()) {
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}
|
||||
}));
|
||||
this._register(this._model.onDidChangeLanguage(() => {
|
||||
// clear any outstanding state
|
||||
if (this._currentDocumentResponse) {
|
||||
this._currentDocumentResponse.dispose();
|
||||
this._currentDocumentResponse = null;
|
||||
}
|
||||
if (this._currentDocumentRequestCancellationTokenSource) {
|
||||
this._currentDocumentRequestCancellationTokenSource.cancel();
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
}
|
||||
this._setDocumentSemanticTokens(null, null, null, []);
|
||||
this._fetchDocumentSemanticTokens.schedule(0);
|
||||
}));
|
||||
const bindDocumentChangeListeners = () => {
|
||||
dispose(this._documentProvidersChangeListeners);
|
||||
this._documentProvidersChangeListeners = [];
|
||||
for (const provider of this._provider.all(model)) {
|
||||
if (typeof provider.onDidChange === 'function') {
|
||||
this._documentProvidersChangeListeners.push(provider.onDidChange(() => {
|
||||
if (this._currentDocumentRequestCancellationTokenSource) {
|
||||
// there is already a request running,
|
||||
this._providersChangedDuringRequest = true;
|
||||
return;
|
||||
}
|
||||
this._fetchDocumentSemanticTokens.schedule(0);
|
||||
}));
|
||||
}
|
||||
}
|
||||
};
|
||||
bindDocumentChangeListeners();
|
||||
this._register(this._provider.onDidChange(() => {
|
||||
bindDocumentChangeListeners();
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}));
|
||||
this._register(themeService.onDidColorThemeChange(_ => {
|
||||
// clear out existing tokens
|
||||
this._setDocumentSemanticTokens(null, null, null, []);
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}));
|
||||
this._fetchDocumentSemanticTokens.schedule(0);
|
||||
}
|
||||
dispose() {
|
||||
if (this._currentDocumentResponse) {
|
||||
this._currentDocumentResponse.dispose();
|
||||
this._currentDocumentResponse = null;
|
||||
}
|
||||
if (this._currentDocumentRequestCancellationTokenSource) {
|
||||
this._currentDocumentRequestCancellationTokenSource.cancel();
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
}
|
||||
this._setDocumentSemanticTokens(null, null, null, []);
|
||||
this._isDisposed = true;
|
||||
super.dispose();
|
||||
}
|
||||
_fetchDocumentSemanticTokensNow() {
|
||||
if (this._currentDocumentRequestCancellationTokenSource) {
|
||||
// there is already a request running, let it finish...
|
||||
return;
|
||||
}
|
||||
if (!hasDocumentSemanticTokensProvider(this._provider, this._model)) {
|
||||
// there is no provider
|
||||
if (this._currentDocumentResponse) {
|
||||
// there are semantic tokens set
|
||||
this._model.tokenization.setSemanticTokens(null, false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
const cancellationTokenSource = new CancellationTokenSource();
|
||||
const lastProvider = this._currentDocumentResponse ? this._currentDocumentResponse.provider : null;
|
||||
const lastResultId = this._currentDocumentResponse ? this._currentDocumentResponse.resultId || null : null;
|
||||
const request = getDocumentSemanticTokens(this._provider, this._model, lastProvider, lastResultId, cancellationTokenSource.token);
|
||||
this._currentDocumentRequestCancellationTokenSource = cancellationTokenSource;
|
||||
this._providersChangedDuringRequest = false;
|
||||
const pendingChanges = [];
|
||||
const contentChangeListener = this._model.onDidChangeContent((e) => {
|
||||
pendingChanges.push(e);
|
||||
});
|
||||
const sw = new StopWatch(false);
|
||||
request.then((res) => {
|
||||
this._debounceInformation.update(this._model, sw.elapsed());
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
contentChangeListener.dispose();
|
||||
if (!res) {
|
||||
this._setDocumentSemanticTokens(null, null, null, pendingChanges);
|
||||
}
|
||||
else {
|
||||
const { provider, tokens } = res;
|
||||
const styling = this._semanticTokensStylingService.getStyling(provider);
|
||||
this._setDocumentSemanticTokens(provider, tokens || null, styling, pendingChanges);
|
||||
}
|
||||
}, (err) => {
|
||||
const isExpectedError = err && (errors.isCancellationError(err) || (typeof err.message === 'string' && err.message.indexOf('busy') !== -1));
|
||||
if (!isExpectedError) {
|
||||
errors.onUnexpectedError(err);
|
||||
}
|
||||
// Semantic tokens eats up all errors and considers errors to mean that the result is temporarily not available
|
||||
// The API does not have a special error kind to express this...
|
||||
this._currentDocumentRequestCancellationTokenSource = null;
|
||||
contentChangeListener.dispose();
|
||||
if (pendingChanges.length > 0 || this._providersChangedDuringRequest) {
|
||||
// More changes occurred while the request was running
|
||||
if (!this._fetchDocumentSemanticTokens.isScheduled()) {
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
static _copy(src, srcOffset, dest, destOffset, length) {
|
||||
// protect against overflows
|
||||
length = Math.min(length, dest.length - destOffset, src.length - srcOffset);
|
||||
for (let i = 0; i < length; i++) {
|
||||
dest[destOffset + i] = src[srcOffset + i];
|
||||
}
|
||||
}
|
||||
_setDocumentSemanticTokens(provider, tokens, styling, pendingChanges) {
|
||||
const currentResponse = this._currentDocumentResponse;
|
||||
const rescheduleIfNeeded = () => {
|
||||
if ((pendingChanges.length > 0 || this._providersChangedDuringRequest) && !this._fetchDocumentSemanticTokens.isScheduled()) {
|
||||
this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));
|
||||
}
|
||||
};
|
||||
if (this._currentDocumentResponse) {
|
||||
this._currentDocumentResponse.dispose();
|
||||
this._currentDocumentResponse = null;
|
||||
}
|
||||
if (this._isDisposed) {
|
||||
// disposed!
|
||||
if (provider && tokens) {
|
||||
provider.releaseDocumentSemanticTokens(tokens.resultId);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!provider || !styling) {
|
||||
this._model.tokenization.setSemanticTokens(null, false);
|
||||
return;
|
||||
}
|
||||
if (!tokens) {
|
||||
this._model.tokenization.setSemanticTokens(null, true);
|
||||
rescheduleIfNeeded();
|
||||
return;
|
||||
}
|
||||
if (isSemanticTokensEdits(tokens)) {
|
||||
if (!currentResponse) {
|
||||
// not possible!
|
||||
this._model.tokenization.setSemanticTokens(null, true);
|
||||
return;
|
||||
}
|
||||
if (tokens.edits.length === 0) {
|
||||
// nothing to do!
|
||||
tokens = {
|
||||
resultId: tokens.resultId,
|
||||
data: currentResponse.data
|
||||
};
|
||||
}
|
||||
else {
|
||||
let deltaLength = 0;
|
||||
for (const edit of tokens.edits) {
|
||||
deltaLength += (edit.data ? edit.data.length : 0) - edit.deleteCount;
|
||||
}
|
||||
const srcData = currentResponse.data;
|
||||
const destData = new Uint32Array(srcData.length + deltaLength);
|
||||
let srcLastStart = srcData.length;
|
||||
let destLastStart = destData.length;
|
||||
for (let i = tokens.edits.length - 1; i >= 0; i--) {
|
||||
const edit = tokens.edits[i];
|
||||
if (edit.start > srcData.length) {
|
||||
styling.warnInvalidEditStart(currentResponse.resultId, tokens.resultId, i, edit.start, srcData.length);
|
||||
// The edits are invalid and there's no way to recover
|
||||
this._model.tokenization.setSemanticTokens(null, true);
|
||||
return;
|
||||
}
|
||||
const copyCount = srcLastStart - (edit.start + edit.deleteCount);
|
||||
if (copyCount > 0) {
|
||||
ModelSemanticColoring._copy(srcData, srcLastStart - copyCount, destData, destLastStart - copyCount, copyCount);
|
||||
destLastStart -= copyCount;
|
||||
}
|
||||
if (edit.data) {
|
||||
ModelSemanticColoring._copy(edit.data, 0, destData, destLastStart - edit.data.length, edit.data.length);
|
||||
destLastStart -= edit.data.length;
|
||||
}
|
||||
srcLastStart = edit.start;
|
||||
}
|
||||
if (srcLastStart > 0) {
|
||||
ModelSemanticColoring._copy(srcData, 0, destData, 0, srcLastStart);
|
||||
}
|
||||
tokens = {
|
||||
resultId: tokens.resultId,
|
||||
data: destData
|
||||
};
|
||||
}
|
||||
}
|
||||
if (isSemanticTokens(tokens)) {
|
||||
this._currentDocumentResponse = new SemanticTokensResponse(provider, tokens.resultId, tokens.data);
|
||||
const result = toMultilineTokens2(tokens, styling, this._model.getLanguageId());
|
||||
// Adjust incoming semantic tokens
|
||||
if (pendingChanges.length > 0) {
|
||||
// More changes occurred while the request was running
|
||||
// We need to:
|
||||
// 1. Adjust incoming semantic tokens
|
||||
// 2. Request them again
|
||||
for (const change of pendingChanges) {
|
||||
for (const area of result) {
|
||||
for (const singleChange of change.changes) {
|
||||
area.applyEdit(singleChange.range, singleChange.text);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this._model.tokenization.setSemanticTokens(result, true);
|
||||
}
|
||||
else {
|
||||
this._model.tokenization.setSemanticTokens(null, true);
|
||||
}
|
||||
rescheduleIfNeeded();
|
||||
}
|
||||
};
|
||||
ModelSemanticColoring.REQUEST_MIN_DELAY = 300;
|
||||
ModelSemanticColoring.REQUEST_MAX_DELAY = 2000;
|
||||
ModelSemanticColoring = __decorate([
|
||||
__param(1, ISemanticTokensStylingService),
|
||||
__param(2, IThemeService),
|
||||
__param(3, ILanguageFeatureDebounceService),
|
||||
__param(4, ILanguageFeaturesService)
|
||||
], ModelSemanticColoring);
|
||||
class SemanticTokensResponse {
|
||||
constructor(provider, resultId, data) {
|
||||
this.provider = provider;
|
||||
this.resultId = resultId;
|
||||
this.data = data;
|
||||
}
|
||||
dispose() {
|
||||
this.provider.releaseDocumentSemanticTokens(this.resultId);
|
||||
}
|
||||
}
|
||||
registerEditorFeature(DocumentSemanticTokensFeature);
|
||||
|
|
@ -14,19 +14,19 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|||
import { createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';
|
||||
import { Disposable } from '../../../../base/common/lifecycle.js';
|
||||
import { registerEditorContribution } from '../../../browser/editorExtensions.js';
|
||||
import { getDocumentRangeSemanticTokens, hasDocumentRangeSemanticTokensProvider } from '../../../common/services/getSemanticTokens.js';
|
||||
import { IModelService } from '../../../common/services/model.js';
|
||||
import { isSemanticColoringEnabled, SEMANTIC_HIGHLIGHTING_SETTING_ID } from '../../../common/services/modelService.js';
|
||||
import { getDocumentRangeSemanticTokens, hasDocumentRangeSemanticTokensProvider } from '../common/getSemanticTokens.js';
|
||||
import { isSemanticColoringEnabled, SEMANTIC_HIGHLIGHTING_SETTING_ID } from '../common/semanticTokensConfig.js';
|
||||
import { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';
|
||||
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
|
||||
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
|
||||
import { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';
|
||||
import { StopWatch } from '../../../../base/common/stopwatch.js';
|
||||
import { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';
|
||||
import { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';
|
||||
let ViewportSemanticTokensContribution = class ViewportSemanticTokensContribution extends Disposable {
|
||||
constructor(editor, _modelService, _themeService, _configurationService, languageFeatureDebounceService, languageFeaturesService) {
|
||||
constructor(editor, _semanticTokensStylingService, _themeService, _configurationService, languageFeatureDebounceService, languageFeaturesService) {
|
||||
super();
|
||||
this._modelService = _modelService;
|
||||
this._semanticTokensStylingService = _semanticTokensStylingService;
|
||||
this._themeService = _themeService;
|
||||
this._configurationService = _configurationService;
|
||||
this._editor = editor;
|
||||
|
|
@ -113,7 +113,7 @@ let ViewportSemanticTokensContribution = class ViewportSemanticTokensContributio
|
|||
return;
|
||||
}
|
||||
const { provider, tokens: result } = r;
|
||||
const styling = this._modelService.getSemanticTokensProviderStyling(provider);
|
||||
const styling = this._semanticTokensStylingService.getStyling(provider);
|
||||
model.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));
|
||||
}).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));
|
||||
return request;
|
||||
|
|
@ -121,7 +121,7 @@ let ViewportSemanticTokensContribution = class ViewportSemanticTokensContributio
|
|||
};
|
||||
ViewportSemanticTokensContribution.ID = 'editor.contrib.viewportSemanticTokens';
|
||||
ViewportSemanticTokensContribution = __decorate([
|
||||
__param(1, IModelService),
|
||||
__param(1, ISemanticTokensStylingService),
|
||||
__param(2, IThemeService),
|
||||
__param(3, IConfigurationService),
|
||||
__param(4, ILanguageFeatureDebounceService),
|
||||
|
|
@ -11,15 +11,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
import { CancellationToken } from '../../../base/common/cancellation.js';
|
||||
import { onUnexpectedExternalError } from '../../../base/common/errors.js';
|
||||
import { URI } from '../../../base/common/uri.js';
|
||||
import { IModelService } from './model.js';
|
||||
import { CommandsRegistry, ICommandService } from '../../../platform/commands/common/commands.js';
|
||||
import { assertType } from '../../../base/common/types.js';
|
||||
import { encodeSemanticTokensDto } from './semanticTokensDto.js';
|
||||
import { Range } from '../core/range.js';
|
||||
import { ILanguageFeaturesService } from './languageFeatures.js';
|
||||
import { CancellationToken } from '../../../../base/common/cancellation.js';
|
||||
import { onUnexpectedExternalError } from '../../../../base/common/errors.js';
|
||||
import { URI } from '../../../../base/common/uri.js';
|
||||
import { IModelService } from '../../../common/services/model.js';
|
||||
import { CommandsRegistry, ICommandService } from '../../../../platform/commands/common/commands.js';
|
||||
import { assertType } from '../../../../base/common/types.js';
|
||||
import { encodeSemanticTokensDto } from '../../../common/services/semanticTokensDto.js';
|
||||
import { Range } from '../../../common/core/range.js';
|
||||
import { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';
|
||||
export function isSemanticTokens(v) {
|
||||
return v && !!(v.data);
|
||||
}
|
||||
13
node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/common/semanticTokensConfig.js
generated
vendored
Normal file
13
node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/common/semanticTokensConfig.js
generated
vendored
Normal file
|
|
@ -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.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
export const SEMANTIC_HIGHLIGHTING_SETTING_ID = 'editor.semanticHighlighting';
|
||||
export function isSemanticColoringEnabled(model, themeService, configurationService) {
|
||||
var _a;
|
||||
const setting = (_a = configurationService.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID, { overrideIdentifier: model.getLanguageId(), resource: model.uri })) === null || _a === void 0 ? void 0 : _a.enabled;
|
||||
if (typeof setting === 'boolean') {
|
||||
return setting;
|
||||
}
|
||||
return themeService.getColorTheme().semanticHighlighting;
|
||||
}
|
||||
|
|
@ -57,7 +57,7 @@ class BracketSelectionRangeProvider {
|
|||
counts.set(key, val + 1);
|
||||
}
|
||||
else {
|
||||
const key = bracket.bracketInfo.getClosedBrackets()[0].bracketText;
|
||||
const key = bracket.bracketInfo.getOpeningBrackets()[0].bracketText;
|
||||
// process closing
|
||||
let val = counts.has(key) ? counts.get(key) : 0;
|
||||
val -= 1;
|
||||
|
|
@ -97,7 +97,7 @@ class BracketSelectionRangeProvider {
|
|||
break;
|
||||
}
|
||||
if (!bracket.bracketInfo.isOpeningBracket) {
|
||||
const key = bracket.bracketInfo.getClosedBrackets()[0].bracketText;
|
||||
const key = bracket.bracketInfo.getOpeningBrackets()[0].bracketText;
|
||||
// wait for opening
|
||||
const val = counts.has(key) ? counts.get(key) : 0;
|
||||
counts.set(key, val + 1);
|
||||
|
|
|
|||
|
|
@ -4,36 +4,41 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
.monaco-editor .sticky-line {
|
||||
color : var(--vscode-editorLineNumber-foreground);
|
||||
overflow : hidden;
|
||||
white-space : nowrap;
|
||||
display : inline-block;
|
||||
color: var(--vscode-editorLineNumber-foreground);
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-line-number {
|
||||
text-align : right;
|
||||
float : left;
|
||||
text-align: right;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-line-root {
|
||||
background-color : inherit;
|
||||
overflow : hidden;
|
||||
white-space : nowrap;
|
||||
width : 100%;
|
||||
background-color: inherit;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.monaco-editor.hc-black .sticky-widget,
|
||||
.monaco-editor.hc-light .sticky-widget {
|
||||
border-bottom: 1px solid var(--vscode-contrastBorder);
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-line-root:hover {
|
||||
background-color: var(--vscode-editorStickyScrollHover-background);
|
||||
cursor : pointer;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-widget {
|
||||
width : 100%;
|
||||
box-shadow : var(--vscode-scrollbar-shadow) 0 3px 2px -2px;
|
||||
z-index : 11;
|
||||
background-color : var(--vscode-editorStickyScroll-background);
|
||||
width: 100%;
|
||||
box-shadow: var(--vscode-scrollbar-shadow) 0 3px 2px -2px;
|
||||
z-index: 11;
|
||||
background-color: var(--vscode-editorStickyScroll-background);
|
||||
}
|
||||
|
||||
.monaco-editor .sticky-widget.peek {
|
||||
background-color : var(--vscode-peekViewEditorStickScroll-background);
|
||||
background-color: var(--vscode-peekViewEditorStickyScroll-background);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -254,6 +254,7 @@ let StickyScrollWidget = class StickyScrollWidget extends Disposable {
|
|||
}
|
||||
const editorLineHeight = this._editor.getOption(63 /* EditorOption.lineHeight */);
|
||||
const widgetHeight = this._lineNumbers.length * editorLineHeight + this._lastLineRelativePosition;
|
||||
this._rootDomNode.style.display = widgetHeight > 0 ? 'block' : 'none';
|
||||
this._rootDomNode.style.height = widgetHeight.toString() + 'px';
|
||||
const minimapSide = this._editor.getOption(69 /* EditorOption.minimap */).side;
|
||||
if (minimapSide === 'left') {
|
||||
|
|
|
|||
6
node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggest.js
generated
vendored
6
node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggest.js
generated
vendored
|
|
@ -189,6 +189,12 @@ export function provideSuggestionItems(registry, model, position, options = Comp
|
|||
if (!_snippetSuggestSupport || options.kindFilter.has(27 /* languages.CompletionItemKind.Snippet */)) {
|
||||
return;
|
||||
}
|
||||
// we have items from a previous session that we can reuse
|
||||
const reuseItems = options.providerItemsToReuse.get(_snippetSuggestSupport);
|
||||
if (reuseItems) {
|
||||
reuseItems.forEach(item => result.push(item));
|
||||
return;
|
||||
}
|
||||
if (options.providerFilter.size > 0 && !options.providerFilter.has(_snippetSuggestSupport)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -760,7 +760,7 @@ registerEditorCommand(new SuggestCommand({
|
|||
}));
|
||||
registerEditorCommand(new SuggestCommand({
|
||||
id: 'focusSuggestion',
|
||||
precondition: ContextKeyExpr.and(SuggestContext.Visible, SuggestContext.HasFocusedSuggestion.negate(), ContextKeyExpr.equals('config.editor.suggest.selectQuickSuggestions', false)),
|
||||
precondition: ContextKeyExpr.and(SuggestContext.Visible, SuggestContext.HasFocusedSuggestion.negate()),
|
||||
handler: x => x.focusSuggestion(),
|
||||
kbOpts: {
|
||||
weight: weight,
|
||||
|
|
@ -770,6 +770,14 @@ registerEditorCommand(new SuggestCommand({
|
|||
mac: { primary: 256 /* KeyMod.WinCtrl */ | 10 /* KeyCode.Space */, secondary: [2048 /* KeyMod.CtrlCmd */ | 39 /* KeyCode.KeyI */] }
|
||||
},
|
||||
}));
|
||||
registerEditorCommand(new SuggestCommand({
|
||||
id: 'focusAndAcceptSuggestion',
|
||||
precondition: ContextKeyExpr.and(SuggestContext.Visible, SuggestContext.HasFocusedSuggestion.negate()),
|
||||
handler: c => {
|
||||
c.focusSuggestion();
|
||||
c.acceptSelectedSuggestion(true, false);
|
||||
}
|
||||
}));
|
||||
registerEditorCommand(new SuggestCommand({
|
||||
id: 'toggleSuggestionDetails',
|
||||
precondition: ContextKeyExpr.and(SuggestContext.Visible, SuggestContext.HasFocusedSuggestion),
|
||||
|
|
|
|||
|
|
@ -70,24 +70,23 @@ let ItemRenderer = class ItemRenderer {
|
|||
this._onDidToggleDetails.dispose();
|
||||
}
|
||||
renderTemplate(container) {
|
||||
const data = Object.create(null);
|
||||
data.disposables = new DisposableStore();
|
||||
data.root = container;
|
||||
data.root.classList.add('show-file-icons');
|
||||
data.icon = append(container, $('.icon'));
|
||||
data.colorspan = append(data.icon, $('span.colorspan'));
|
||||
const disposables = new DisposableStore();
|
||||
const root = container;
|
||||
root.classList.add('show-file-icons');
|
||||
const icon = append(container, $('.icon'));
|
||||
const colorspan = append(icon, $('span.colorspan'));
|
||||
const text = append(container, $('.contents'));
|
||||
const main = append(text, $('.main'));
|
||||
data.iconContainer = append(main, $('.icon-label.codicon'));
|
||||
data.left = append(main, $('span.left'));
|
||||
data.right = append(main, $('span.right'));
|
||||
data.iconLabel = new IconLabel(data.left, { supportHighlights: true, supportIcons: true });
|
||||
data.disposables.add(data.iconLabel);
|
||||
data.parametersLabel = append(data.left, $('span.signature-label'));
|
||||
data.qualifierLabel = append(data.left, $('span.qualifier-label'));
|
||||
data.detailsLabel = append(data.right, $('span.details-label'));
|
||||
data.readMore = append(data.right, $('span.readMore' + ThemeIcon.asCSSSelector(suggestMoreInfoIcon)));
|
||||
data.readMore.title = nls.localize('readMore', "Read More");
|
||||
const iconContainer = append(main, $('.icon-label.codicon'));
|
||||
const left = append(main, $('span.left'));
|
||||
const right = append(main, $('span.right'));
|
||||
const iconLabel = new IconLabel(left, { supportHighlights: true, supportIcons: true });
|
||||
disposables.add(iconLabel);
|
||||
const parametersLabel = append(left, $('span.signature-label'));
|
||||
const qualifierLabel = append(left, $('span.qualifier-label'));
|
||||
const detailsLabel = append(right, $('span.details-label'));
|
||||
const readMore = append(right, $('span.readMore' + ThemeIcon.asCSSSelector(suggestMoreInfoIcon)));
|
||||
readMore.title = nls.localize('readMore', "Read More");
|
||||
const configureFont = () => {
|
||||
const options = this._editor.getOptions();
|
||||
const fontInfo = options.get(47 /* EditorOption.fontInfo */);
|
||||
|
|
@ -100,24 +99,24 @@ let ItemRenderer = class ItemRenderer {
|
|||
const fontSizePx = `${fontSize}px`;
|
||||
const lineHeightPx = `${lineHeight}px`;
|
||||
const letterSpacingPx = `${letterSpacing}px`;
|
||||
data.root.style.fontSize = fontSizePx;
|
||||
data.root.style.fontWeight = fontWeight;
|
||||
data.root.style.letterSpacing = letterSpacingPx;
|
||||
root.style.fontSize = fontSizePx;
|
||||
root.style.fontWeight = fontWeight;
|
||||
root.style.letterSpacing = letterSpacingPx;
|
||||
main.style.fontFamily = fontFamily;
|
||||
main.style.fontFeatureSettings = fontFeatureSettings;
|
||||
main.style.lineHeight = lineHeightPx;
|
||||
data.icon.style.height = lineHeightPx;
|
||||
data.icon.style.width = lineHeightPx;
|
||||
data.readMore.style.height = lineHeightPx;
|
||||
data.readMore.style.width = lineHeightPx;
|
||||
icon.style.height = lineHeightPx;
|
||||
icon.style.width = lineHeightPx;
|
||||
readMore.style.height = lineHeightPx;
|
||||
readMore.style.width = lineHeightPx;
|
||||
};
|
||||
configureFont();
|
||||
data.disposables.add(this._editor.onDidChangeConfiguration(e => {
|
||||
disposables.add(this._editor.onDidChangeConfiguration(e => {
|
||||
if (e.hasChanged(47 /* EditorOption.fontInfo */) || e.hasChanged(113 /* EditorOption.suggestFontSize */) || e.hasChanged(114 /* EditorOption.suggestLineHeight */)) {
|
||||
configureFont();
|
||||
}
|
||||
}));
|
||||
return data;
|
||||
return { root, left, right, icon, colorspan, iconLabel, iconContainer, parametersLabel, qualifierLabel, detailsLabel, readMore, disposables };
|
||||
}
|
||||
renderElement(element, index, data) {
|
||||
const { completion } = element;
|
||||
|
|
|
|||
|
|
@ -4,27 +4,28 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
import { alert } from '../../../../base/browser/ui/aria/aria.js';
|
||||
import { TabFocus } from '../../../browser/config/tabFocus.js';
|
||||
import { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';
|
||||
import * as nls from '../../../../nls.js';
|
||||
class ToggleTabFocusModeAction extends EditorAction {
|
||||
import { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';
|
||||
import { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
|
||||
class ToggleTabFocusModeAction extends Action2 {
|
||||
constructor() {
|
||||
super({
|
||||
id: ToggleTabFocusModeAction.ID,
|
||||
label: nls.localize({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VS Code'] }, "Toggle Tab Key Moves Focus"),
|
||||
alias: 'Toggle Tab Key Moves Focus',
|
||||
title: { value: nls.localize({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VS Code'] }, 'Toggle Tab Key Moves Focus'), original: 'Toggle Tab Key Moves Focus' },
|
||||
precondition: undefined,
|
||||
kbOpts: {
|
||||
kbExpr: null,
|
||||
keybinding: {
|
||||
primary: 2048 /* KeyMod.CtrlCmd */ | 43 /* KeyCode.KeyM */,
|
||||
mac: { primary: 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 43 /* KeyCode.KeyM */ },
|
||||
weight: 100 /* KeybindingWeight.EditorContrib */
|
||||
}
|
||||
},
|
||||
f1: true
|
||||
});
|
||||
}
|
||||
run(accessor, editor) {
|
||||
const oldValue = TabFocus.getTabFocusMode();
|
||||
run(accessor) {
|
||||
const context = accessor.get(IContextKeyService).getContextKeyValue('focusedView') === 'terminal' ? "terminalFocus" /* TabFocusContext.Terminal */ : "editorFocus" /* TabFocusContext.Editor */;
|
||||
const oldValue = TabFocus.getTabFocusMode(context);
|
||||
const newValue = !oldValue;
|
||||
TabFocus.setTabFocusMode(newValue);
|
||||
TabFocus.setTabFocusMode(newValue, context);
|
||||
if (newValue) {
|
||||
alert(nls.localize('toggle.tabMovesFocus.on', "Pressing Tab will now move focus to the next focusable element"));
|
||||
}
|
||||
|
|
@ -35,4 +36,4 @@ class ToggleTabFocusModeAction extends EditorAction {
|
|||
}
|
||||
ToggleTabFocusModeAction.ID = 'editor.action.toggleTabFocusMode';
|
||||
export { ToggleTabFocusModeAction };
|
||||
registerEditorAction(ToggleTabFocusModeAction);
|
||||
registerAction2(ToggleTabFocusModeAction);
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue