@pyreon/code 0.6.0 → 0.8.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 (40) hide show
  1. package/lib/analysis/index.js.html +1 -1
  2. package/lib/index.js +2 -2
  3. package/lib/index.js.map +1 -1
  4. package/lib/types/index.d.ts +326 -831
  5. package/lib/types/index.d.ts.map +1 -1
  6. package/package.json +3 -3
  7. package/src/editor.ts +2 -2
  8. package/src/tabbed-editor.ts +6 -2
  9. package/lib/types/dist.d.ts +0 -798
  10. package/lib/types/dist.d.ts.map +0 -1
  11. package/lib/types/dist10.d.ts +0 -67
  12. package/lib/types/dist10.d.ts.map +0 -1
  13. package/lib/types/dist11.d.ts +0 -126
  14. package/lib/types/dist11.d.ts.map +0 -1
  15. package/lib/types/dist12.d.ts +0 -21
  16. package/lib/types/dist12.d.ts.map +0 -1
  17. package/lib/types/dist13.d.ts +0 -404
  18. package/lib/types/dist13.d.ts.map +0 -1
  19. package/lib/types/dist14.d.ts +0 -292
  20. package/lib/types/dist14.d.ts.map +0 -1
  21. package/lib/types/dist15.d.ts +0 -132
  22. package/lib/types/dist15.d.ts.map +0 -1
  23. package/lib/types/dist2.d.ts +0 -15
  24. package/lib/types/dist2.d.ts.map +0 -1
  25. package/lib/types/dist3.d.ts +0 -106
  26. package/lib/types/dist3.d.ts.map +0 -1
  27. package/lib/types/dist4.d.ts +0 -67
  28. package/lib/types/dist4.d.ts.map +0 -1
  29. package/lib/types/dist5.d.ts +0 -95
  30. package/lib/types/dist5.d.ts.map +0 -1
  31. package/lib/types/dist6.d.ts +0 -330
  32. package/lib/types/dist6.d.ts.map +0 -1
  33. package/lib/types/dist7.d.ts +0 -15
  34. package/lib/types/dist7.d.ts.map +0 -1
  35. package/lib/types/dist8.d.ts +0 -15
  36. package/lib/types/dist8.d.ts.map +0 -1
  37. package/lib/types/dist9.d.ts +0 -635
  38. package/lib/types/dist9.d.ts.map +0 -1
  39. package/lib/types/index2.d.ts +0 -347
  40. package/lib/types/index2.d.ts.map +0 -1
@@ -1,404 +0,0 @@
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
@@ -1 +0,0 @@
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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"}