@pyreon/code 0.5.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.
Files changed (80) hide show
  1. package/LICENSE +21 -0
  2. package/lib/analysis/index.js.html +5406 -0
  3. package/lib/dist-B5vB-rif.js +3904 -0
  4. package/lib/dist-B5vB-rif.js.map +1 -0
  5. package/lib/dist-BAfzu5eu.js +1428 -0
  6. package/lib/dist-BAfzu5eu.js.map +1 -0
  7. package/lib/dist-BLlV_D16.js +1166 -0
  8. package/lib/dist-BLlV_D16.js.map +1 -0
  9. package/lib/dist-BNmKLTu8.js +373 -0
  10. package/lib/dist-BNmKLTu8.js.map +1 -0
  11. package/lib/dist-BZtTlC1J.js +692 -0
  12. package/lib/dist-BZtTlC1J.js.map +1 -0
  13. package/lib/dist-CTDqGIAf.js +856 -0
  14. package/lib/dist-CTDqGIAf.js.map +1 -0
  15. package/lib/dist-CTPisNZp.js +83 -0
  16. package/lib/dist-CTPisNZp.js.map +1 -0
  17. package/lib/dist-Ce2tvOxv.js +379 -0
  18. package/lib/dist-Ce2tvOxv.js.map +1 -0
  19. package/lib/dist-CttF0OTv.js +465 -0
  20. package/lib/dist-CttF0OTv.js.map +1 -0
  21. package/lib/dist-DS2tluW9.js +818 -0
  22. package/lib/dist-DS2tluW9.js.map +1 -0
  23. package/lib/dist-DUNx9ldu.js +460 -0
  24. package/lib/dist-DUNx9ldu.js.map +1 -0
  25. package/lib/dist-Dej_yf3k.js +473 -0
  26. package/lib/dist-Dej_yf3k.js.map +1 -0
  27. package/lib/dist-DshStUxU.js +283 -0
  28. package/lib/dist-DshStUxU.js.map +1 -0
  29. package/lib/dist-qTrOe7xY.js +461 -0
  30. package/lib/dist-qTrOe7xY.js.map +1 -0
  31. package/lib/dist-v09vikKr.js +2421 -0
  32. package/lib/dist-v09vikKr.js.map +1 -0
  33. package/lib/index.js +915 -0
  34. package/lib/index.js.map +1 -0
  35. package/lib/types/dist.d.ts +798 -0
  36. package/lib/types/dist.d.ts.map +1 -0
  37. package/lib/types/dist10.d.ts +67 -0
  38. package/lib/types/dist10.d.ts.map +1 -0
  39. package/lib/types/dist11.d.ts +126 -0
  40. package/lib/types/dist11.d.ts.map +1 -0
  41. package/lib/types/dist12.d.ts +21 -0
  42. package/lib/types/dist12.d.ts.map +1 -0
  43. package/lib/types/dist13.d.ts +404 -0
  44. package/lib/types/dist13.d.ts.map +1 -0
  45. package/lib/types/dist14.d.ts +292 -0
  46. package/lib/types/dist14.d.ts.map +1 -0
  47. package/lib/types/dist15.d.ts +132 -0
  48. package/lib/types/dist15.d.ts.map +1 -0
  49. package/lib/types/dist2.d.ts +15 -0
  50. package/lib/types/dist2.d.ts.map +1 -0
  51. package/lib/types/dist3.d.ts +106 -0
  52. package/lib/types/dist3.d.ts.map +1 -0
  53. package/lib/types/dist4.d.ts +67 -0
  54. package/lib/types/dist4.d.ts.map +1 -0
  55. package/lib/types/dist5.d.ts +95 -0
  56. package/lib/types/dist5.d.ts.map +1 -0
  57. package/lib/types/dist6.d.ts +330 -0
  58. package/lib/types/dist6.d.ts.map +1 -0
  59. package/lib/types/dist7.d.ts +15 -0
  60. package/lib/types/dist7.d.ts.map +1 -0
  61. package/lib/types/dist8.d.ts +15 -0
  62. package/lib/types/dist8.d.ts.map +1 -0
  63. package/lib/types/dist9.d.ts +635 -0
  64. package/lib/types/dist9.d.ts.map +1 -0
  65. package/lib/types/index.d.ts +852 -0
  66. package/lib/types/index.d.ts.map +1 -0
  67. package/lib/types/index2.d.ts +347 -0
  68. package/lib/types/index2.d.ts.map +1 -0
  69. package/package.json +79 -0
  70. package/src/components/code-editor.tsx +42 -0
  71. package/src/components/diff-editor.tsx +97 -0
  72. package/src/components/tabbed-editor.tsx +86 -0
  73. package/src/editor.ts +652 -0
  74. package/src/index.ts +52 -0
  75. package/src/languages.ts +77 -0
  76. package/src/minimap.ts +160 -0
  77. package/src/tabbed-editor.ts +231 -0
  78. package/src/tests/code.test.ts +505 -0
  79. package/src/themes.ts +87 -0
  80. package/src/types.ts +253 -0
@@ -0,0 +1,404 @@
1
+ import { a as ExternalTokenizer, n as styleTags, o as LRParser, r as tags } from "./dist.js";
2
+ import { LRLanguage, LanguageSupport, continuedIndent, foldNodeProp, indentNodeProp, syntaxTree } from "@codemirror/language";
3
+ import { completeFromList, ifNotIn } from "@codemirror/autocomplete";
4
+
5
+ //#region ../../node_modules/.bun/@codemirror+lang-sql@6.10.0/node_modules/@codemirror/lang-sql/dist/index.js
6
+
7
+ function isAlpha(ch) {
8
+ return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57;
9
+ }
10
+ function isHexDigit(ch) {
11
+ return ch >= 48 && ch <= 57 || ch >= 97 && ch <= 102 || ch >= 65 && ch <= 70;
12
+ }
13
+ function readLiteral(input, endQuote, backslashEscapes) {
14
+ for (let escaped = false;;) {
15
+ if (input.next < 0) return;
16
+ if (input.next == endQuote && !escaped) {
17
+ input.advance();
18
+ return;
19
+ }
20
+ escaped = backslashEscapes && !escaped && input.next == 92;
21
+ input.advance();
22
+ }
23
+ }
24
+ function readDoubleDollarLiteral(input, tag) {
25
+ scan: for (;;) {
26
+ if (input.next < 0) return;
27
+ if (input.next == 36) {
28
+ input.advance();
29
+ for (let i = 0; i < tag.length; i++) {
30
+ if (input.next != tag.charCodeAt(i)) continue scan;
31
+ input.advance();
32
+ }
33
+ if (input.next == 36) {
34
+ input.advance();
35
+ return;
36
+ }
37
+ } else input.advance();
38
+ }
39
+ }
40
+ function readPLSQLQuotedLiteral(input, openDelim) {
41
+ let matchingDelim = "[{<(".indexOf(String.fromCharCode(openDelim));
42
+ let closeDelim = matchingDelim < 0 ? openDelim : "]}>)".charCodeAt(matchingDelim);
43
+ for (;;) {
44
+ if (input.next < 0) return;
45
+ if (input.next == closeDelim && input.peek(1) == 39) {
46
+ input.advance(2);
47
+ return;
48
+ }
49
+ input.advance();
50
+ }
51
+ }
52
+ function readWord(input, result) {
53
+ for (;;) {
54
+ if (input.next != 95 && !isAlpha(input.next)) break;
55
+ if (result != null) result += String.fromCharCode(input.next);
56
+ input.advance();
57
+ }
58
+ return result;
59
+ }
60
+ function readWordOrQuoted(input) {
61
+ if (input.next == 39 || input.next == 34 || input.next == 96) {
62
+ let quote = input.next;
63
+ input.advance();
64
+ readLiteral(input, quote, false);
65
+ } else readWord(input);
66
+ }
67
+ function readBits(input, endQuote) {
68
+ while (input.next == 48 || input.next == 49) input.advance();
69
+ if (endQuote && input.next == endQuote) input.advance();
70
+ }
71
+ function readNumber(input, sawDot) {
72
+ for (;;) {
73
+ if (input.next == 46) {
74
+ if (sawDot) break;
75
+ sawDot = true;
76
+ } else if (input.next < 48 || input.next > 57) break;
77
+ input.advance();
78
+ }
79
+ if (input.next == 69 || input.next == 101) {
80
+ input.advance();
81
+ if (input.next == 43 || input.next == 45) input.advance();
82
+ while (input.next >= 48 && input.next <= 57) input.advance();
83
+ }
84
+ }
85
+ function eol(input) {
86
+ while (!(input.next < 0 || input.next == 10)) input.advance();
87
+ }
88
+ function inString(ch, str) {
89
+ for (let i = 0; i < str.length; i++) if (str.charCodeAt(i) == ch) return true;
90
+ return false;
91
+ }
92
+ function keywords(keywords, types, builtin) {
93
+ let result = Object.create(null);
94
+ result["true"] = result["false"] = Bool;
95
+ result["null"] = result["unknown"] = Null;
96
+ for (let kw of keywords.split(" ")) if (kw) result[kw] = Keyword;
97
+ for (let tp of types.split(" ")) if (tp) result[tp] = Type;
98
+ for (let kw of (builtin || "").split(" ")) if (kw) result[kw] = Builtin;
99
+ return result;
100
+ }
101
+ function dialect(spec, kws, types, builtin) {
102
+ let dialect = {};
103
+ for (let prop in defaults) dialect[prop] = (spec.hasOwnProperty(prop) ? spec : defaults)[prop];
104
+ if (kws) dialect.words = keywords(kws, types || "", builtin);
105
+ return dialect;
106
+ }
107
+ function tokensFor(d) {
108
+ return new ExternalTokenizer(input => {
109
+ var _a;
110
+ let {
111
+ next
112
+ } = input;
113
+ input.advance();
114
+ if (inString(next, Space)) {
115
+ while (inString(input.next, Space)) input.advance();
116
+ input.acceptToken(whitespace);
117
+ } else if (next == 36 && d.doubleDollarQuotedStrings) {
118
+ let tag = readWord(input, "");
119
+ if (input.next == 36) {
120
+ input.advance();
121
+ readDoubleDollarLiteral(input, tag);
122
+ input.acceptToken(String$1);
123
+ }
124
+ } else if (next == 39 || next == 34 && d.doubleQuotedStrings) {
125
+ readLiteral(input, next, d.backslashEscapes);
126
+ input.acceptToken(String$1);
127
+ } else if (next == 35 && d.hashComments || next == 47 && input.next == 47 && d.slashComments) {
128
+ eol(input);
129
+ input.acceptToken(LineComment);
130
+ } else if (next == 45 && input.next == 45 && (!d.spaceAfterDashes || input.peek(1) == 32)) {
131
+ eol(input);
132
+ input.acceptToken(LineComment);
133
+ } else if (next == 47 && input.next == 42) {
134
+ input.advance();
135
+ for (let depth = 1;;) {
136
+ let cur = input.next;
137
+ if (input.next < 0) break;
138
+ input.advance();
139
+ if (cur == 42 && input.next == 47) {
140
+ depth--;
141
+ input.advance();
142
+ if (!depth) break;
143
+ } else if (cur == 47 && input.next == 42) {
144
+ depth++;
145
+ input.advance();
146
+ }
147
+ }
148
+ input.acceptToken(BlockComment);
149
+ } else if ((next == 101 || next == 69) && input.next == 39) {
150
+ input.advance();
151
+ readLiteral(input, 39, true);
152
+ input.acceptToken(String$1);
153
+ } else if ((next == 110 || next == 78) && input.next == 39 && d.charSetCasts) {
154
+ input.advance();
155
+ readLiteral(input, 39, d.backslashEscapes);
156
+ input.acceptToken(String$1);
157
+ } else if (next == 95 && d.charSetCasts) for (let i = 0;; i++) {
158
+ if (input.next == 39 && i > 1) {
159
+ input.advance();
160
+ readLiteral(input, 39, d.backslashEscapes);
161
+ input.acceptToken(String$1);
162
+ break;
163
+ }
164
+ if (!isAlpha(input.next)) break;
165
+ input.advance();
166
+ } else if (d.plsqlQuotingMechanism && (next == 113 || next == 81) && input.next == 39 && input.peek(1) > 0 && !inString(input.peek(1), Space)) {
167
+ let openDelim = input.peek(1);
168
+ input.advance(2);
169
+ readPLSQLQuotedLiteral(input, openDelim);
170
+ input.acceptToken(String$1);
171
+ } else if (inString(next, d.identifierQuotes)) {
172
+ readLiteral(input, next == 91 ? 93 : next, false);
173
+ input.acceptToken(QuotedIdentifier);
174
+ } else if (next == 40) input.acceptToken(ParenL);else if (next == 41) input.acceptToken(ParenR);else if (next == 123) input.acceptToken(BraceL);else if (next == 125) input.acceptToken(BraceR);else if (next == 91) input.acceptToken(BracketL);else if (next == 93) input.acceptToken(BracketR);else if (next == 59) input.acceptToken(Semi);else if (d.unquotedBitLiterals && next == 48 && input.next == 98) {
175
+ input.advance();
176
+ readBits(input);
177
+ input.acceptToken(Bits);
178
+ } else if ((next == 98 || next == 66) && (input.next == 39 || input.next == 34)) {
179
+ const quoteStyle = input.next;
180
+ input.advance();
181
+ if (d.treatBitsAsBytes) {
182
+ readLiteral(input, quoteStyle, d.backslashEscapes);
183
+ input.acceptToken(Bytes);
184
+ } else {
185
+ readBits(input, quoteStyle);
186
+ input.acceptToken(Bits);
187
+ }
188
+ } else if (next == 48 && (input.next == 120 || input.next == 88) || (next == 120 || next == 88) && input.next == 39) {
189
+ let quoted = input.next == 39;
190
+ input.advance();
191
+ while (isHexDigit(input.next)) input.advance();
192
+ if (quoted && input.next == 39) input.advance();
193
+ input.acceptToken(Number);
194
+ } else if (next == 46 && input.next >= 48 && input.next <= 57) {
195
+ readNumber(input, true);
196
+ input.acceptToken(Number);
197
+ } else if (next == 46) input.acceptToken(Dot);else if (next >= 48 && next <= 57) {
198
+ readNumber(input, false);
199
+ input.acceptToken(Number);
200
+ } else if (inString(next, d.operatorChars)) {
201
+ while (inString(input.next, d.operatorChars)) input.advance();
202
+ input.acceptToken(Operator);
203
+ } else if (inString(next, d.specialVar)) {
204
+ if (input.next == next) input.advance();
205
+ readWordOrQuoted(input);
206
+ input.acceptToken(SpecialVar);
207
+ } else if (next == 58 || next == 44) input.acceptToken(Punctuation);else if (isAlpha(next)) {
208
+ let word = readWord(input, String.fromCharCode(next));
209
+ input.acceptToken(input.next == 46 || input.peek(-word.length - 1) == 46 ? Identifier : (_a = d.words[word.toLowerCase()]) !== null && _a !== void 0 ? _a : Identifier);
210
+ }
211
+ });
212
+ }
213
+ function tokenBefore(tree) {
214
+ let cursor = tree.cursor().moveTo(tree.from, -1);
215
+ while (/Comment/.test(cursor.name)) cursor.moveTo(cursor.from, -1);
216
+ return cursor.node;
217
+ }
218
+ function idName(doc, node) {
219
+ let text = doc.sliceString(node.from, node.to);
220
+ let quoted = /^([`'"\[])(.*)([`'"\]])$/.exec(text);
221
+ return quoted ? quoted[2] : text;
222
+ }
223
+ function plainID(node) {
224
+ return node && (node.name == "Identifier" || node.name == "QuotedIdentifier");
225
+ }
226
+ function pathFor(doc, id) {
227
+ if (id.name == "CompositeIdentifier") {
228
+ let path = [];
229
+ for (let ch = id.firstChild; ch; ch = ch.nextSibling) if (plainID(ch)) path.push(idName(doc, ch));
230
+ return path;
231
+ }
232
+ return [idName(doc, id)];
233
+ }
234
+ function parentsFor(doc, node) {
235
+ for (let path = [];;) {
236
+ if (!node || node.name != ".") return path;
237
+ let name = tokenBefore(node);
238
+ if (!plainID(name)) return path;
239
+ path.unshift(idName(doc, name));
240
+ node = tokenBefore(name);
241
+ }
242
+ }
243
+ function sourceContext(state, startPos) {
244
+ let pos = syntaxTree(state).resolveInner(startPos, -1);
245
+ let aliases = getAliases(state.doc, pos);
246
+ if (pos.name == "Identifier" || pos.name == "QuotedIdentifier" || pos.name == "Keyword") return {
247
+ from: pos.from,
248
+ quoted: pos.name == "QuotedIdentifier" ? state.doc.sliceString(pos.from, pos.from + 1) : null,
249
+ parents: parentsFor(state.doc, tokenBefore(pos)),
250
+ aliases
251
+ };
252
+ if (pos.name == ".") return {
253
+ from: startPos,
254
+ quoted: null,
255
+ parents: parentsFor(state.doc, pos),
256
+ aliases
257
+ };else return {
258
+ from: startPos,
259
+ quoted: null,
260
+ parents: [],
261
+ empty: true,
262
+ aliases
263
+ };
264
+ }
265
+ function getAliases(doc, at) {
266
+ let statement;
267
+ for (let parent = at; !statement; parent = parent.parent) {
268
+ if (!parent) return null;
269
+ if (parent.name == "Statement") statement = parent;
270
+ }
271
+ let aliases = null;
272
+ for (let scan = statement.firstChild, sawFrom = false, prevID = null; scan; scan = scan.nextSibling) {
273
+ let kw = scan.name == "Keyword" ? doc.sliceString(scan.from, scan.to).toLowerCase() : null;
274
+ let alias = null;
275
+ if (!sawFrom) sawFrom = kw == "from";else if (kw == "as" && prevID && plainID(scan.nextSibling)) alias = idName(doc, scan.nextSibling);else if (kw && EndFrom.has(kw)) break;else if (prevID && plainID(scan)) alias = idName(doc, scan);
276
+ if (alias) {
277
+ if (!aliases) aliases = Object.create(null);
278
+ aliases[alias] = pathFor(doc, prevID);
279
+ }
280
+ prevID = /Identifier$/.test(scan.name) ? scan : null;
281
+ }
282
+ return aliases;
283
+ }
284
+ function maybeQuoteCompletions(openingQuote, closingQuote, completions) {
285
+ return completions.map(c => ({
286
+ ...c,
287
+ label: c.label[0] == openingQuote ? c.label : openingQuote + c.label + closingQuote,
288
+ apply: void 0
289
+ }));
290
+ }
291
+ function isSelfTag(namespace) {
292
+ return namespace.self && typeof namespace.self.label == "string";
293
+ }
294
+ function nameCompletion(label, type, idQuote, idCaseInsensitive) {
295
+ if (new RegExp("^[a-z_][a-z_\\d]*$", idCaseInsensitive ? "i" : "").test(label)) return {
296
+ label,
297
+ type
298
+ };
299
+ return {
300
+ label,
301
+ type,
302
+ apply: idQuote + label + getClosingQuote(idQuote)
303
+ };
304
+ }
305
+ function getClosingQuote(openingQuote) {
306
+ return openingQuote === "[" ? "]" : openingQuote;
307
+ }
308
+ function completeFromSchema(schema, tables, schemas, defaultTableName, defaultSchemaName, dialect) {
309
+ var _a;
310
+ let top = new CompletionLevel(((_a = dialect === null || dialect === void 0 ? void 0 : dialect.spec.identifierQuotes) === null || _a === void 0 ? void 0 : _a[0]) || "\"", !!(dialect === null || dialect === void 0 ? void 0 : dialect.spec.caseInsensitiveIdentifiers));
311
+ let defaultSchema = defaultSchemaName ? top.child(defaultSchemaName) : null;
312
+ top.addNamespace(schema);
313
+ if (tables) (defaultSchema || top).addCompletions(tables);
314
+ if (schemas) top.addCompletions(schemas);
315
+ if (defaultSchema) top.addCompletions(defaultSchema.list);
316
+ if (defaultTableName) top.addCompletions((defaultSchema || top).child(defaultTableName).list);
317
+ return context => {
318
+ let {
319
+ parents,
320
+ from,
321
+ quoted,
322
+ empty,
323
+ aliases
324
+ } = sourceContext(context.state, context.pos);
325
+ if (empty && !context.explicit) return null;
326
+ if (aliases && parents.length == 1) parents = aliases[parents[0]] || parents;
327
+ let level = top;
328
+ for (let name of parents) {
329
+ while (!level.children || !level.children[name]) if (level == top && defaultSchema) level = defaultSchema;else if (level == defaultSchema && defaultTableName) level = level.child(defaultTableName);else return null;
330
+ let next = level.maybeChild(name);
331
+ if (!next) return null;
332
+ level = next;
333
+ }
334
+ let options = level.list;
335
+ if (level == top && aliases) options = options.concat(Object.keys(aliases).map(name => ({
336
+ label: name,
337
+ type: "constant"
338
+ })));
339
+ if (quoted) {
340
+ let openingQuote = quoted[0];
341
+ let closingQuote = getClosingQuote(openingQuote);
342
+ return {
343
+ from,
344
+ to: context.state.sliceDoc(context.pos, context.pos + 1) == closingQuote ? context.pos + 1 : void 0,
345
+ options: maybeQuoteCompletions(openingQuote, closingQuote, options),
346
+ validFor: QuotedSpan
347
+ };
348
+ } else return {
349
+ from,
350
+ options,
351
+ validFor: Span
352
+ };
353
+ };
354
+ }
355
+ function completionType(tokenType) {
356
+ return tokenType == Type ? "type" : tokenType == Keyword ? "keyword" : "variable";
357
+ }
358
+ function completeKeywords(keywords, upperCase, build) {
359
+ return ifNotIn(["QuotedIdentifier", "String", "LineComment", "BlockComment", "."], completeFromList(Object.keys(keywords).map(keyword => build(upperCase ? keyword.toUpperCase() : keyword, completionType(keywords[keyword])))));
360
+ }
361
+ function defaultKeyword(label, type) {
362
+ return {
363
+ label,
364
+ type,
365
+ boost: -1
366
+ };
367
+ }
368
+ /**
369
+ Returns a completion source that provides keyword completion for
370
+ the given SQL dialect.
371
+ */
372
+ function keywordCompletionSource(dialect, upperCase = false, build) {
373
+ return completeKeywords(dialect.dialect.words, upperCase, build || defaultKeyword);
374
+ }
375
+ /**
376
+ Returns a completion sources that provides schema-based completion
377
+ for the given configuration.
378
+ */
379
+ function schemaCompletionSource(config) {
380
+ return config.schema ? completeFromSchema(config.schema, config.tables, config.schemas, config.defaultTable, config.defaultSchema, config.dialect || StandardSQL) : () => null;
381
+ }
382
+ function schemaCompletion(config) {
383
+ return config.schema ? (config.dialect || StandardSQL).language.data.of({
384
+ autocomplete: schemaCompletionSource(config)
385
+ }) : [];
386
+ }
387
+ /**
388
+ SQL language support for the given SQL dialect, with keyword
389
+ completion, and, if provided, schema-based completion as extra
390
+ extensions.
391
+ */
392
+ function sql(config = {}) {
393
+ let lang = config.dialect || StandardSQL;
394
+ return new LanguageSupport(lang.language, [schemaCompletion(config), lang.language.data.of({
395
+ autocomplete: keywordCompletionSource(lang, config.upperCaseKeywords, config.keywordCompletion)
396
+ })]);
397
+ }
398
+ /**
399
+ The standard SQL dialect.
400
+ */
401
+
402
+ //#endregion
403
+ export { sql };
404
+ //# sourceMappingURL=dist13.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dist13.d.ts","names":[],"sources":["../../../../node_modules/.bun/@codemirror+lang-sql@6.10.0/node_modules/@codemirror/lang-sql/dist/index.js"],"x_google_ignoreList":[0],"mappings":"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"}