@veltra/desktop 1.2.15 → 1.2.17
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/dist/components/action/action-group.vue.d.ts +1 -1
- package/dist/components/auto-complete/auto-complete.vue.d.ts +3 -3
- package/dist/components/cascade/cascade.vue.d.ts +9 -9
- package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
- package/dist/components/checkbox/checkbox.vue.d.ts +1 -1
- package/dist/components/checkbox-group/checkbox-group.vue.d.ts +3 -3
- package/dist/components/code-editor/basic-setup.js +7 -7
- package/dist/components/code-editor/code-editor.js +7 -7
- package/dist/components/code-editor/code-editor.js.map +1 -1
- package/dist/components/code-editor/code-editor.vue.d.ts +1 -1
- package/dist/components/date-picker/date-picker.vue.d.ts +3 -3
- package/dist/components/date-range-picker/date-range-picker.vue.d.ts +3 -3
- package/dist/components/input/input.vue.d.ts +9 -9
- package/dist/components/layout/style2.css +0 -1
- package/dist/components/multi-select/multi-select.vue.d.ts +5 -5
- package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +8 -8
- package/dist/components/number-input/number-input.vue.d.ts +5 -5
- package/dist/components/number-range-input/number-range-input.vue.d.ts +3 -3
- package/dist/components/palette/palette.vue.d.ts +1 -1
- package/dist/components/password-input/password-input.vue.d.ts +2 -2
- package/dist/components/progress-nodes/progress-nodes.vue.d.ts +2 -2
- package/dist/components/radio-group/radio-group.vue.d.ts +3 -3
- package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +2 -2
- package/dist/components/select/select.vue.d.ts +4 -4
- package/dist/components/switch/switch.vue.d.ts +1 -1
- package/dist/components/tabs/tabs-horizontal.vue.d.ts +3 -3
- package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
- package/dist/components/tabs/tabs.vue.d.ts +3 -3
- package/dist/components/textarea/textarea.vue.d.ts +5 -5
- package/dist/components/tree/tree.vue.d.ts +1 -1
- package/dist/components/tree-select/tree-select.vue.d.ts +7 -7
- package/dist/node_modules/.bun/@codemirror_autocomplete@6.20.3/node_modules/@codemirror/autocomplete/dist/index.js +1750 -0
- package/dist/node_modules/.bun/@codemirror_autocomplete@6.20.3/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_commands@6.10.4/node_modules/@codemirror/commands/dist/index.js +1719 -0
- package/dist/node_modules/.bun/@codemirror_commands@6.10.4/node_modules/@codemirror/commands/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_lang-java@6.0.2/node_modules/@codemirror/lang-java/dist/index.js +51 -0
- package/dist/node_modules/.bun/@codemirror_lang-java@6.0.2/node_modules/@codemirror/lang-java/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_lang-javascript@6.2.5/node_modules/@codemirror/lang-javascript/dist/index.js +378 -0
- package/dist/node_modules/.bun/@codemirror_lang-javascript@6.2.5/node_modules/@codemirror/lang-javascript/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_lang-json@6.0.2/node_modules/@codemirror/lang-json/dist/index.js +31 -0
- package/dist/node_modules/.bun/@codemirror_lang-json@6.0.2/node_modules/@codemirror/lang-json/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_lang-sql@6.10.0/node_modules/@codemirror/lang-sql/dist/index.js +601 -0
- package/dist/node_modules/.bun/@codemirror_lang-sql@6.10.0/node_modules/@codemirror/lang-sql/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_language@6.12.4/node_modules/@codemirror/language/dist/index.js +1767 -0
- package/dist/node_modules/.bun/@codemirror_language@6.12.4/node_modules/@codemirror/language/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_lint@6.9.7/node_modules/@codemirror/lint/dist/index.js +569 -0
- package/dist/node_modules/.bun/@codemirror_lint@6.9.7/node_modules/@codemirror/lint/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_search@6.7.1/node_modules/@codemirror/search/dist/index.js +1142 -0
- package/dist/node_modules/.bun/@codemirror_search@6.7.1/node_modules/@codemirror/search/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_state@6.7.0/node_modules/@codemirror/state/dist/index.js +3372 -0
- package/dist/node_modules/.bun/@codemirror_state@6.7.0/node_modules/@codemirror/state/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_theme-one-dark@6.1.3/node_modules/@codemirror/theme-one-dark/dist/index.js +165 -0
- package/dist/node_modules/.bun/@codemirror_theme-one-dark@6.1.3/node_modules/@codemirror/theme-one-dark/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_view@6.43.3/node_modules/@codemirror/view/dist/index.js +8862 -0
- package/dist/node_modules/.bun/@codemirror_view@6.43.3/node_modules/@codemirror/view/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@codemirror_view@6.43.4/node_modules/@codemirror/view/dist/index.js +8856 -0
- package/dist/node_modules/.bun/@codemirror_view@6.43.4/node_modules/@codemirror/view/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@lezer_common@1.5.2/node_modules/@lezer/common/dist/index.js +1567 -0
- package/dist/node_modules/.bun/@lezer_common@1.5.2/node_modules/@lezer/common/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@lezer_highlight@1.2.3/node_modules/@lezer/highlight/dist/index.js +864 -0
- package/dist/node_modules/.bun/@lezer_highlight@1.2.3/node_modules/@lezer/highlight/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@lezer_java@1.1.3/node_modules/@lezer/java/dist/index.js +235 -0
- package/dist/node_modules/.bun/@lezer_java@1.1.3/node_modules/@lezer/java/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@lezer_javascript@1.5.4/node_modules/@lezer/javascript/dist/index.js +470 -0
- package/dist/node_modules/.bun/@lezer_javascript@1.5.4/node_modules/@lezer/javascript/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@lezer_json@1.0.3/node_modules/@lezer/json/dist/index.js +55 -0
- package/dist/node_modules/.bun/@lezer_json@1.0.3/node_modules/@lezer/json/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@lezer_lr@1.4.10/node_modules/@lezer/lr/dist/index.js +1485 -0
- package/dist/node_modules/.bun/@lezer_lr@1.4.10/node_modules/@lezer/lr/dist/index.js.map +1 -0
- package/dist/node_modules/.bun/@marijn_find-cluster-break@1.0.2/node_modules/@marijn/find-cluster-break/src/index.js +73 -0
- package/dist/node_modules/.bun/@marijn_find-cluster-break@1.0.2/node_modules/@marijn/find-cluster-break/src/index.js.map +1 -0
- package/dist/node_modules/.bun/crelt@1.0.6/node_modules/crelt/index.js +26 -0
- package/dist/node_modules/.bun/crelt@1.0.6/node_modules/crelt/index.js.map +1 -0
- package/dist/node_modules/.bun/style-mod@4.1.3/node_modules/style-mod/src/style-mod.js +95 -0
- package/dist/node_modules/.bun/style-mod@4.1.3/node_modules/style-mod/src/style-mod.js.map +1 -0
- package/dist/node_modules/.bun/w3c-keyname@2.2.8/node_modules/w3c-keyname/index.js +104 -0
- package/dist/node_modules/.bun/w3c-keyname@2.2.8/node_modules/w3c-keyname/index.js.map +1 -0
- package/package.json +20 -18
- package/src/components/layout/style.scss +1 -1
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { EditorSelection } from "../../../../../@codemirror_state@6.7.0/node_modules/@codemirror/state/dist/index.js";
|
|
2
|
+
import { EditorView } from "../../../../../@codemirror_view@6.43.3/node_modules/@codemirror/view/dist/index.js";
|
|
3
|
+
import { IterMode, NodeWeakMap } from "../../../../../@lezer_common@1.5.2/node_modules/@lezer/common/dist/index.js";
|
|
4
|
+
import { LRLanguage, LanguageSupport, continuedIndent, defineLanguageFacet, delimitedIndent, flatIndent, foldInside, foldNodeProp, indentNodeProp, sublanguageProp, syntaxTree } from "../../../../../@codemirror_language@6.12.4/node_modules/@codemirror/language/dist/index.js";
|
|
5
|
+
import { completeFromList, ifNotIn, snippetCompletion } from "../../../../../@codemirror_autocomplete@6.20.3/node_modules/@codemirror/autocomplete/dist/index.js";
|
|
6
|
+
import { parser } from "../../../../../@lezer_javascript@1.5.4/node_modules/@lezer/javascript/dist/index.js";
|
|
7
|
+
//#region ../../node_modules/.bun/@codemirror+lang-javascript@6.2.5/node_modules/@codemirror/lang-javascript/dist/index.js
|
|
8
|
+
/**
|
|
9
|
+
A collection of JavaScript-related
|
|
10
|
+
[snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).
|
|
11
|
+
*/
|
|
12
|
+
const snippets = [
|
|
13
|
+
/*@__PURE__*/ snippetCompletion("function ${name}(${params}) {\n ${}\n}", {
|
|
14
|
+
label: "function",
|
|
15
|
+
detail: "definition",
|
|
16
|
+
type: "keyword"
|
|
17
|
+
}),
|
|
18
|
+
/*@__PURE__*/ snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}", {
|
|
19
|
+
label: "for",
|
|
20
|
+
detail: "loop",
|
|
21
|
+
type: "keyword"
|
|
22
|
+
}),
|
|
23
|
+
/*@__PURE__*/ snippetCompletion("for (let ${name} of ${collection}) {\n ${}\n}", {
|
|
24
|
+
label: "for",
|
|
25
|
+
detail: "of loop",
|
|
26
|
+
type: "keyword"
|
|
27
|
+
}),
|
|
28
|
+
/*@__PURE__*/ snippetCompletion("do {\n ${}\n} while (${})", {
|
|
29
|
+
label: "do",
|
|
30
|
+
detail: "loop",
|
|
31
|
+
type: "keyword"
|
|
32
|
+
}),
|
|
33
|
+
/*@__PURE__*/ snippetCompletion("while (${}) {\n ${}\n}", {
|
|
34
|
+
label: "while",
|
|
35
|
+
detail: "loop",
|
|
36
|
+
type: "keyword"
|
|
37
|
+
}),
|
|
38
|
+
/*@__PURE__*/ snippetCompletion("try {\n ${}\n} catch (${error}) {\n ${}\n}", {
|
|
39
|
+
label: "try",
|
|
40
|
+
detail: "/ catch block",
|
|
41
|
+
type: "keyword"
|
|
42
|
+
}),
|
|
43
|
+
/*@__PURE__*/ snippetCompletion("if (${}) {\n ${}\n}", {
|
|
44
|
+
label: "if",
|
|
45
|
+
detail: "block",
|
|
46
|
+
type: "keyword"
|
|
47
|
+
}),
|
|
48
|
+
/*@__PURE__*/ snippetCompletion("if (${}) {\n ${}\n} else {\n ${}\n}", {
|
|
49
|
+
label: "if",
|
|
50
|
+
detail: "/ else block",
|
|
51
|
+
type: "keyword"
|
|
52
|
+
}),
|
|
53
|
+
/*@__PURE__*/ snippetCompletion("class ${name} {\n constructor(${params}) {\n ${}\n }\n}", {
|
|
54
|
+
label: "class",
|
|
55
|
+
detail: "definition",
|
|
56
|
+
type: "keyword"
|
|
57
|
+
}),
|
|
58
|
+
/*@__PURE__*/ snippetCompletion("import {${names}} from \"${module}\"\n${}", {
|
|
59
|
+
label: "import",
|
|
60
|
+
detail: "named",
|
|
61
|
+
type: "keyword"
|
|
62
|
+
}),
|
|
63
|
+
/*@__PURE__*/ snippetCompletion("import ${name} from \"${module}\"\n${}", {
|
|
64
|
+
label: "import",
|
|
65
|
+
detail: "default",
|
|
66
|
+
type: "keyword"
|
|
67
|
+
})
|
|
68
|
+
];
|
|
69
|
+
/**
|
|
70
|
+
A collection of snippet completions for TypeScript. Includes the
|
|
71
|
+
JavaScript [snippets](https://codemirror.net/6/docs/ref/#lang-javascript.snippets).
|
|
72
|
+
*/
|
|
73
|
+
const typescriptSnippets = /*@__PURE__*/ snippets.concat([
|
|
74
|
+
/*@__PURE__*/ snippetCompletion("interface ${name} {\n ${}\n}", {
|
|
75
|
+
label: "interface",
|
|
76
|
+
detail: "definition",
|
|
77
|
+
type: "keyword"
|
|
78
|
+
}),
|
|
79
|
+
/*@__PURE__*/ snippetCompletion("type ${name} = ${type}", {
|
|
80
|
+
label: "type",
|
|
81
|
+
detail: "definition",
|
|
82
|
+
type: "keyword"
|
|
83
|
+
}),
|
|
84
|
+
/*@__PURE__*/ snippetCompletion("enum ${name} {\n ${}\n}", {
|
|
85
|
+
label: "enum",
|
|
86
|
+
detail: "definition",
|
|
87
|
+
type: "keyword"
|
|
88
|
+
})
|
|
89
|
+
]);
|
|
90
|
+
const cache = /*@__PURE__*/ new NodeWeakMap();
|
|
91
|
+
const ScopeNodes = /*@__PURE__*/ new Set([
|
|
92
|
+
"Script",
|
|
93
|
+
"Block",
|
|
94
|
+
"FunctionExpression",
|
|
95
|
+
"FunctionDeclaration",
|
|
96
|
+
"ArrowFunction",
|
|
97
|
+
"MethodDeclaration",
|
|
98
|
+
"ForStatement"
|
|
99
|
+
]);
|
|
100
|
+
function defID(type) {
|
|
101
|
+
return (node, def) => {
|
|
102
|
+
let id = node.node.getChild("VariableDefinition");
|
|
103
|
+
if (id) def(id, type);
|
|
104
|
+
return true;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const functionContext = ["FunctionDeclaration"];
|
|
108
|
+
const gatherCompletions = {
|
|
109
|
+
FunctionDeclaration: /*@__PURE__*/ defID("function"),
|
|
110
|
+
ClassDeclaration: /*@__PURE__*/ defID("class"),
|
|
111
|
+
ClassExpression: () => true,
|
|
112
|
+
EnumDeclaration: /*@__PURE__*/ defID("constant"),
|
|
113
|
+
TypeAliasDeclaration: /*@__PURE__*/ defID("type"),
|
|
114
|
+
NamespaceDeclaration: /*@__PURE__*/ defID("namespace"),
|
|
115
|
+
VariableDefinition(node, def) {
|
|
116
|
+
if (!node.matchContext(functionContext)) def(node, "variable");
|
|
117
|
+
},
|
|
118
|
+
TypeDefinition(node, def) {
|
|
119
|
+
def(node, "type");
|
|
120
|
+
},
|
|
121
|
+
__proto__: null
|
|
122
|
+
};
|
|
123
|
+
function getScope(doc, node) {
|
|
124
|
+
let cached = cache.get(node);
|
|
125
|
+
if (cached) return cached;
|
|
126
|
+
let completions = [], top = true;
|
|
127
|
+
function def(node, type) {
|
|
128
|
+
let name = doc.sliceString(node.from, node.to);
|
|
129
|
+
completions.push({
|
|
130
|
+
label: name,
|
|
131
|
+
type
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
node.cursor(IterMode.IncludeAnonymous).iterate((node) => {
|
|
135
|
+
if (top) top = false;
|
|
136
|
+
else if (node.name) {
|
|
137
|
+
let gather = gatherCompletions[node.name];
|
|
138
|
+
if (gather && gather(node, def) || ScopeNodes.has(node.name)) return false;
|
|
139
|
+
} else if (node.to - node.from > 8192) {
|
|
140
|
+
for (let c of getScope(doc, node.node)) completions.push(c);
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
cache.set(node, completions);
|
|
145
|
+
return completions;
|
|
146
|
+
}
|
|
147
|
+
const Identifier = /^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/;
|
|
148
|
+
const dontComplete = [
|
|
149
|
+
"TemplateString",
|
|
150
|
+
"String",
|
|
151
|
+
"RegExp",
|
|
152
|
+
"LineComment",
|
|
153
|
+
"BlockComment",
|
|
154
|
+
"VariableDefinition",
|
|
155
|
+
"TypeDefinition",
|
|
156
|
+
"Label",
|
|
157
|
+
"PropertyDefinition",
|
|
158
|
+
"PropertyName",
|
|
159
|
+
"PrivatePropertyDefinition",
|
|
160
|
+
"PrivatePropertyName",
|
|
161
|
+
"JSXText",
|
|
162
|
+
"JSXAttributeValue",
|
|
163
|
+
"JSXOpenTag",
|
|
164
|
+
"JSXCloseTag",
|
|
165
|
+
"JSXSelfClosingTag",
|
|
166
|
+
".",
|
|
167
|
+
"?."
|
|
168
|
+
];
|
|
169
|
+
/**
|
|
170
|
+
Completion source that looks up locally defined names in
|
|
171
|
+
JavaScript code.
|
|
172
|
+
*/
|
|
173
|
+
function localCompletionSource(context) {
|
|
174
|
+
let inner = syntaxTree(context.state).resolveInner(context.pos, -1);
|
|
175
|
+
if (dontComplete.indexOf(inner.name) > -1) return null;
|
|
176
|
+
let isWord = inner.name == "VariableName" || inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));
|
|
177
|
+
if (!isWord && !context.explicit) return null;
|
|
178
|
+
let options = [];
|
|
179
|
+
for (let pos = inner; pos; pos = pos.parent) if (ScopeNodes.has(pos.name)) options = options.concat(getScope(context.state.doc, pos));
|
|
180
|
+
return {
|
|
181
|
+
options,
|
|
182
|
+
from: isWord ? inner.from : context.pos,
|
|
183
|
+
validFor: Identifier
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
A language provider based on the [Lezer JavaScript
|
|
188
|
+
parser](https://github.com/lezer-parser/javascript), extended with
|
|
189
|
+
highlighting and indentation information.
|
|
190
|
+
*/
|
|
191
|
+
const javascriptLanguage = /*@__PURE__*/ LRLanguage.define({
|
|
192
|
+
name: "javascript",
|
|
193
|
+
parser: /*@__PURE__*/ parser.configure({ props: [/*@__PURE__*/ indentNodeProp.add({
|
|
194
|
+
IfStatement: /*@__PURE__*/ continuedIndent({ except: /^\s*({|else\b)/ }),
|
|
195
|
+
TryStatement: /*@__PURE__*/ continuedIndent({ except: /^\s*({|catch\b|finally\b)/ }),
|
|
196
|
+
LabeledStatement: flatIndent,
|
|
197
|
+
SwitchBody: (context) => {
|
|
198
|
+
let after = context.textAfter, closed = /^\s*\}/.test(after), isCase = /^\s*(case|default)\b/.test(after);
|
|
199
|
+
return context.baseIndent + (closed ? 0 : isCase ? 1 : 2) * context.unit;
|
|
200
|
+
},
|
|
201
|
+
Block: /*@__PURE__*/ delimitedIndent({ closing: "}" }),
|
|
202
|
+
ArrowFunction: (cx) => cx.baseIndent + cx.unit,
|
|
203
|
+
"TemplateString BlockComment": () => null,
|
|
204
|
+
"Statement Property": /*@__PURE__*/ continuedIndent({ except: /^\s*{/ }),
|
|
205
|
+
JSXElement(context) {
|
|
206
|
+
let closed = /^\s*<\//.test(context.textAfter);
|
|
207
|
+
return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);
|
|
208
|
+
},
|
|
209
|
+
JSXEscape(context) {
|
|
210
|
+
let closed = /\s*\}/.test(context.textAfter);
|
|
211
|
+
return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);
|
|
212
|
+
},
|
|
213
|
+
"JSXOpenTag JSXSelfClosingTag"(context) {
|
|
214
|
+
return context.column(context.node.from) + context.unit;
|
|
215
|
+
}
|
|
216
|
+
}), /*@__PURE__*/ foldNodeProp.add({
|
|
217
|
+
"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType": foldInside,
|
|
218
|
+
BlockComment(tree) {
|
|
219
|
+
return {
|
|
220
|
+
from: tree.from + 2,
|
|
221
|
+
to: tree.to - 2
|
|
222
|
+
};
|
|
223
|
+
},
|
|
224
|
+
JSXElement(tree) {
|
|
225
|
+
let open = tree.firstChild;
|
|
226
|
+
if (!open || open.name == "JSXSelfClosingTag") return null;
|
|
227
|
+
let close = tree.lastChild;
|
|
228
|
+
return {
|
|
229
|
+
from: open.to,
|
|
230
|
+
to: close.type.isError ? tree.to : close.from
|
|
231
|
+
};
|
|
232
|
+
},
|
|
233
|
+
"JSXSelfClosingTag JSXOpenTag"(tree) {
|
|
234
|
+
var _a;
|
|
235
|
+
let name = (_a = tree.firstChild) === null || _a === void 0 ? void 0 : _a.nextSibling, close = tree.lastChild;
|
|
236
|
+
if (!name || name.type.isError) return null;
|
|
237
|
+
return {
|
|
238
|
+
from: name.to,
|
|
239
|
+
to: close.type.isError ? tree.to : close.from
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
})] }),
|
|
243
|
+
languageData: {
|
|
244
|
+
closeBrackets: { brackets: [
|
|
245
|
+
"(",
|
|
246
|
+
"[",
|
|
247
|
+
"{",
|
|
248
|
+
"'",
|
|
249
|
+
"\"",
|
|
250
|
+
"`"
|
|
251
|
+
] },
|
|
252
|
+
commentTokens: {
|
|
253
|
+
line: "//",
|
|
254
|
+
block: {
|
|
255
|
+
open: "/*",
|
|
256
|
+
close: "*/"
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
indentOnInput: /^\s*(?:case |default:|\{|\}|<\/)$/,
|
|
260
|
+
wordChars: "$"
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
const jsxSublanguage = {
|
|
264
|
+
test: (node) => /^JSX/.test(node.name),
|
|
265
|
+
facet: /*@__PURE__*/ defineLanguageFacet({ commentTokens: { block: {
|
|
266
|
+
open: "{/*",
|
|
267
|
+
close: "*/}"
|
|
268
|
+
} } })
|
|
269
|
+
};
|
|
270
|
+
/**
|
|
271
|
+
A language provider for TypeScript.
|
|
272
|
+
*/
|
|
273
|
+
const typescriptLanguage = /*@__PURE__*/ javascriptLanguage.configure({ dialect: "ts" }, "typescript");
|
|
274
|
+
/**
|
|
275
|
+
Language provider for JSX.
|
|
276
|
+
*/
|
|
277
|
+
const jsxLanguage = /*@__PURE__*/ javascriptLanguage.configure({
|
|
278
|
+
dialect: "jsx",
|
|
279
|
+
props: [/*@__PURE__*/ sublanguageProp.add((n) => n.isTop ? [jsxSublanguage] : void 0)]
|
|
280
|
+
});
|
|
281
|
+
/**
|
|
282
|
+
Language provider for JSX + TypeScript.
|
|
283
|
+
*/
|
|
284
|
+
const tsxLanguage = /*@__PURE__*/ javascriptLanguage.configure({
|
|
285
|
+
dialect: "jsx ts",
|
|
286
|
+
props: [/*@__PURE__*/ sublanguageProp.add((n) => n.isTop ? [jsxSublanguage] : void 0)]
|
|
287
|
+
}, "typescript");
|
|
288
|
+
let kwCompletion = (name) => ({
|
|
289
|
+
label: name,
|
|
290
|
+
type: "keyword"
|
|
291
|
+
});
|
|
292
|
+
const keywords = /*@__PURE__*/ "break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(kwCompletion);
|
|
293
|
+
const typescriptKeywords = /*@__PURE__*/ keywords.concat(/*@__PURE__*/ [
|
|
294
|
+
"declare",
|
|
295
|
+
"implements",
|
|
296
|
+
"private",
|
|
297
|
+
"protected",
|
|
298
|
+
"public"
|
|
299
|
+
].map(kwCompletion));
|
|
300
|
+
/**
|
|
301
|
+
JavaScript support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-javascript.snippets)
|
|
302
|
+
and local variable completion.
|
|
303
|
+
*/
|
|
304
|
+
function javascript(config = {}) {
|
|
305
|
+
let lang = config.jsx ? config.typescript ? tsxLanguage : jsxLanguage : config.typescript ? typescriptLanguage : javascriptLanguage;
|
|
306
|
+
let completions = config.typescript ? typescriptSnippets.concat(typescriptKeywords) : snippets.concat(keywords);
|
|
307
|
+
return new LanguageSupport(lang, [
|
|
308
|
+
javascriptLanguage.data.of({ autocomplete: ifNotIn(dontComplete, completeFromList(completions)) }),
|
|
309
|
+
javascriptLanguage.data.of({ autocomplete: localCompletionSource }),
|
|
310
|
+
config.jsx ? autoCloseTags : []
|
|
311
|
+
]);
|
|
312
|
+
}
|
|
313
|
+
function findOpenTag(node) {
|
|
314
|
+
for (;;) {
|
|
315
|
+
if (node.name == "JSXOpenTag" || node.name == "JSXSelfClosingTag" || node.name == "JSXFragmentTag") return node;
|
|
316
|
+
if (node.name == "JSXEscape" || !node.parent) return null;
|
|
317
|
+
node = node.parent;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
function elementName(doc, tree, max = doc.length) {
|
|
321
|
+
for (let ch = tree === null || tree === void 0 ? void 0 : tree.firstChild; ch; ch = ch.nextSibling) if (ch.name == "JSXIdentifier" || ch.name == "JSXBuiltin" || ch.name == "JSXNamespacedName" || ch.name == "JSXMemberExpression") return doc.sliceString(ch.from, Math.min(ch.to, max));
|
|
322
|
+
return "";
|
|
323
|
+
}
|
|
324
|
+
const android = typeof navigator == "object" && /*@__PURE__*/ /Android\b/.test(navigator.userAgent);
|
|
325
|
+
/**
|
|
326
|
+
Extension that will automatically insert JSX close tags when a `>` or
|
|
327
|
+
`/` is typed.
|
|
328
|
+
*/
|
|
329
|
+
const autoCloseTags = /*@__PURE__*/ EditorView.inputHandler.of((view, from, to, text, defaultInsert) => {
|
|
330
|
+
if ((android ? view.composing : view.compositionStarted) || view.state.readOnly || from != to || text != ">" && text != "/" || !javascriptLanguage.isActiveAt(view.state, from, -1)) return false;
|
|
331
|
+
let base = defaultInsert(), { state } = base;
|
|
332
|
+
let closeTags = state.changeByRange((range) => {
|
|
333
|
+
var _a;
|
|
334
|
+
let { head } = range, around = syntaxTree(state).resolveInner(head - 1, -1), name;
|
|
335
|
+
if (around.name == "JSXStartTag") around = around.parent;
|
|
336
|
+
if (state.doc.sliceString(head - 1, head) != text || around.name == "JSXAttributeValue" && around.to > head);
|
|
337
|
+
else if (text == ">" && around.name == "JSXFragmentTag") return {
|
|
338
|
+
range,
|
|
339
|
+
changes: {
|
|
340
|
+
from: head,
|
|
341
|
+
insert: `</>`
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
else if (text == "/" && around.name == "JSXStartCloseTag") {
|
|
345
|
+
let empty = around.parent, base = empty.parent;
|
|
346
|
+
if (base && empty.from == head - 2 && ((name = elementName(state.doc, base.firstChild, head)) || ((_a = base.firstChild) === null || _a === void 0 ? void 0 : _a.name) == "JSXFragmentTag")) {
|
|
347
|
+
let insert = `${name}>`;
|
|
348
|
+
return {
|
|
349
|
+
range: EditorSelection.cursor(head + insert.length, -1),
|
|
350
|
+
changes: {
|
|
351
|
+
from: head,
|
|
352
|
+
insert
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
} else if (text == ">") {
|
|
357
|
+
let openTag = findOpenTag(around);
|
|
358
|
+
if (openTag && openTag.name == "JSXOpenTag" && !/^\/?>|^<\//.test(state.doc.sliceString(head, head + 2)) && (name = elementName(state.doc, openTag, head))) return {
|
|
359
|
+
range,
|
|
360
|
+
changes: {
|
|
361
|
+
from: head,
|
|
362
|
+
insert: `</${name}>`
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
return { range };
|
|
367
|
+
});
|
|
368
|
+
if (closeTags.changes.empty) return false;
|
|
369
|
+
view.dispatch([base, state.update(closeTags, {
|
|
370
|
+
userEvent: "input.complete",
|
|
371
|
+
scrollIntoView: true
|
|
372
|
+
})]);
|
|
373
|
+
return true;
|
|
374
|
+
});
|
|
375
|
+
//#endregion
|
|
376
|
+
export { javascript };
|
|
377
|
+
|
|
378
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/@codemirror+lang-javascript@6.2.5/node_modules/@codemirror/lang-javascript/dist/index.js"],"sourcesContent":["import { parser } from '@lezer/javascript';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, flatIndent, delimitedIndent, foldNodeProp, foldInside, defineLanguageFacet, sublanguageProp, LanguageSupport } from '@codemirror/language';\nimport { EditorSelection } from '@codemirror/state';\nimport { EditorView } from '@codemirror/view';\nimport { snippetCompletion, ifNotIn, completeFromList } from '@codemirror/autocomplete';\nimport { NodeWeakMap, IterMode } from '@lezer/common';\n\n/**\nA collection of JavaScript-related\n[snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).\n*/\nconst snippets = [\n /*@__PURE__*/snippetCompletion(\"function ${name}(${params}) {\\n\\t${}\\n}\", {\n label: \"function\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for (let ${name} of ${collection}) {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"of loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"do {\\n\\t${}\\n} while (${})\", {\n label: \"do\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"while (${}) {\\n\\t${}\\n}\", {\n label: \"while\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"try {\\n\\t${}\\n} catch (${error}) {\\n\\t${}\\n}\", {\n label: \"try\",\n detail: \"/ catch block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if (${}) {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if (${}) {\\n\\t${}\\n} else {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"/ else block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"class ${name} {\\n\\tconstructor(${params}) {\\n\\t\\t${}\\n\\t}\\n}\", {\n label: \"class\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"import {${names}} from \\\"${module}\\\"\\n${}\", {\n label: \"import\",\n detail: \"named\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"import ${name} from \\\"${module}\\\"\\n${}\", {\n label: \"import\",\n detail: \"default\",\n type: \"keyword\"\n })\n];\n/**\nA collection of snippet completions for TypeScript. Includes the\nJavaScript [snippets](https://codemirror.net/6/docs/ref/#lang-javascript.snippets).\n*/\nconst typescriptSnippets = /*@__PURE__*/snippets.concat([\n /*@__PURE__*/snippetCompletion(\"interface ${name} {\\n\\t${}\\n}\", {\n label: \"interface\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"type ${name} = ${type}\", {\n label: \"type\",\n detail: \"definition\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"enum ${name} {\\n\\t${}\\n}\", {\n label: \"enum\",\n detail: \"definition\",\n type: \"keyword\"\n })\n]);\n\nconst cache = /*@__PURE__*/new NodeWeakMap();\nconst ScopeNodes = /*@__PURE__*/new Set([\n \"Script\", \"Block\",\n \"FunctionExpression\", \"FunctionDeclaration\", \"ArrowFunction\", \"MethodDeclaration\",\n \"ForStatement\"\n]);\nfunction defID(type) {\n return (node, def) => {\n let id = node.node.getChild(\"VariableDefinition\");\n if (id)\n def(id, type);\n return true;\n };\n}\nconst functionContext = [\"FunctionDeclaration\"];\nconst gatherCompletions = {\n FunctionDeclaration: /*@__PURE__*/defID(\"function\"),\n ClassDeclaration: /*@__PURE__*/defID(\"class\"),\n ClassExpression: () => true,\n EnumDeclaration: /*@__PURE__*/defID(\"constant\"),\n TypeAliasDeclaration: /*@__PURE__*/defID(\"type\"),\n NamespaceDeclaration: /*@__PURE__*/defID(\"namespace\"),\n VariableDefinition(node, def) { if (!node.matchContext(functionContext))\n def(node, \"variable\"); },\n TypeDefinition(node, def) { def(node, \"type\"); },\n __proto__: null\n};\nfunction getScope(doc, node) {\n let cached = cache.get(node);\n if (cached)\n return cached;\n let completions = [], top = true;\n function def(node, type) {\n let name = doc.sliceString(node.from, node.to);\n completions.push({ label: name, type });\n }\n node.cursor(IterMode.IncludeAnonymous).iterate(node => {\n if (top) {\n top = false;\n }\n else if (node.name) {\n let gather = gatherCompletions[node.name];\n if (gather && gather(node, def) || ScopeNodes.has(node.name))\n return false;\n }\n else if (node.to - node.from > 8192) {\n // Allow caching for bigger internal nodes\n for (let c of getScope(doc, node.node))\n completions.push(c);\n return false;\n }\n });\n cache.set(node, completions);\n return completions;\n}\nconst Identifier = /^[\\w$\\xa1-\\uffff][\\w$\\d\\xa1-\\uffff]*$/;\nconst dontComplete = [\n \"TemplateString\", \"String\", \"RegExp\",\n \"LineComment\", \"BlockComment\",\n \"VariableDefinition\", \"TypeDefinition\", \"Label\",\n \"PropertyDefinition\", \"PropertyName\",\n \"PrivatePropertyDefinition\", \"PrivatePropertyName\",\n \"JSXText\", \"JSXAttributeValue\", \"JSXOpenTag\", \"JSXCloseTag\", \"JSXSelfClosingTag\",\n \".\", \"?.\"\n];\n/**\nCompletion source that looks up locally defined names in\nJavaScript code.\n*/\nfunction localCompletionSource(context) {\n let inner = syntaxTree(context.state).resolveInner(context.pos, -1);\n if (dontComplete.indexOf(inner.name) > -1)\n return null;\n let isWord = inner.name == \"VariableName\" ||\n inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));\n if (!isWord && !context.explicit)\n return null;\n let options = [];\n for (let pos = inner; pos; pos = pos.parent) {\n if (ScopeNodes.has(pos.name))\n options = options.concat(getScope(context.state.doc, pos));\n }\n return {\n options,\n from: isWord ? inner.from : context.pos,\n validFor: Identifier\n };\n}\nfunction pathFor(read, member, name) {\n var _a;\n let path = [];\n for (;;) {\n let obj = member.firstChild, prop;\n if ((obj === null || obj === void 0 ? void 0 : obj.name) == \"VariableName\") {\n path.push(read(obj));\n return { path: path.reverse(), name };\n }\n else if ((obj === null || obj === void 0 ? void 0 : obj.name) == \"MemberExpression\" && ((_a = (prop = obj.lastChild)) === null || _a === void 0 ? void 0 : _a.name) == \"PropertyName\") {\n path.push(read(prop));\n member = obj;\n }\n else {\n return null;\n }\n }\n}\n/**\nHelper function for defining JavaScript completion sources. It\nreturns the completable name and object path for a completion\ncontext, or null if no name/property completion should happen at\nthat position. For example, when completing after `a.b.c` it will\nreturn `{path: [\"a\", \"b\"], name: \"c\"}`. When completing after `x`\nit will return `{path: [], name: \"x\"}`. When not in a property or\nname, it will return null if `context.explicit` is false, and\n`{path: [], name: \"\"}` otherwise.\n*/\nfunction completionPath(context) {\n let read = (node) => context.state.doc.sliceString(node.from, node.to);\n let inner = syntaxTree(context.state).resolveInner(context.pos, -1);\n if (inner.name == \"PropertyName\") {\n return pathFor(read, inner.parent, read(inner));\n }\n else if ((inner.name == \".\" || inner.name == \"?.\") && inner.parent.name == \"MemberExpression\") {\n return pathFor(read, inner.parent, \"\");\n }\n else if (dontComplete.indexOf(inner.name) > -1) {\n return null;\n }\n else if (inner.name == \"VariableName\" || inner.to - inner.from < 20 && Identifier.test(read(inner))) {\n return { path: [], name: read(inner) };\n }\n else if (inner.name == \"MemberExpression\") {\n return pathFor(read, inner, \"\");\n }\n else {\n return context.explicit ? { path: [], name: \"\" } : null;\n }\n}\nfunction enumeratePropertyCompletions(obj, top) {\n let originalObj = obj;\n let options = [], seen = new Set;\n for (let depth = 0;; depth++) {\n for (let name of (Object.getOwnPropertyNames || Object.keys)(obj)) {\n if (!/^[a-zA-Z_$\\xaa-\\uffdc][\\w$\\xaa-\\uffdc]*$/.test(name) || seen.has(name))\n continue;\n seen.add(name);\n let value;\n try {\n value = originalObj[name];\n }\n catch (_) {\n continue;\n }\n options.push({\n label: name,\n type: typeof value == \"function\" ? (/^[A-Z]/.test(name) ? \"class\" : top ? \"function\" : \"method\")\n : top ? \"variable\" : \"property\",\n boost: -depth\n });\n }\n let next = Object.getPrototypeOf(obj);\n if (!next)\n return options;\n obj = next;\n }\n}\n/**\nDefines a [completion source](https://codemirror.net/6/docs/ref/#autocomplete.CompletionSource) that\ncompletes from the given scope object (for example `globalThis`).\nWill enter properties of the object when completing properties on\na directly-named path.\n*/\nfunction scopeCompletionSource(scope) {\n let cache = new Map;\n return (context) => {\n let path = completionPath(context);\n if (!path)\n return null;\n let target = scope;\n for (let step of path.path) {\n target = target[step];\n if (!target)\n return null;\n }\n let options = cache.get(target);\n if (!options)\n cache.set(target, options = enumeratePropertyCompletions(target, !path.path.length));\n return {\n from: context.pos - path.name.length,\n options,\n validFor: Identifier\n };\n };\n}\n\n/**\nA language provider based on the [Lezer JavaScript\nparser](https://github.com/lezer-parser/javascript), extended with\nhighlighting and indentation information.\n*/\nconst javascriptLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"javascript\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n IfStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|else\\b)/ }),\n TryStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|catch\\b|finally\\b)/ }),\n LabeledStatement: flatIndent,\n SwitchBody: context => {\n let after = context.textAfter, closed = /^\\s*\\}/.test(after), isCase = /^\\s*(case|default)\\b/.test(after);\n return context.baseIndent + (closed ? 0 : isCase ? 1 : 2) * context.unit;\n },\n Block: /*@__PURE__*/delimitedIndent({ closing: \"}\" }),\n ArrowFunction: cx => cx.baseIndent + cx.unit,\n \"TemplateString BlockComment\": () => null,\n \"Statement Property\": /*@__PURE__*/continuedIndent({ except: /^\\s*{/ }),\n JSXElement(context) {\n let closed = /^\\s*<\\//.test(context.textAfter);\n return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);\n },\n JSXEscape(context) {\n let closed = /\\s*\\}/.test(context.textAfter);\n return context.lineIndent(context.node.from) + (closed ? 0 : context.unit);\n },\n \"JSXOpenTag JSXSelfClosingTag\"(context) {\n return context.column(context.node.from) + context.unit;\n }\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType\": foldInside,\n BlockComment(tree) { return { from: tree.from + 2, to: tree.to - 2 }; },\n JSXElement(tree) {\n let open = tree.firstChild;\n if (!open || open.name == \"JSXSelfClosingTag\")\n return null;\n let close = tree.lastChild;\n return { from: open.to, to: close.type.isError ? tree.to : close.from };\n },\n \"JSXSelfClosingTag JSXOpenTag\"(tree) {\n var _a;\n let name = (_a = tree.firstChild) === null || _a === void 0 ? void 0 : _a.nextSibling, close = tree.lastChild;\n if (!name || name.type.isError)\n return null;\n return { from: name.to, to: close.type.isError ? tree.to : close.from };\n }\n })\n ]\n }),\n languageData: {\n closeBrackets: { brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"] },\n commentTokens: { line: \"//\", block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*(?:case |default:|\\{|\\}|<\\/)$/,\n wordChars: \"$\"\n }\n});\nconst jsxSublanguage = {\n test: node => /^JSX/.test(node.name),\n facet: /*@__PURE__*/defineLanguageFacet({ commentTokens: { block: { open: \"{/*\", close: \"*/}\" } } })\n};\n/**\nA language provider for TypeScript.\n*/\nconst typescriptLanguage = /*@__PURE__*/javascriptLanguage.configure({ dialect: \"ts\" }, \"typescript\");\n/**\nLanguage provider for JSX.\n*/\nconst jsxLanguage = /*@__PURE__*/javascriptLanguage.configure({\n dialect: \"jsx\",\n props: [/*@__PURE__*/sublanguageProp.add(n => n.isTop ? [jsxSublanguage] : undefined)]\n});\n/**\nLanguage provider for JSX + TypeScript.\n*/\nconst tsxLanguage = /*@__PURE__*/javascriptLanguage.configure({\n dialect: \"jsx ts\",\n props: [/*@__PURE__*/sublanguageProp.add(n => n.isTop ? [jsxSublanguage] : undefined)]\n}, \"typescript\");\nlet kwCompletion = (name) => ({ label: name, type: \"keyword\" });\nconst keywords = /*@__PURE__*/\"break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield\".split(\" \").map(kwCompletion);\nconst typescriptKeywords = /*@__PURE__*/keywords.concat(/*@__PURE__*/[\"declare\", \"implements\", \"private\", \"protected\", \"public\"].map(kwCompletion));\n/**\nJavaScript support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-javascript.snippets)\nand local variable completion.\n*/\nfunction javascript(config = {}) {\n let lang = config.jsx ? (config.typescript ? tsxLanguage : jsxLanguage)\n : config.typescript ? typescriptLanguage : javascriptLanguage;\n let completions = config.typescript ? typescriptSnippets.concat(typescriptKeywords) : snippets.concat(keywords);\n return new LanguageSupport(lang, [\n javascriptLanguage.data.of({\n autocomplete: ifNotIn(dontComplete, completeFromList(completions))\n }),\n javascriptLanguage.data.of({\n autocomplete: localCompletionSource\n }),\n config.jsx ? autoCloseTags : [],\n ]);\n}\nfunction findOpenTag(node) {\n for (;;) {\n if (node.name == \"JSXOpenTag\" || node.name == \"JSXSelfClosingTag\" || node.name == \"JSXFragmentTag\")\n return node;\n if (node.name == \"JSXEscape\" || !node.parent)\n return null;\n node = node.parent;\n }\n}\nfunction elementName(doc, tree, max = doc.length) {\n for (let ch = tree === null || tree === void 0 ? void 0 : tree.firstChild; ch; ch = ch.nextSibling) {\n if (ch.name == \"JSXIdentifier\" || ch.name == \"JSXBuiltin\" || ch.name == \"JSXNamespacedName\" ||\n ch.name == \"JSXMemberExpression\")\n return doc.sliceString(ch.from, Math.min(ch.to, max));\n }\n return \"\";\n}\nconst android = typeof navigator == \"object\" && /*@__PURE__*//Android\\b/.test(navigator.userAgent);\n/**\nExtension that will automatically insert JSX close tags when a `>` or\n`/` is typed.\n*/\nconst autoCloseTags = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, text, defaultInsert) => {\n if ((android ? view.composing : view.compositionStarted) || view.state.readOnly ||\n from != to || (text != \">\" && text != \"/\") ||\n !javascriptLanguage.isActiveAt(view.state, from, -1))\n return false;\n let base = defaultInsert(), { state } = base;\n let closeTags = state.changeByRange(range => {\n var _a;\n let { head } = range, around = syntaxTree(state).resolveInner(head - 1, -1), name;\n if (around.name == \"JSXStartTag\")\n around = around.parent;\n if (state.doc.sliceString(head - 1, head) != text || around.name == \"JSXAttributeValue\" && around.to > head) ;\n else if (text == \">\" && around.name == \"JSXFragmentTag\") {\n return { range, changes: { from: head, insert: `</>` } };\n }\n else if (text == \"/\" && around.name == \"JSXStartCloseTag\") {\n let empty = around.parent, base = empty.parent;\n if (base && empty.from == head - 2 &&\n ((name = elementName(state.doc, base.firstChild, head)) || ((_a = base.firstChild) === null || _a === void 0 ? void 0 : _a.name) == \"JSXFragmentTag\")) {\n let insert = `${name}>`;\n return { range: EditorSelection.cursor(head + insert.length, -1), changes: { from: head, insert } };\n }\n }\n else if (text == \">\") {\n let openTag = findOpenTag(around);\n if (openTag && openTag.name == \"JSXOpenTag\" &&\n !/^\\/?>|^<\\//.test(state.doc.sliceString(head, head + 2)) &&\n (name = elementName(state.doc, openTag, head)))\n return { range, changes: { from: head, insert: `</${name}>` } };\n }\n return { range };\n });\n if (closeTags.changes.empty)\n return false;\n view.dispatch([\n base,\n state.update(closeTags, { userEvent: \"input.complete\", scrollIntoView: true })\n ]);\n return true;\n});\n\n/**\nConnects an [ESLint](https://eslint.org/) linter to CodeMirror's\n[lint](https://codemirror.net/6/docs/ref/#lint) integration. `eslint` should be an instance of the\n[`Linter`](https://eslint.org/docs/developer-guide/nodejs-api#linter)\nclass, and `config` an optional ESLint configuration. The return\nvalue of this function can be passed to [`linter`](https://codemirror.net/6/docs/ref/#lint.linter)\nto create a JavaScript linting extension.\n\nNote that ESLint targets node, and is tricky to run in the\nbrowser. The\n[eslint-linter-browserify](https://github.com/UziTech/eslint-linter-browserify)\npackage may help with that (see\n[example](https://github.com/UziTech/eslint-linter-browserify/blob/master/example/script.js)).\n*/\nfunction esLint(eslint, config) {\n if (!config) {\n config = {\n parserOptions: { ecmaVersion: 2019, sourceType: \"module\" },\n env: { browser: true, node: true, es6: true, es2015: true, es2017: true, es2020: true },\n rules: {}\n };\n eslint.getRules().forEach((desc, name) => {\n var _a;\n if ((_a = desc.meta.docs) === null || _a === void 0 ? void 0 : _a.recommended)\n config.rules[name] = 2;\n });\n }\n return (view) => {\n let { state } = view, found = [];\n for (let { from, to } of javascriptLanguage.findRegions(state)) {\n let fromLine = state.doc.lineAt(from), offset = { line: fromLine.number - 1, col: from - fromLine.from, pos: from };\n for (let d of eslint.verify(state.sliceDoc(from, to), config))\n found.push(translateDiagnostic(d, state.doc, offset));\n }\n return found;\n };\n}\nfunction mapPos(line, col, doc, offset) {\n return doc.line(line + offset.line).from + col + (line == 1 ? offset.col - 1 : -1);\n}\nfunction translateDiagnostic(input, doc, offset) {\n let start = mapPos(input.line, input.column, doc, offset);\n let result = {\n from: start,\n to: input.endLine != null && input.endColumn != 1 ? mapPos(input.endLine, input.endColumn, doc, offset) : start,\n message: input.message,\n source: input.ruleId ? \"eslint:\" + input.ruleId : \"eslint\",\n severity: input.severity == 1 ? \"warning\" : \"error\",\n };\n if (input.fix) {\n let { range, text } = input.fix, from = range[0] + offset.pos - start, to = range[1] + offset.pos - start;\n result.actions = [{\n name: \"fix\",\n apply(view, start) {\n view.dispatch({ changes: { from: start + from, to: start + to, insert: text }, scrollIntoView: true });\n }\n }];\n }\n return result;\n}\n\nexport { autoCloseTags, completionPath, esLint, javascript, javascriptLanguage, jsxLanguage, localCompletionSource, scopeCompletionSource, snippets, tsxLanguage, typescriptLanguage, typescriptSnippets };\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { LRLanguage, LanguageSupport, continuedIndent, foldInside, foldNodeProp, indentNodeProp } from "../../../../../@codemirror_language@6.12.4/node_modules/@codemirror/language/dist/index.js";
|
|
2
|
+
import { parser } from "../../../../../@lezer_json@1.0.3/node_modules/@lezer/json/dist/index.js";
|
|
3
|
+
//#region ../../node_modules/.bun/@codemirror+lang-json@6.0.2/node_modules/@codemirror/lang-json/dist/index.js
|
|
4
|
+
/**
|
|
5
|
+
A language provider that provides JSON parsing.
|
|
6
|
+
*/
|
|
7
|
+
const jsonLanguage = /*@__PURE__*/ LRLanguage.define({
|
|
8
|
+
name: "json",
|
|
9
|
+
parser: /*@__PURE__*/ parser.configure({ props: [/*@__PURE__*/ indentNodeProp.add({
|
|
10
|
+
Object: /*@__PURE__*/ continuedIndent({ except: /^\s*\}/ }),
|
|
11
|
+
Array: /*@__PURE__*/ continuedIndent({ except: /^\s*\]/ })
|
|
12
|
+
}), /*@__PURE__*/ foldNodeProp.add({ "Object Array": foldInside })] }),
|
|
13
|
+
languageData: {
|
|
14
|
+
closeBrackets: { brackets: [
|
|
15
|
+
"[",
|
|
16
|
+
"{",
|
|
17
|
+
"\""
|
|
18
|
+
] },
|
|
19
|
+
indentOnInput: /^\s*[\}\]]$/
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
JSON language support.
|
|
24
|
+
*/
|
|
25
|
+
function json() {
|
|
26
|
+
return new LanguageSupport(jsonLanguage);
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { json };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../../../node_modules/.bun/@codemirror+lang-json@6.0.2/node_modules/@codemirror/lang-json/dist/index.js"],"sourcesContent":["import { parser } from '@lezer/json';\nimport { LRLanguage, indentNodeProp, continuedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\n\n/**\nCalls\n[`JSON.parse`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)\non the document and, if that throws an error, reports it as a\nsingle diagnostic.\n*/\nconst jsonParseLinter = () => (view) => {\n try {\n JSON.parse(view.state.doc.toString());\n }\n catch (e) {\n if (!(e instanceof SyntaxError))\n throw e;\n const pos = getErrorPosition(e, view.state.doc);\n return [{\n from: pos,\n message: e.message,\n severity: 'error',\n to: pos\n }];\n }\n return [];\n};\nfunction getErrorPosition(error, doc) {\n let m;\n if (m = error.message.match(/at position (\\d+)/))\n return Math.min(+m[1], doc.length);\n if (m = error.message.match(/at line (\\d+) column (\\d+)/))\n return Math.min(doc.line(+m[1]).from + (+m[2]) - 1, doc.length);\n return 0;\n}\n\n/**\nA language provider that provides JSON parsing.\n*/\nconst jsonLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"json\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Object: /*@__PURE__*/continuedIndent({ except: /^\\s*\\}/ }),\n Array: /*@__PURE__*/continuedIndent({ except: /^\\s*\\]/ })\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Object Array\": foldInside\n })\n ]\n }),\n languageData: {\n closeBrackets: { brackets: [\"[\", \"{\", '\"'] },\n indentOnInput: /^\\s*[\\}\\]]$/\n }\n});\n/**\nJSON language support.\n*/\nfunction json() {\n return new LanguageSupport(jsonLanguage);\n}\n\nexport { json, jsonLanguage, jsonParseLinter };\n"],"x_google_ignoreList":[0],"mappings":";;;;;;AAsCA,MAAM,eAA4B,yBAAW,OAAO;CAChD,MAAM;CACN,QAAqB,qBAAO,UAAU,EAClC,OAAO,CACU,6BAAe,IAAI;EAC5B,QAAqB,8BAAgB,EAAE,QAAQ,SAAS,CAAC;EACzD,OAAoB,8BAAgB,EAAE,QAAQ,SAAS,CAAC;CAC5D,CAAC,GACY,2BAAa,IAAI,EAC1B,gBAAgB,WACpB,CAAC,CACL,EACJ,CAAC;CACD,cAAc;EACV,eAAe,EAAE,UAAU;GAAC;GAAK;GAAK;EAAG,EAAE;EAC3C,eAAe;CACnB;AACJ,CAAC;;;;AAID,SAAS,OAAO;CACZ,OAAO,IAAI,gBAAgB,YAAY;AAC3C"}
|