@codingame/monaco-vscode-api 1.76.8 → 1.78.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -49
- package/dist/Bibtex.tmLanguage.js +2 -0
- package/dist/Handlebars.tmLanguage.js +2 -0
- package/dist/JSON.tmLanguage.js +2 -0
- package/dist/JSONC.tmLanguage.js +2 -0
- package/dist/JavaScript.tmLanguage.js +2 -0
- package/dist/JavaScriptReact.tmLanguage.js +2 -0
- package/dist/LaTeX.tmLanguage.js +2 -0
- package/dist/MagicPython.tmLanguage.js +2 -0
- package/dist/MagicRegExp.tmLanguage.js +2 -0
- package/dist/Red-color-theme.js +2 -0
- package/dist/Regular Expressions (JavaScript).js +2 -0
- package/dist/TeX.tmLanguage.js +2 -0
- package/dist/TypeScript.tmLanguage.js +2 -0
- package/dist/TypeScriptReact.tmLanguage.js +2 -0
- package/dist/_.contribution.js +1 -1
- package/dist/abyss-color-theme.js +2 -0
- package/dist/api.js +1 -3
- package/dist/api2.js +421 -18091
- package/dist/asp-vb-net.tmlanguage.js +2 -0
- package/dist/assets/diffLineDeleted.mp3 +0 -0
- package/dist/assets/diffLineInserted.mp3 +0 -0
- package/dist/assets/diffLineModified.mp3 +0 -0
- package/dist/audioCue.js +108 -478
- package/dist/bat.js +9 -0
- package/dist/batchfile.js +2 -0
- package/dist/batchfile.tmLanguage.js +2 -0
- package/dist/button.js +35 -8
- package/dist/c.js +2 -0
- package/dist/c.tmLanguage.js +2 -0
- package/dist/clojure.js +8 -0
- package/dist/clojure.tmLanguage.js +2 -0
- package/dist/coffeescript.js +9 -0
- package/dist/coffeescript.tmLanguage.js +2 -0
- package/dist/coffeescript2.js +2 -0
- package/dist/configuration.d.ts +269 -4
- package/dist/configuration.js +4326 -328
- package/dist/configuration2.js +14 -324
- package/dist/cpp-grammar-bailout.tmLanguage.js +2 -0
- package/dist/cpp.embedded.macro.tmLanguage.js +2 -0
- package/dist/cpp.js +16 -0
- package/dist/cpp.tmLanguage.js +2 -0
- package/dist/cpp2.js +2 -0
- package/dist/csharp.js +9 -0
- package/dist/csharp.tmLanguage.js +2 -0
- package/dist/csharp2.js +2 -0
- package/dist/cshtml.tmLanguage.js +2 -0
- package/dist/css.js +8 -0
- package/dist/css.tmLanguage.js +2 -0
- package/dist/cuda-cpp.tmLanguage.js +2 -0
- package/dist/dark_plus.js +2 -0
- package/dist/dark_plus_experimental.js +2 -0
- package/dist/dark_vs.js +2 -0
- package/dist/dart.js +8 -0
- package/dist/dart.tmLanguage.js +2 -0
- package/dist/debug.js +12115 -12209
- package/dist/default-extensions/bat.js +12 -0
- package/dist/default-extensions/clojure.js +11 -0
- package/dist/default-extensions/coffeescript.js +12 -0
- package/dist/default-extensions/cpp.js +19 -0
- package/dist/default-extensions/csharp.js +12 -0
- package/dist/default-extensions/css.js +11 -0
- package/dist/default-extensions/dart.js +11 -0
- package/dist/default-extensions/diff.js +11 -0
- package/dist/default-extensions/docker.js +11 -0
- package/dist/default-extensions/fsharp.js +12 -0
- package/dist/default-extensions/go.js +11 -0
- package/dist/default-extensions/groovy.js +12 -0
- package/dist/default-extensions/handlebars.js +11 -0
- package/dist/default-extensions/hlsl.js +11 -0
- package/dist/default-extensions/html.js +13 -0
- package/dist/default-extensions/ini.js +13 -0
- package/dist/default-extensions/java.js +12 -0
- package/dist/default-extensions/javascript.js +17 -0
- package/dist/default-extensions/json.js +13 -0
- package/dist/default-extensions/julia.js +11 -0
- package/dist/default-extensions/latex.js +14 -0
- package/dist/default-extensions/less.js +11 -0
- package/dist/default-extensions/log.js +10 -0
- package/dist/default-extensions/lua.js +11 -0
- package/dist/default-extensions/make.js +11 -0
- package/dist/default-extensions/markdown-basics.js +12 -0
- package/dist/default-extensions/objective-c.js +13 -0
- package/dist/default-extensions/perl.js +13 -0
- package/dist/default-extensions/php.js +13 -0
- package/dist/default-extensions/powershell.js +11 -0
- package/dist/default-extensions/pug.js +11 -0
- package/dist/default-extensions/python.js +12 -0
- package/dist/default-extensions/r.js +11 -0
- package/dist/default-extensions/razor.js +11 -0
- package/dist/default-extensions/ruby.js +11 -0
- package/dist/default-extensions/rust.js +11 -0
- package/dist/default-extensions/scss.js +12 -0
- package/dist/default-extensions/shaderlab.js +11 -0
- package/dist/default-extensions/shellscript.js +11 -0
- package/dist/default-extensions/sql.js +11 -0
- package/dist/default-extensions/swift.js +12 -0
- package/dist/default-extensions/theme-abyss.js +10 -0
- package/dist/default-extensions/theme-defaults.js +18 -0
- package/dist/default-extensions/theme-kimbie-dark.js +10 -0
- package/dist/default-extensions/theme-monokai-dimmed.js +10 -0
- package/dist/default-extensions/theme-monokai.js +10 -0
- package/dist/default-extensions/theme-quietlight.js +10 -0
- package/dist/default-extensions/theme-red.js +10 -0
- package/dist/default-extensions/theme-seti.js +10 -0
- package/dist/default-extensions/theme-solarized-dark.js +10 -0
- package/dist/default-extensions/theme-solarized-light.js +10 -0
- package/dist/default-extensions/theme-tomorrow-night-blue.js +10 -0
- package/dist/default-extensions/typescript-basics.js +17 -0
- package/dist/default-extensions/vb.js +12 -0
- package/dist/default-extensions/xml.js +13 -0
- package/dist/default-extensions/yaml.js +13 -0
- package/dist/dialogs.js +12 -216
- package/dist/diff.js +8 -0
- package/dist/diff.tmLanguage.js +2 -0
- package/dist/dimmed-monokai-color-theme.js +2 -0
- package/dist/docker.js +8 -0
- package/dist/docker.tmLanguage.js +2 -0
- package/dist/dom.js +101 -0
- package/dist/extensionManagement.js +4 -0
- package/dist/extensions.d.ts +368 -23
- package/dist/extensions.js +4 -85
- package/dist/extensionsRegistry.js +63 -64
- package/dist/files.d.ts +845 -0
- package/dist/files.js +1805 -1151
- package/dist/files2.js +32 -0
- package/dist/fsharp.js +9 -0
- package/dist/fsharp.tmLanguage.js +2 -0
- package/dist/fsharp2.js +2 -0
- package/dist/go.js +8 -0
- package/dist/go.tmLanguage.js +2 -0
- package/dist/groovy.js +9 -0
- package/dist/groovy.tmLanguage.js +2 -0
- package/dist/groovy2.js +2 -0
- package/dist/handlebars.js +8 -0
- package/dist/hc_black.js +2 -0
- package/dist/hc_light.js +2 -0
- package/dist/hlsl.js +8 -0
- package/dist/hlsl.tmLanguage.js +2 -0
- package/dist/html-derivative.tmLanguage.js +2 -0
- package/dist/html.js +10 -0
- package/dist/html.tmLanguage.js +2 -0
- package/dist/html.tmLanguage2.js +2 -0
- package/dist/html2.js +2 -0
- package/dist/ini.js +10 -0
- package/dist/ini.language-configuration.js +2 -0
- package/dist/ini.tmLanguage.js +2 -0
- package/dist/injection.js +1 -1
- package/dist/java.js +9 -0
- package/dist/java.tmLanguage.js +2 -0
- package/dist/java2.js +2 -0
- package/dist/javascript-language-configuration.js +2 -0
- package/dist/javascript.js +14 -0
- package/dist/javascript2.js +2 -0
- package/dist/jsdoc.js.injection.tmLanguage.js +2 -0
- package/dist/jsdoc.ts.injection.tmLanguage.js +2 -0
- package/dist/json.js +10 -0
- package/dist/jsonErrorMessages.js +1 -1
- package/dist/julia.js +8 -0
- package/dist/julia.tmLanguage.js +2 -0
- package/dist/keybindings.d.ts +1 -10
- package/dist/keybindings.js +291 -353
- package/dist/kimbie-dark-color-theme.js +2 -0
- package/dist/language-configuration.js +2 -0
- package/dist/language-configuration10.js +2 -0
- package/dist/language-configuration11.js +2 -0
- package/dist/language-configuration12.js +2 -0
- package/dist/language-configuration13.js +2 -0
- package/dist/language-configuration14.js +2 -0
- package/dist/language-configuration15.js +2 -0
- package/dist/language-configuration16.js +2 -0
- package/dist/language-configuration17.js +2 -0
- package/dist/language-configuration18.js +2 -0
- package/dist/language-configuration19.js +2 -0
- package/dist/language-configuration2.js +2 -0
- package/dist/language-configuration20.js +2 -0
- package/dist/language-configuration21.js +2 -0
- package/dist/language-configuration22.js +2 -0
- package/dist/language-configuration23.js +2 -0
- package/dist/language-configuration24.js +2 -0
- package/dist/language-configuration25.js +2 -0
- package/dist/language-configuration26.js +2 -0
- package/dist/language-configuration27.js +2 -0
- package/dist/language-configuration28.js +2 -0
- package/dist/language-configuration29.js +2 -0
- package/dist/language-configuration3.js +2 -0
- package/dist/language-configuration30.js +2 -0
- package/dist/language-configuration31.js +2 -0
- package/dist/language-configuration32.js +2 -0
- package/dist/language-configuration33.js +2 -0
- package/dist/language-configuration34.js +2 -0
- package/dist/language-configuration35.js +2 -0
- package/dist/language-configuration36.js +2 -0
- package/dist/language-configuration37.js +2 -0
- package/dist/language-configuration38.js +2 -0
- package/dist/language-configuration39.js +2 -0
- package/dist/language-configuration4.js +2 -0
- package/dist/language-configuration5.js +2 -0
- package/dist/language-configuration6.js +2 -0
- package/dist/language-configuration7.js +2 -0
- package/dist/language-configuration8.js +2 -0
- package/dist/language-configuration9.js +2 -0
- package/dist/languageService.js +5 -6
- package/dist/languages.d.ts +66 -1
- package/dist/languages.js +924 -5
- package/dist/latex.js +11 -0
- package/dist/layout.contribution.darwin.js +1 -1
- package/dist/layout.contribution.linux.js +1 -1
- package/dist/layout.contribution.win.js +1 -1
- package/dist/layout.js +4 -10
- package/dist/layoutService.js +10 -2
- package/dist/less.js +8 -0
- package/dist/less.tmLanguage.js +2 -0
- package/dist/light_plus.js +2 -0
- package/dist/light_plus_experimental.js +2 -0
- package/dist/light_vs.js +2 -0
- package/dist/log.js +7 -0
- package/dist/log.tmLanguage.js +2 -0
- package/dist/lua.js +8 -0
- package/dist/lua.tmLanguage.js +2 -0
- package/dist/make.js +8 -0
- package/dist/make.tmLanguage.js +2 -0
- package/dist/markdown-basics.js +9 -0
- package/dist/markdown-latex-combined.tmLanguage.js +2 -0
- package/dist/markdown.js +2 -0
- package/dist/markdown.tmLanguage.js +2 -0
- package/dist/memento.js +91 -0
- package/dist/modelEditor.d.ts +1480 -138
- package/dist/modelEditor.js +8700 -326
- package/dist/monaco.d.ts +987 -15
- package/dist/monaco.js +40 -10
- package/dist/monokai-color-theme.js +2 -0
- package/dist/notifications.js +86 -64
- package/dist/objective-c.js +10 -0
- package/dist/objective-c.tmLanguage.js +2 -0
- package/dist/objective-c__.tmLanguage.js +2 -0
- package/dist/perl.js +10 -0
- package/dist/perl.language-configuration.js +2 -0
- package/dist/perl.tmLanguage.js +2 -0
- package/dist/perl6.language-configuration.js +2 -0
- package/dist/perl6.tmLanguage.js +2 -0
- package/dist/php.js +10 -0
- package/dist/php.tmLanguage.js +2 -0
- package/dist/php2.js +2 -0
- package/dist/platform.js +105 -0
- package/dist/platform.tmLanguage.js +2 -0
- package/dist/polyfill.js +51922 -11067
- package/dist/powershell.js +8 -0
- package/dist/powershell.tmLanguage.js +2 -0
- package/dist/preferences.js +2532 -0
- package/dist/properties.language-configuration.js +2 -0
- package/dist/pug.js +8 -0
- package/dist/pug.tmLanguage.js +2 -0
- package/dist/python.js +9 -0
- package/dist/quietlight-color-theme.js +2 -0
- package/dist/r.js +8 -0
- package/dist/r.tmLanguage.js +2 -0
- package/dist/razor.js +8 -0
- package/dist/rollup-vsix-plugin.d.ts +8 -0
- package/dist/rollup-vsix-plugin.js +104 -0
- package/dist/ruby.js +8 -0
- package/dist/ruby.tmLanguage.js +2 -0
- package/dist/rust.js +8 -0
- package/dist/rust.tmLanguage.js +2 -0
- package/dist/sassdoc.tmLanguage.js +2 -0
- package/dist/scss.js +9 -0
- package/dist/scss.tmLanguage.js +2 -0
- package/dist/services.d.ts +12988 -12840
- package/dist/services.js +1 -1
- package/dist/shaderlab.js +8 -0
- package/dist/shaderlab.tmLanguage.js +2 -0
- package/dist/shell-unix-bash.tmLanguage.js +2 -0
- package/dist/shellscript.js +8 -0
- package/dist/snippets.js +6 -11
- package/dist/snippetsService.js +7 -10
- package/dist/solarized-dark-color-theme.js +2 -0
- package/dist/solarized-light-color-theme.js +2 -0
- package/dist/sql.js +8 -0
- package/dist/sql.tmLanguage.js +2 -0
- package/dist/swift.js +9 -0
- package/dist/swift.tmLanguage.js +2 -0
- package/dist/swift2.js +2 -0
- package/dist/tags-language-configuration.js +2 -0
- package/dist/textmate.d.ts +0 -264
- package/dist/textmate.js +402 -66
- package/dist/theme-abyss.js +7 -0
- package/dist/theme-defaults.js +15 -0
- package/dist/theme-kimbie-dark.js +7 -0
- package/dist/theme-monokai-dimmed.js +7 -0
- package/dist/theme-monokai.js +7 -0
- package/dist/theme-quietlight.js +7 -0
- package/dist/theme-red.js +7 -0
- package/dist/theme-seti.js +7 -0
- package/dist/theme-solarized-dark.js +7 -0
- package/dist/theme-solarized-light.js +7 -0
- package/dist/theme-tomorrow-night-blue.js +7 -0
- package/dist/theme.js +6 -11
- package/dist/{contextkeys.js → theme2.js} +165 -143
- package/dist/tokenClassificationRegistry.js +46 -2
- package/dist/tomorrow-night-blue-color-theme.js +2 -0
- package/dist/typescript-basics.js +14 -0
- package/dist/typescript.js +2 -0
- package/dist/unboundCommands.js +41 -0
- package/dist/utils.js +345 -0
- package/dist/vb.js +9 -0
- package/dist/vb2.js +2 -0
- package/dist/vs-seti-icon-theme.js +2 -0
- package/dist/vs_minimal-icon-theme.js +2 -0
- package/dist/xml.js +10 -0
- package/dist/xml.language-configuration.js +2 -0
- package/dist/xml.tmLanguage.js +2 -0
- package/dist/xsl.language-configuration.js +2 -0
- package/dist/xsl.tmLanguage.js +2 -0
- package/dist/yaml.js +10 -0
- package/dist/yaml.tmLanguage.js +2 -0
- package/package.json +50 -33
- package/dist/async.js +0 -301
- package/dist/cancellation.js +0 -3
- package/dist/configurationRegistry.js +0 -441
- package/dist/extensionResourceLoader.js +0 -96
- package/dist/labels.js +0 -14
- package/dist/languageConfiguration.js +0 -919
- package/dist/missing-services.js +0 -5554
- package/dist/resources.js +0 -197
- package/dist/services2.js +0 -3467
- package/dist/textFileEditorModel.js +0 -2985
- package/dist/tokenClassification.d.ts +0 -7
- package/dist/tokenClassification.js +0 -277
- package/dist/variableResolver.js +0 -1711
- package/dist/workbenchThemeService.js +0 -46
- package/dist/workspaceContext.js +0 -50
- /package/dist/{languageConfiguration.d.ts → preferences.d.ts} +0 -0
package/dist/configuration2.js
CHANGED
|
@@ -1,327 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
let initialIndentLevel;
|
|
4
|
-
let formatText;
|
|
5
|
-
let formatTextStart;
|
|
6
|
-
let rangeStart;
|
|
7
|
-
let rangeEnd;
|
|
8
|
-
if (range) {
|
|
9
|
-
rangeStart = range.offset;
|
|
10
|
-
rangeEnd = rangeStart + range.length;
|
|
11
|
-
formatTextStart = rangeStart;
|
|
12
|
-
while (formatTextStart > 0 && !isEOL(documentText, formatTextStart - 1)) {
|
|
13
|
-
formatTextStart--;
|
|
14
|
-
}
|
|
15
|
-
let endOffset = rangeEnd;
|
|
16
|
-
while (endOffset < documentText.length && !isEOL(documentText, endOffset)) {
|
|
17
|
-
endOffset++;
|
|
18
|
-
}
|
|
19
|
-
formatText = documentText.substring(formatTextStart, endOffset);
|
|
20
|
-
initialIndentLevel = computeIndentLevel(formatText, options);
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
formatText = documentText;
|
|
24
|
-
initialIndentLevel = 0;
|
|
25
|
-
formatTextStart = 0;
|
|
26
|
-
rangeStart = 0;
|
|
27
|
-
rangeEnd = documentText.length;
|
|
28
|
-
}
|
|
29
|
-
const eol = getEOL(options, documentText);
|
|
30
|
-
let lineBreak = false;
|
|
31
|
-
let indentLevel = 0;
|
|
32
|
-
let indentValue;
|
|
33
|
-
if (options.insertSpaces) {
|
|
34
|
-
indentValue = repeat(' ', options.tabSize || 4);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
indentValue = '\t';
|
|
38
|
-
}
|
|
39
|
-
const scanner = createScanner(formatText, false);
|
|
40
|
-
let hasError = false;
|
|
41
|
-
function newLineAndIndent() {
|
|
42
|
-
return eol + repeat(indentValue, initialIndentLevel + indentLevel);
|
|
43
|
-
}
|
|
44
|
-
function scanNext() {
|
|
45
|
-
let token = scanner.scan();
|
|
46
|
-
lineBreak = false;
|
|
47
|
-
while (token === 15 || token === 14 ) {
|
|
48
|
-
lineBreak = lineBreak || (token === 14 );
|
|
49
|
-
token = scanner.scan();
|
|
50
|
-
}
|
|
51
|
-
hasError = token === 16 || scanner.getTokenError() !== 0 ;
|
|
52
|
-
return token;
|
|
53
|
-
}
|
|
54
|
-
const editOperations = [];
|
|
55
|
-
function addEdit(text, startOffset, endOffset) {
|
|
56
|
-
if (!hasError && startOffset < rangeEnd && endOffset > rangeStart && documentText.substring(startOffset, endOffset) !== text) {
|
|
57
|
-
editOperations.push({ offset: startOffset, length: endOffset - startOffset, content: text });
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
let firstToken = scanNext();
|
|
61
|
-
if (firstToken !== 17 ) {
|
|
62
|
-
const firstTokenStart = scanner.getTokenOffset() + formatTextStart;
|
|
63
|
-
const initialIndent = repeat(indentValue, initialIndentLevel);
|
|
64
|
-
addEdit(initialIndent, formatTextStart, firstTokenStart);
|
|
65
|
-
}
|
|
66
|
-
while (firstToken !== 17 ) {
|
|
67
|
-
let firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart;
|
|
68
|
-
let secondToken = scanNext();
|
|
69
|
-
let replaceContent = '';
|
|
70
|
-
while (!lineBreak && (secondToken === 12 || secondToken === 13 )) {
|
|
71
|
-
const commentTokenStart = scanner.getTokenOffset() + formatTextStart;
|
|
72
|
-
addEdit(' ', firstTokenEnd, commentTokenStart);
|
|
73
|
-
firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart;
|
|
74
|
-
replaceContent = secondToken === 12 ? newLineAndIndent() : '';
|
|
75
|
-
secondToken = scanNext();
|
|
76
|
-
}
|
|
77
|
-
if (secondToken === 2 ) {
|
|
78
|
-
if (firstToken !== 1 ) {
|
|
79
|
-
indentLevel--;
|
|
80
|
-
replaceContent = newLineAndIndent();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else if (secondToken === 4 ) {
|
|
84
|
-
if (firstToken !== 3 ) {
|
|
85
|
-
indentLevel--;
|
|
86
|
-
replaceContent = newLineAndIndent();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
switch (firstToken) {
|
|
91
|
-
case 3 :
|
|
92
|
-
case 1 :
|
|
93
|
-
indentLevel++;
|
|
94
|
-
replaceContent = newLineAndIndent();
|
|
95
|
-
break;
|
|
96
|
-
case 5 :
|
|
97
|
-
case 12 :
|
|
98
|
-
replaceContent = newLineAndIndent();
|
|
99
|
-
break;
|
|
100
|
-
case 13 :
|
|
101
|
-
if (lineBreak) {
|
|
102
|
-
replaceContent = newLineAndIndent();
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
replaceContent = ' ';
|
|
106
|
-
}
|
|
107
|
-
break;
|
|
108
|
-
case 6 :
|
|
109
|
-
replaceContent = ' ';
|
|
110
|
-
break;
|
|
111
|
-
case 10 :
|
|
112
|
-
if (secondToken === 6 ) {
|
|
113
|
-
replaceContent = '';
|
|
114
|
-
break;
|
|
115
|
-
}
|
|
116
|
-
case 7 :
|
|
117
|
-
case 8 :
|
|
118
|
-
case 9 :
|
|
119
|
-
case 11 :
|
|
120
|
-
case 2 :
|
|
121
|
-
case 4 :
|
|
122
|
-
if (secondToken === 12 || secondToken === 13 ) {
|
|
123
|
-
replaceContent = ' ';
|
|
124
|
-
}
|
|
125
|
-
else if (secondToken !== 5 && secondToken !== 17 ) {
|
|
126
|
-
hasError = true;
|
|
127
|
-
}
|
|
128
|
-
break;
|
|
129
|
-
case 16 :
|
|
130
|
-
hasError = true;
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
if (lineBreak && (secondToken === 12 || secondToken === 13 )) {
|
|
134
|
-
replaceContent = newLineAndIndent();
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
const secondTokenStart = scanner.getTokenOffset() + formatTextStart;
|
|
138
|
-
addEdit(replaceContent, firstTokenEnd, secondTokenStart);
|
|
139
|
-
firstToken = secondToken;
|
|
140
|
-
}
|
|
141
|
-
return editOperations;
|
|
142
|
-
}
|
|
143
|
-
function repeat(s, count) {
|
|
144
|
-
let result = '';
|
|
145
|
-
for (let i = 0; i < count; i++) {
|
|
146
|
-
result += s;
|
|
147
|
-
}
|
|
148
|
-
return result;
|
|
149
|
-
}
|
|
150
|
-
function computeIndentLevel(content, options) {
|
|
151
|
-
let i = 0;
|
|
152
|
-
let nChars = 0;
|
|
153
|
-
const tabSize = options.tabSize || 4;
|
|
154
|
-
while (i < content.length) {
|
|
155
|
-
const ch = content.charAt(i);
|
|
156
|
-
if (ch === ' ') {
|
|
157
|
-
nChars++;
|
|
158
|
-
}
|
|
159
|
-
else if (ch === '\t') {
|
|
160
|
-
nChars += tabSize;
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
break;
|
|
164
|
-
}
|
|
165
|
-
i++;
|
|
166
|
-
}
|
|
167
|
-
return Math.floor(nChars / tabSize);
|
|
168
|
-
}
|
|
169
|
-
function getEOL(options, text) {
|
|
170
|
-
for (let i = 0; i < text.length; i++) {
|
|
171
|
-
const ch = text.charAt(i);
|
|
172
|
-
if (ch === '\r') {
|
|
173
|
-
if (i + 1 < text.length && text.charAt(i + 1) === '\n') {
|
|
174
|
-
return '\r\n';
|
|
175
|
-
}
|
|
176
|
-
return '\r';
|
|
177
|
-
}
|
|
178
|
-
else if (ch === '\n') {
|
|
179
|
-
return '\n';
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return (options && options.eol) || '\n';
|
|
183
|
-
}
|
|
184
|
-
function isEOL(text, offset) {
|
|
185
|
-
return '\r\n'.indexOf(text.charAt(offset)) !== -1;
|
|
186
|
-
}
|
|
187
|
-
function setProperty(text, originalPath, value, formattingOptions, getInsertionIndex) {
|
|
188
|
-
const path = originalPath.slice();
|
|
189
|
-
const errors = [];
|
|
190
|
-
const root = parseTree(text, errors);
|
|
191
|
-
let parent = undefined;
|
|
192
|
-
let lastSegment = undefined;
|
|
193
|
-
while (path.length > 0) {
|
|
194
|
-
lastSegment = path.pop();
|
|
195
|
-
parent = findNodeAtLocation(root, path);
|
|
196
|
-
if (parent === undefined && value !== undefined) {
|
|
197
|
-
if (typeof lastSegment === 'string') {
|
|
198
|
-
value = { [lastSegment]: value };
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
value = [value];
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
break;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
if (!parent) {
|
|
209
|
-
if (value === undefined) {
|
|
210
|
-
throw new Error('Can not delete in empty document');
|
|
211
|
-
}
|
|
212
|
-
return withFormatting(text, { offset: root ? root.offset : 0, length: root ? root.length : 0, content: JSON.stringify(value) }, formattingOptions);
|
|
213
|
-
}
|
|
214
|
-
else if (parent.type === 'object' && typeof lastSegment === 'string' && Array.isArray(parent.children)) {
|
|
215
|
-
const existing = findNodeAtLocation(parent, [lastSegment]);
|
|
216
|
-
if (existing !== undefined) {
|
|
217
|
-
if (value === undefined) {
|
|
218
|
-
if (!existing.parent) {
|
|
219
|
-
throw new Error('Malformed AST');
|
|
220
|
-
}
|
|
221
|
-
const propertyIndex = parent.children.indexOf(existing.parent);
|
|
222
|
-
let removeBegin;
|
|
223
|
-
let removeEnd = existing.parent.offset + existing.parent.length;
|
|
224
|
-
if (propertyIndex > 0) {
|
|
225
|
-
const previous = parent.children[propertyIndex - 1];
|
|
226
|
-
removeBegin = previous.offset + previous.length;
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
removeBegin = parent.offset + 1;
|
|
230
|
-
if (parent.children.length > 1) {
|
|
231
|
-
const next = parent.children[1];
|
|
232
|
-
removeEnd = next.offset;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
return withFormatting(text, { offset: removeBegin, length: removeEnd - removeBegin, content: '' }, formattingOptions);
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
return withFormatting(text, { offset: existing.offset, length: existing.length, content: JSON.stringify(value) }, formattingOptions);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
if (value === undefined) {
|
|
243
|
-
return [];
|
|
244
|
-
}
|
|
245
|
-
const newProperty = `${JSON.stringify(lastSegment)}: ${JSON.stringify(value)}`;
|
|
246
|
-
const index = getInsertionIndex ? getInsertionIndex(( parent.children.map(p => p.children[0].value))) : parent.children.length;
|
|
247
|
-
let edit;
|
|
248
|
-
if (index > 0) {
|
|
249
|
-
const previous = parent.children[index - 1];
|
|
250
|
-
edit = { offset: previous.offset + previous.length, length: 0, content: ',' + newProperty };
|
|
251
|
-
}
|
|
252
|
-
else if (parent.children.length === 0) {
|
|
253
|
-
edit = { offset: parent.offset + 1, length: 0, content: newProperty };
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
edit = { offset: parent.offset + 1, length: 0, content: newProperty + ',' };
|
|
257
|
-
}
|
|
258
|
-
return withFormatting(text, edit, formattingOptions);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
else if (parent.type === 'array' && typeof lastSegment === 'number' && Array.isArray(parent.children)) {
|
|
262
|
-
if (value !== undefined) {
|
|
263
|
-
const newProperty = `${JSON.stringify(value)}`;
|
|
264
|
-
let edit;
|
|
265
|
-
if (parent.children.length === 0 || lastSegment === 0) {
|
|
266
|
-
edit = { offset: parent.offset + 1, length: 0, content: parent.children.length === 0 ? newProperty : newProperty + ',' };
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
const index = lastSegment === -1 || lastSegment > parent.children.length ? parent.children.length : lastSegment;
|
|
270
|
-
const previous = parent.children[index - 1];
|
|
271
|
-
edit = { offset: previous.offset + previous.length, length: 0, content: ',' + newProperty };
|
|
272
|
-
}
|
|
273
|
-
return withFormatting(text, edit, formattingOptions);
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
const removalIndex = lastSegment;
|
|
277
|
-
const toRemove = parent.children[removalIndex];
|
|
278
|
-
let edit;
|
|
279
|
-
if (parent.children.length === 1) {
|
|
280
|
-
edit = { offset: parent.offset + 1, length: parent.length - 2, content: '' };
|
|
281
|
-
}
|
|
282
|
-
else if (parent.children.length - 1 === removalIndex) {
|
|
283
|
-
const previous = parent.children[removalIndex - 1];
|
|
284
|
-
const offset = previous.offset + previous.length;
|
|
285
|
-
const parentEndOffset = parent.offset + parent.length;
|
|
286
|
-
edit = { offset, length: parentEndOffset - 2 - offset, content: '' };
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
edit = { offset: toRemove.offset, length: parent.children[removalIndex + 1].offset - toRemove.offset, content: '' };
|
|
290
|
-
}
|
|
291
|
-
return withFormatting(text, edit, formattingOptions);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
throw new Error(`Can not add ${typeof lastSegment !== 'number' ? 'index' : 'property'} to parent of type ${parent.type}`);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
function withFormatting(text, edit, formattingOptions) {
|
|
299
|
-
let newText = applyEdit(text, edit);
|
|
300
|
-
let begin = edit.offset;
|
|
301
|
-
let end = edit.offset + edit.content.length;
|
|
302
|
-
if (edit.length === 0 || edit.content.length === 0) {
|
|
303
|
-
while (begin > 0 && !isEOL(newText, begin - 1)) {
|
|
304
|
-
begin--;
|
|
305
|
-
}
|
|
306
|
-
while (end < newText.length && !isEOL(newText, end)) {
|
|
307
|
-
end++;
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
const edits = format(newText, { offset: begin, length: end - begin }, formattingOptions);
|
|
311
|
-
for (let i = edits.length - 1; i >= 0; i--) {
|
|
312
|
-
const curr = edits[i];
|
|
313
|
-
newText = applyEdit(newText, curr);
|
|
314
|
-
begin = Math.min(begin, curr.offset);
|
|
315
|
-
end = Math.max(end, curr.offset + curr.length);
|
|
316
|
-
end += curr.content.length - curr.length;
|
|
317
|
-
}
|
|
318
|
-
const editLength = text.length - (newText.length - end) - begin;
|
|
319
|
-
return [{ offset: begin, length: editLength, content: newText.substring(begin, end) }];
|
|
320
|
-
}
|
|
321
|
-
function applyEdit(text, edit) {
|
|
322
|
-
return text.substring(0, edit.offset) + edit.content + text.substring(edit.offset + edit.length);
|
|
323
|
-
}
|
|
1
|
+
import { refineServiceDecorator } from './polyfill.js';
|
|
2
|
+
import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
|
|
324
3
|
const FOLDER_CONFIG_FOLDER_NAME = '.vscode';
|
|
4
|
+
const FOLDER_SETTINGS_NAME = 'settings';
|
|
5
|
+
const FOLDER_SETTINGS_PATH = `${FOLDER_CONFIG_FOLDER_NAME}/${FOLDER_SETTINGS_NAME}.json`;
|
|
325
6
|
const defaultSettingsSchemaId = 'vscode://schemas/settings/default';
|
|
326
7
|
const userSettingsSchemaId = 'vscode://schemas/settings/user';
|
|
327
8
|
const profileSettingsSchemaId = 'vscode://schemas/settings/profile';
|
|
@@ -329,6 +10,13 @@ const machineSettingsSchemaId = 'vscode://schemas/settings/machine';
|
|
|
329
10
|
const workspaceSettingsSchemaId = 'vscode://schemas/settings/workspace';
|
|
330
11
|
const folderSettingsSchemaId = 'vscode://schemas/settings/folder';
|
|
331
12
|
const launchSchemaId = 'vscode://schemas/launch';
|
|
13
|
+
const tasksSchemaId = 'vscode://schemas/tasks';
|
|
14
|
+
const PROFILE_SCOPES = [2 , 3 , 4 , 5 , 6 ];
|
|
15
|
+
const LOCAL_MACHINE_PROFILE_SCOPES = [3 , 4 , 5 ];
|
|
16
|
+
const LOCAL_MACHINE_SCOPES = [1 , ...LOCAL_MACHINE_PROFILE_SCOPES];
|
|
17
|
+
const REMOTE_MACHINE_SCOPES = [2 , 3 , 4 , 5 , 6 ];
|
|
18
|
+
const WORKSPACE_SCOPES = [3 , 4 , 5 , 6 ];
|
|
19
|
+
const FOLDER_SCOPES = [4 , 5 , 6 ];
|
|
332
20
|
const TASKS_CONFIGURATION_KEY = 'tasks';
|
|
333
21
|
const LAUNCH_CONFIGURATION_KEY = 'launch';
|
|
334
22
|
const WORKSPACE_STANDALONE_CONFIGURATIONS = Object.create(null);
|
|
@@ -336,4 +24,6 @@ WORKSPACE_STANDALONE_CONFIGURATIONS[TASKS_CONFIGURATION_KEY] = `${FOLDER_CONFIG_
|
|
|
336
24
|
WORKSPACE_STANDALONE_CONFIGURATIONS[LAUNCH_CONFIGURATION_KEY] = `${FOLDER_CONFIG_FOLDER_NAME}/${LAUNCH_CONFIGURATION_KEY}.json`;
|
|
337
25
|
const USER_STANDALONE_CONFIGURATIONS = Object.create(null);
|
|
338
26
|
USER_STANDALONE_CONFIGURATIONS[TASKS_CONFIGURATION_KEY] = `${TASKS_CONFIGURATION_KEY}.json`;
|
|
339
|
-
|
|
27
|
+
const IWorkbenchConfigurationService = refineServiceDecorator(IConfigurationService);
|
|
28
|
+
const TASKS_DEFAULT = '{\n\t\"version\": \"2.0.0\",\n\t\"tasks\": []\n}';
|
|
29
|
+
export { FOLDER_CONFIG_FOLDER_NAME, FOLDER_SCOPES, FOLDER_SETTINGS_NAME, FOLDER_SETTINGS_PATH, IWorkbenchConfigurationService, LAUNCH_CONFIGURATION_KEY, LOCAL_MACHINE_PROFILE_SCOPES, LOCAL_MACHINE_SCOPES, PROFILE_SCOPES, REMOTE_MACHINE_SCOPES, TASKS_CONFIGURATION_KEY, TASKS_DEFAULT, USER_STANDALONE_CONFIGURATIONS, WORKSPACE_SCOPES, WORKSPACE_STANDALONE_CONFIGURATIONS, defaultSettingsSchemaId, folderSettingsSchemaId, launchSchemaId, machineSettingsSchemaId, profileSettingsSchemaId, tasksSchemaId, userSettingsSchemaId, workspaceSettingsSchemaId };
|