@descent-vtt/spec-guard 0.10.3 → 0.12.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/CHANGELOG.md +410 -0
- package/README.md +385 -27
- package/dist/cites.d.ts +192 -0
- package/dist/cites.d.ts.map +1 -0
- package/dist/cites.js +599 -0
- package/dist/cites.js.map +1 -0
- package/dist/cli.d.ts +14 -6
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +315 -22
- package/dist/cli.js.map +1 -1
- package/dist/comments.d.ts +51 -2
- package/dist/comments.d.ts.map +1 -1
- package/dist/comments.js +353 -57
- package/dist/comments.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +46 -5
- package/dist/config.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +38 -14
- package/dist/engine.js.map +1 -1
- package/dist/glob.d.ts +128 -24
- package/dist/glob.d.ts.map +1 -1
- package/dist/glob.js +304 -61
- package/dist/glob.js.map +1 -1
- package/dist/impact.d.ts +179 -0
- package/dist/impact.d.ts.map +1 -0
- package/dist/impact.js +360 -0
- package/dist/impact.js.map +1 -0
- package/dist/imports.d.ts.map +1 -1
- package/dist/imports.js +5 -58
- package/dist/imports.js.map +1 -1
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +16 -75
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +198 -370
- package/dist/mcp.js.map +1 -1
- package/dist/overlay.d.ts +39 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +133 -0
- package/dist/overlay.js.map +1 -0
- package/dist/parser.d.ts +41 -24
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +217 -160
- package/dist/parser.js.map +1 -1
- package/dist/prove.d.ts +46 -0
- package/dist/prove.d.ts.map +1 -0
- package/dist/prove.js +549 -0
- package/dist/prove.js.map +1 -0
- package/dist/query.d.ts +11 -0
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +9 -3
- package/dist/query.js.map +1 -1
- package/dist/reporter.d.ts +139 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +593 -21
- package/dist/reporter.js.map +1 -1
- package/dist/rules.js +3 -3
- package/dist/rules.js.map +1 -1
- package/dist/runner.d.ts +24 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +84 -21
- package/dist/runner.js.map +1 -1
- package/dist/specs.d.ts +5 -1
- package/dist/specs.d.ts.map +1 -1
- package/dist/specs.js +5 -1
- package/dist/specs.js.map +1 -1
- package/dist/structure.d.ts.map +1 -1
- package/dist/structure.js +7 -6
- package/dist/structure.js.map +1 -1
- package/dist/types.d.ts +193 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vendor/spec-core/jsonrpc/index.d.ts +3 -0
- package/dist/vendor/spec-core/jsonrpc/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/jsonrpc/index.js +2 -0
- package/dist/vendor/spec-core/jsonrpc/index.js.map +1 -0
- package/dist/vendor/spec-core/jsonrpc/mcp.d.ts +158 -0
- package/dist/vendor/spec-core/jsonrpc/mcp.d.ts.map +1 -0
- package/dist/vendor/spec-core/jsonrpc/mcp.js +353 -0
- package/dist/vendor/spec-core/jsonrpc/mcp.js.map +1 -0
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts +104 -0
- package/dist/vendor/spec-core/markdown/frontmatter.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/frontmatter.js +459 -0
- package/dist/vendor/spec-core/markdown/frontmatter.js.map +1 -0
- package/dist/vendor/spec-core/markdown/headings.d.ts +46 -0
- package/dist/vendor/spec-core/markdown/headings.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/headings.js +199 -0
- package/dist/vendor/spec-core/markdown/headings.js.map +1 -0
- package/dist/vendor/spec-core/markdown/index.d.ts +6 -0
- package/dist/vendor/spec-core/markdown/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/index.js +4 -0
- package/dist/vendor/spec-core/markdown/index.js.map +1 -0
- package/dist/vendor/spec-core/markdown/layout.d.ts +40 -0
- package/dist/vendor/spec-core/markdown/layout.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/layout.js +28 -0
- package/dist/vendor/spec-core/markdown/layout.js.map +1 -0
- package/dist/vendor/spec-core/markdown/links.d.ts +23 -0
- package/dist/vendor/spec-core/markdown/links.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/links.js +364 -0
- package/dist/vendor/spec-core/markdown/links.js.map +1 -0
- package/dist/vendor/spec-core/markdown/lists.d.ts +23 -0
- package/dist/vendor/spec-core/markdown/lists.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/lists.js +127 -0
- package/dist/vendor/spec-core/markdown/lists.js.map +1 -0
- package/dist/vendor/spec-core/markdown/scan.d.ts +37 -0
- package/dist/vendor/spec-core/markdown/scan.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/scan.js +439 -0
- package/dist/vendor/spec-core/markdown/scan.js.map +1 -0
- package/dist/vendor/spec-core/markdown/syntax.d.ts +76 -0
- package/dist/vendor/spec-core/markdown/syntax.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/syntax.js +181 -0
- package/dist/vendor/spec-core/markdown/syntax.js.map +1 -0
- package/dist/vendor/spec-core/markdown/tables.d.ts +19 -0
- package/dist/vendor/spec-core/markdown/tables.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/tables.js +86 -0
- package/dist/vendor/spec-core/markdown/tables.js.map +1 -0
- package/dist/vendor/spec-core/markdown/types.d.ts +288 -0
- package/dist/vendor/spec-core/markdown/types.d.ts.map +1 -0
- package/dist/vendor/spec-core/markdown/types.js +9 -0
- package/dist/vendor/spec-core/markdown/types.js.map +1 -0
- package/dist/vendor/spec-core/path/index.d.ts +2 -0
- package/dist/vendor/spec-core/path/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/path/index.js +2 -0
- package/dist/vendor/spec-core/path/index.js.map +1 -0
- package/dist/vendor/spec-core/path/posix.d.ts +84 -0
- package/dist/vendor/spec-core/path/posix.d.ts.map +1 -0
- package/dist/vendor/spec-core/path/posix.js +150 -0
- package/dist/vendor/spec-core/path/posix.js.map +1 -0
- package/dist/vendor/spec-core/pattern/automaton.d.ts +130 -0
- package/dist/vendor/spec-core/pattern/automaton.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/automaton.js +340 -0
- package/dist/vendor/spec-core/pattern/automaton.js.map +1 -0
- package/dist/vendor/spec-core/pattern/charset.d.ts +59 -0
- package/dist/vendor/spec-core/pattern/charset.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/charset.js +116 -0
- package/dist/vendor/spec-core/pattern/charset.js.map +1 -0
- package/dist/vendor/spec-core/pattern/glob.d.ts +122 -0
- package/dist/vendor/spec-core/pattern/glob.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/glob.js +481 -0
- package/dist/vendor/spec-core/pattern/glob.js.map +1 -0
- package/dist/vendor/spec-core/pattern/index.d.ts +7 -0
- package/dist/vendor/spec-core/pattern/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/index.js +4 -0
- package/dist/vendor/spec-core/pattern/index.js.map +1 -0
- package/dist/vendor/spec-core/pattern/regex.d.ts +68 -0
- package/dist/vendor/spec-core/pattern/regex.d.ts.map +1 -0
- package/dist/vendor/spec-core/pattern/regex.js +813 -0
- package/dist/vendor/spec-core/pattern/regex.js.map +1 -0
- package/dist/vendor/spec-core/text/index.d.ts +3 -0
- package/dist/vendor/spec-core/text/index.d.ts.map +1 -0
- package/dist/vendor/spec-core/text/index.js +2 -0
- package/dist/vendor/spec-core/text/index.js.map +1 -0
- package/dist/vendor/spec-core/text/lines.d.ts +73 -0
- package/dist/vendor/spec-core/text/lines.d.ts.map +1 -0
- package/dist/vendor/spec-core/text/lines.js +156 -0
- package/dist/vendor/spec-core/text/lines.js.map +1 -0
- package/package.json +8 -1
- package/src/vendor/spec-core/LICENSE +21 -0
- package/src/vendor/spec-core/README.md +8 -0
package/dist/comments.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* available: the comment recording that a symbol was deleted is itself a match
|
|
6
6
|
* for that symbol. `@assert-absence symbol="LegacyThing"` then fails on
|
|
7
7
|
*
|
|
8
|
-
* // LegacyThing was removed
|
|
8
|
+
* // LegacyThing was removed; do not reintroduce it
|
|
9
9
|
*
|
|
10
10
|
* which is the sentence proving the assertion true. So matches are classified
|
|
11
11
|
* and, by default, those inside comments do not count.
|
|
@@ -27,15 +27,74 @@
|
|
|
27
27
|
* understood.
|
|
28
28
|
*/
|
|
29
29
|
import path from 'node:path';
|
|
30
|
+
/**
|
|
31
|
+
* Words after which a `/` opens a regular expression rather than dividing.
|
|
32
|
+
*
|
|
33
|
+
* The remaining ambiguity is `)` and `}`, where this follows the usual
|
|
34
|
+
* heuristic. Both tables are shared with the import tokenizer in `imports.ts`,
|
|
35
|
+
* which is where they were written and proved: two copies would be two answers
|
|
36
|
+
* to "is this a regular expression", and the only thing worse than one
|
|
37
|
+
* heuristic is two of them disagreeing about the same file.
|
|
38
|
+
*/
|
|
39
|
+
export const REGEX_AFTER_WORD = new Set([
|
|
40
|
+
'return',
|
|
41
|
+
'typeof',
|
|
42
|
+
'instanceof',
|
|
43
|
+
'in',
|
|
44
|
+
'of',
|
|
45
|
+
'new',
|
|
46
|
+
'delete',
|
|
47
|
+
'void',
|
|
48
|
+
'throw',
|
|
49
|
+
'case',
|
|
50
|
+
'do',
|
|
51
|
+
'else',
|
|
52
|
+
'yield',
|
|
53
|
+
'await',
|
|
54
|
+
]);
|
|
55
|
+
/**
|
|
56
|
+
* `<` is deliberately absent: in JSX every closing tag is `</`, and reading that
|
|
57
|
+
* as the start of a regular expression loses the scan for the rest of the line.
|
|
58
|
+
* The cost is that `a < /re/.test(b)` is misread instead, which is a shape that
|
|
59
|
+
* does not occur in practice.
|
|
60
|
+
*
|
|
61
|
+
* `}` stays, for a regular expression that opens a statement after a block,
|
|
62
|
+
* except before `/>`. That is a JSX element closing after an expression
|
|
63
|
+
* attribute, `<App x={y} />`. `/>` after anything else is still one - `/>/` is a
|
|
64
|
+
* regular expression, and HTML escaping is full of `replace(/>/g, ...)`.
|
|
65
|
+
*/
|
|
66
|
+
export const REGEX_AFTER_PUNCT = new Set([
|
|
67
|
+
'(',
|
|
68
|
+
',',
|
|
69
|
+
'=',
|
|
70
|
+
':',
|
|
71
|
+
'[',
|
|
72
|
+
'!',
|
|
73
|
+
'&',
|
|
74
|
+
'|',
|
|
75
|
+
'?',
|
|
76
|
+
'{',
|
|
77
|
+
'}',
|
|
78
|
+
';',
|
|
79
|
+
'+',
|
|
80
|
+
'-',
|
|
81
|
+
'*',
|
|
82
|
+
'/',
|
|
83
|
+
'%',
|
|
84
|
+
'^',
|
|
85
|
+
'~',
|
|
86
|
+
'>',
|
|
87
|
+
]);
|
|
30
88
|
const QUOTES = [
|
|
31
89
|
{ open: '"', close: '"', escape: true },
|
|
32
90
|
{ open: "'", close: "'", escape: true },
|
|
33
91
|
];
|
|
34
92
|
// Every profile writes the same keys in the same order, flags included where
|
|
35
|
-
// they are false
|
|
36
|
-
//
|
|
37
|
-
//
|
|
38
|
-
//
|
|
93
|
+
// they are false, so the lexer's reads of them stay monomorphic. With the
|
|
94
|
+
// flags left off where unused, each profile was a shape of its own, and a run
|
|
95
|
+
// that had seen four of them read C about a fifth slower than 0.10.2 did. The
|
|
96
|
+
// scan reads a profile once per file now rather than once per character, which
|
|
97
|
+
// makes this cheaper to get wrong than it was - and no less wrong.
|
|
39
98
|
const C_LIKE = {
|
|
40
99
|
name: 'c-like',
|
|
41
100
|
line: ['//'],
|
|
@@ -48,13 +107,35 @@ const C_LIKE = {
|
|
|
48
107
|
// change which wrong answer a misread file gets.
|
|
49
108
|
digitSeparators: true,
|
|
50
109
|
wordComments: false,
|
|
110
|
+
wordQuotes: false,
|
|
111
|
+
regexLiterals: false,
|
|
112
|
+
jsxText: false,
|
|
51
113
|
strings: QUOTES,
|
|
52
114
|
};
|
|
115
|
+
/**
|
|
116
|
+
* A quoted string in JavaScript cannot hold a line break - only a template
|
|
117
|
+
* can - so one that reaches the end of its line was never a string.
|
|
118
|
+
*
|
|
119
|
+
* The same backstop Rust's character literal got in 0.10.3, for the same
|
|
120
|
+
* reason: whatever this table misreads next, it costs a line rather than a
|
|
121
|
+
* file. It is also what JSX text costs. `<p>Don't click</p>` opens a literal
|
|
122
|
+
* that no quote closes, and bounded to its line that literal is read as code -
|
|
123
|
+
* which is what the text is.
|
|
124
|
+
*/
|
|
125
|
+
const JS_QUOTES = [
|
|
126
|
+
{ open: '"', close: '"', escape: true, singleLine: true },
|
|
127
|
+
{ open: "'", close: "'", escape: true, singleLine: true },
|
|
128
|
+
];
|
|
53
129
|
const JS_LIKE = {
|
|
54
130
|
...C_LIKE,
|
|
55
131
|
name: 'javascript',
|
|
56
132
|
digitSeparators: false,
|
|
57
|
-
|
|
133
|
+
// Until 0.11.0 no profile read a regular expression, so a quote inside one -
|
|
134
|
+
// `/'/`, `/["']/` - opened a string that closed on some later quote, and the
|
|
135
|
+
// comments in between were read as code. See ADR-0006.
|
|
136
|
+
regexLiterals: true,
|
|
137
|
+
jsxText: true,
|
|
138
|
+
strings: [...JS_QUOTES, { open: '`', close: '`', escape: true }],
|
|
58
139
|
};
|
|
59
140
|
const C_SHARP = {
|
|
60
141
|
...C_LIKE,
|
|
@@ -86,6 +167,9 @@ const RUST = {
|
|
|
86
167
|
lifetimes: true,
|
|
87
168
|
digitSeparators: false,
|
|
88
169
|
wordComments: false,
|
|
170
|
+
wordQuotes: false,
|
|
171
|
+
regexLiterals: false,
|
|
172
|
+
jsxText: false,
|
|
89
173
|
strings: [
|
|
90
174
|
// Before 0.10.3 only r"…" and r#"…"# were known, and r##"…"## read as an
|
|
91
175
|
// ordinary string that closed at the first quote inside it.
|
|
@@ -108,6 +192,9 @@ const HASH = {
|
|
|
108
192
|
lifetimes: false,
|
|
109
193
|
digitSeparators: false,
|
|
110
194
|
wordComments: false,
|
|
195
|
+
wordQuotes: false,
|
|
196
|
+
regexLiterals: false,
|
|
197
|
+
jsxText: false,
|
|
111
198
|
// Triple quotes first: a Python docstring is a string, not a comment, and
|
|
112
199
|
// treating it as code is the conservative reading.
|
|
113
200
|
strings: [
|
|
@@ -117,35 +204,76 @@ const HASH = {
|
|
|
117
204
|
],
|
|
118
205
|
};
|
|
119
206
|
/**
|
|
120
|
-
* Shell scripts
|
|
207
|
+
* Shell scripts: `#` comments, but only where a word starts.
|
|
121
208
|
*
|
|
122
|
-
*
|
|
123
|
-
* `${#items[@]}` and `$#` are code;
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* comment like this one without closing it.)
|
|
209
|
+
* POSIX says so. A shell ignores a word *beginning* with `#`, so `${path##*.}`,
|
|
210
|
+
* `${#items[@]}` and `$#` are code; read as Python reads `#`, each of those hid
|
|
211
|
+
* the rest of its line. (The basename expansion, whose pattern ends in a star
|
|
212
|
+
* and a slash, is the commonest of them, and cannot be written in a comment
|
|
213
|
+
* like this one without closing it.)
|
|
128
214
|
*
|
|
129
215
|
* A comment written straight after code, as in `x;# note`, is read as code
|
|
130
216
|
* here, which is the direction that fails loudly.
|
|
131
217
|
*/
|
|
132
|
-
const
|
|
133
|
-
name: 'shell
|
|
218
|
+
const SHELL = {
|
|
219
|
+
name: 'shell',
|
|
134
220
|
line: ['#'],
|
|
135
221
|
block: [],
|
|
136
222
|
nested: false,
|
|
137
223
|
lifetimes: false,
|
|
138
224
|
digitSeparators: false,
|
|
139
225
|
wordComments: true,
|
|
226
|
+
// A shell quote opens anywhere, and has to: in `dir='C:\'` and `echo a'b'`
|
|
227
|
+
// the quote is mid-word, and a `#` inside one it did not open would comment
|
|
228
|
+
// out the rest of the line.
|
|
229
|
+
wordQuotes: false,
|
|
230
|
+
regexLiterals: false,
|
|
231
|
+
jsxText: false,
|
|
140
232
|
strings: [
|
|
141
233
|
// ANSI-C quoting, the one single-quoted form a backslash escapes in.
|
|
142
234
|
{ open: "$'", close: "'", escape: true },
|
|
143
235
|
{ open: '"', close: '"', escape: true },
|
|
144
|
-
// Nothing escapes inside single quotes
|
|
145
|
-
// complete. YAML writes a quote inside one as '', two strings side by side.
|
|
236
|
+
// Nothing escapes inside single quotes: 'C:\' is a complete string.
|
|
146
237
|
{ open: "'", close: "'", escape: false },
|
|
147
238
|
],
|
|
148
239
|
};
|
|
240
|
+
/**
|
|
241
|
+
* YAML: a shell's `#` rule, and quotes only where a value starts.
|
|
242
|
+
*
|
|
243
|
+
* YAML needs whitespace before a comment, so `https://example.com/#top` is one
|
|
244
|
+
* value - the rule a shell shares. What it does not share is the quoting. Most
|
|
245
|
+
* YAML scalars are plain, which is to say unquoted, and a plain scalar may hold
|
|
246
|
+
* an apostrophe: `- name: Build the decoder's artefact` is a sentence, not a
|
|
247
|
+
* string opening. Read as a shell reads it, that apostrophe opened a literal
|
|
248
|
+
* that closed on the next one in the file - often lines away, in another
|
|
249
|
+
* sentence - and every `#` between them stopped being a comment.
|
|
250
|
+
*
|
|
251
|
+
* So a quote here opens a scalar only where a word could start, which is where
|
|
252
|
+
* YAML puts one: after `key:`, after `- `, or at the start of a line. A quote
|
|
253
|
+
* anywhere else is text. The limit is a quote in the middle of a plain scalar
|
|
254
|
+
* with a space in front of it, `title: the 'quoted' word`, which is still read
|
|
255
|
+
* as a string - harmlessly, because such quotes come in pairs, and it is the
|
|
256
|
+
* unpaired apostrophe that used to run away.
|
|
257
|
+
*/
|
|
258
|
+
const YAML = {
|
|
259
|
+
name: 'yaml',
|
|
260
|
+
line: ['#'],
|
|
261
|
+
block: [],
|
|
262
|
+
nested: false,
|
|
263
|
+
lifetimes: false,
|
|
264
|
+
digitSeparators: false,
|
|
265
|
+
wordComments: true,
|
|
266
|
+
wordQuotes: true,
|
|
267
|
+
regexLiterals: false,
|
|
268
|
+
jsxText: false,
|
|
269
|
+
strings: [
|
|
270
|
+
{ open: '"', close: '"', escape: true },
|
|
271
|
+
// A single-quoted scalar has no backslash escapes. The one escape it has is
|
|
272
|
+
// a doubled quote, `'it''s'`, and reading that as two scalars would leave
|
|
273
|
+
// `s` outside a string - with a `#` after it free to open a comment.
|
|
274
|
+
{ open: "'", close: "'", escape: false, doubled: true },
|
|
275
|
+
],
|
|
276
|
+
};
|
|
149
277
|
const SQL_LIKE = {
|
|
150
278
|
name: 'sql-like',
|
|
151
279
|
line: ['--'],
|
|
@@ -154,6 +282,9 @@ const SQL_LIKE = {
|
|
|
154
282
|
lifetimes: false,
|
|
155
283
|
digitSeparators: false,
|
|
156
284
|
wordComments: false,
|
|
285
|
+
wordQuotes: false,
|
|
286
|
+
regexLiterals: false,
|
|
287
|
+
jsxText: false,
|
|
157
288
|
strings: QUOTES,
|
|
158
289
|
};
|
|
159
290
|
const MARKUP = {
|
|
@@ -164,6 +295,9 @@ const MARKUP = {
|
|
|
164
295
|
lifetimes: false,
|
|
165
296
|
digitSeparators: false,
|
|
166
297
|
wordComments: false,
|
|
298
|
+
wordQuotes: false,
|
|
299
|
+
regexLiterals: false,
|
|
300
|
+
jsxText: false,
|
|
167
301
|
strings: [],
|
|
168
302
|
};
|
|
169
303
|
/**
|
|
@@ -183,6 +317,9 @@ const NO_COMMENTS = {
|
|
|
183
317
|
lifetimes: false,
|
|
184
318
|
digitSeparators: false,
|
|
185
319
|
wordComments: false,
|
|
320
|
+
wordQuotes: false,
|
|
321
|
+
regexLiterals: false,
|
|
322
|
+
jsxText: false,
|
|
186
323
|
strings: [],
|
|
187
324
|
};
|
|
188
325
|
/** Extension to comment syntax. Anything absent is left unclassified. */
|
|
@@ -224,7 +361,8 @@ register(C_SHARP, ['.cs', '.csx']);
|
|
|
224
361
|
register(RUST, ['.rs']);
|
|
225
362
|
register(GO, ['.go']);
|
|
226
363
|
register(HASH, ['.py', '.pyi', '.rb', '.toml', '.tf', '.pl', '.r']);
|
|
227
|
-
register(
|
|
364
|
+
register(SHELL, ['.sh', '.bash', '.zsh']);
|
|
365
|
+
register(YAML, ['.yaml', '.yml']);
|
|
228
366
|
register(SQL_LIKE, ['.sql', '.lua', '.hs', '.elm']);
|
|
229
367
|
register(MARKUP, ['.html', '.htm', '.xml', '.svg', '.vue', '.svelte', '.md', '.markdown']);
|
|
230
368
|
// MSBuild's files, and the rest of .NET's XML. A project file is where a
|
|
@@ -273,12 +411,23 @@ function endOfString(source, { rule, text, close }) {
|
|
|
273
411
|
index += 2;
|
|
274
412
|
continue;
|
|
275
413
|
}
|
|
276
|
-
if (source.startsWith(close, index))
|
|
414
|
+
if (source.startsWith(close, index)) {
|
|
415
|
+
// A doubled delimiter is an escaped one, so the literal carries on.
|
|
416
|
+
if (rule.doubled && source.startsWith(close, index + close.length)) {
|
|
417
|
+
index += close.length * 2;
|
|
418
|
+
continue;
|
|
419
|
+
}
|
|
277
420
|
return { end: index + close.length, closed: true };
|
|
421
|
+
}
|
|
278
422
|
index += 1;
|
|
279
423
|
}
|
|
280
424
|
return { end: source.length, closed: false };
|
|
281
425
|
}
|
|
426
|
+
/** A line comment's opener, and a YAML scalar's quote, is where a word could start. */
|
|
427
|
+
function startsWord(source, at) {
|
|
428
|
+
const before = source[at - 1];
|
|
429
|
+
return before === undefined || before === ' ' || before === '\t' || before === '\n';
|
|
430
|
+
}
|
|
282
431
|
/**
|
|
283
432
|
* Where the code that starts at `at` with a quote ends, or `at` itself when
|
|
284
433
|
* the quote opens a literal - or there is no quote.
|
|
@@ -290,6 +439,10 @@ function endOfString(source, { rule, text, close }) {
|
|
|
290
439
|
* digit is still that number, where `u8'a'` is a character.
|
|
291
440
|
*/
|
|
292
441
|
function codeAfterQuote(source, at, syntax) {
|
|
442
|
+
// YAML: a scalar is quoted only when the quote is where its value starts, so
|
|
443
|
+
// an apostrophe inside a word is part of a sentence.
|
|
444
|
+
if (syntax.wordQuotes && !startsWord(source, at))
|
|
445
|
+
return at + 1;
|
|
293
446
|
if (source[at] !== "'")
|
|
294
447
|
return at;
|
|
295
448
|
if (syntax.lifetimes) {
|
|
@@ -310,10 +463,119 @@ function codeAfterQuote(source, at, syntax) {
|
|
|
310
463
|
}
|
|
311
464
|
return at;
|
|
312
465
|
}
|
|
313
|
-
/**
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
466
|
+
/**
|
|
467
|
+
* Whether the `/` at `at` opens a regular expression rather than dividing.
|
|
468
|
+
*
|
|
469
|
+
* The one question in JavaScript a character cannot answer by itself, and the
|
|
470
|
+
* reason no profile read a regular expression until 0.11.0: `/` divides or
|
|
471
|
+
* quotes according to what came before it. So this looks back, past the
|
|
472
|
+
* whitespace and past the comments - `// note` and then a line that opens with
|
|
473
|
+
* a regular expression is ordinary code - and asks the same two tables the
|
|
474
|
+
* import tokenizer asks.
|
|
475
|
+
*/
|
|
476
|
+
function opensRegex(source, at, comments) {
|
|
477
|
+
const word = /[A-Za-z0-9_$]/;
|
|
478
|
+
let index = at - 1;
|
|
479
|
+
let recent = comments.length - 1;
|
|
480
|
+
for (;;) {
|
|
481
|
+
while (index >= 0) {
|
|
482
|
+
const char = source[index];
|
|
483
|
+
if (char !== ' ' && char !== '\t' && char !== '\n' && char !== '\r')
|
|
484
|
+
break;
|
|
485
|
+
index -= 1;
|
|
486
|
+
}
|
|
487
|
+
// A comment is not a token. Step over the whole of it and ask again, which
|
|
488
|
+
// the ranges collected so far already say how to do.
|
|
489
|
+
while (recent >= 0 && comments[recent][0] > index)
|
|
490
|
+
recent -= 1;
|
|
491
|
+
const range = comments[recent];
|
|
492
|
+
if (range === undefined || range[1] <= index)
|
|
493
|
+
break;
|
|
494
|
+
index = range[0] - 1;
|
|
495
|
+
}
|
|
496
|
+
// Nothing before it at all: a file may open with a regular expression.
|
|
497
|
+
if (index < 0)
|
|
498
|
+
return true;
|
|
499
|
+
const before = source[index];
|
|
500
|
+
if (word.test(before)) {
|
|
501
|
+
let from = index;
|
|
502
|
+
while (from > 0 && word.test(source[from - 1]))
|
|
503
|
+
from -= 1;
|
|
504
|
+
return REGEX_AFTER_WORD.has(source.slice(from, index + 1));
|
|
505
|
+
}
|
|
506
|
+
return REGEX_AFTER_PUNCT.has(before) && !(before === '}' && source[at + 1] === '>');
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Where the regular expression opened at `at` ends, or `at` itself when
|
|
510
|
+
* nothing closes it before the end of the line - in which case the `/` divided
|
|
511
|
+
* after all.
|
|
512
|
+
*
|
|
513
|
+
* A regular expression is one line long, and that is the backstop here: a `/`
|
|
514
|
+
* this reads wrongly costs at most the rest of its line, never the rest of the
|
|
515
|
+
* file, the same bound a Rust character literal got in 0.10.3.
|
|
516
|
+
*/
|
|
517
|
+
function endOfRegex(source, at) {
|
|
518
|
+
let index = at + 1;
|
|
519
|
+
let inClass = false;
|
|
520
|
+
while (index < source.length) {
|
|
521
|
+
const char = source[index];
|
|
522
|
+
if (char === '\\') {
|
|
523
|
+
index += 2;
|
|
524
|
+
continue;
|
|
525
|
+
}
|
|
526
|
+
if (char === '\n')
|
|
527
|
+
return at;
|
|
528
|
+
if (char === '[')
|
|
529
|
+
inClass = true;
|
|
530
|
+
else if (char === ']')
|
|
531
|
+
inClass = false;
|
|
532
|
+
// Inside a character class `/` is an ordinary character: /[/]/ is one
|
|
533
|
+
// literal, and `replace(/[/\\]/g, …)` is how a path is split.
|
|
534
|
+
else if (char === '/' && !inClass)
|
|
535
|
+
return index + 1;
|
|
536
|
+
index += 1;
|
|
537
|
+
}
|
|
538
|
+
return at;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* The ASCII characters that can begin anything a profile reads.
|
|
542
|
+
*
|
|
543
|
+
* Every comment token and every literal opener in this table starts with one
|
|
544
|
+
* of a handful of characters, and a source file is mostly none of them. So the
|
|
545
|
+
* scan asks this first, and a character that begins nothing costs one array
|
|
546
|
+
* read instead of four searches that were always going to fail.
|
|
547
|
+
*
|
|
548
|
+
* It is also what keeps a rule cheap for the languages that do not have it.
|
|
549
|
+
* Adding the regular-expression branch below to the scan made C 16% slower
|
|
550
|
+
* before this existed - not the branch's work, which C never reaches, but its
|
|
551
|
+
* presence: the same branch with its body deleted cost the same, and so did an
|
|
552
|
+
* unrelated one bolted onto 0.10.3. A question asked per character is paid for
|
|
553
|
+
* per character whether or not it is answered.
|
|
554
|
+
*
|
|
555
|
+
* The table is ASCII-wide, and deliberately has no bounds check at either end.
|
|
556
|
+
* A typed array ignores a write past its end and reads back `undefined`, which
|
|
557
|
+
* is not `0`, so a delimiter in some other script marks nothing and every
|
|
558
|
+
* character of that script takes the slow path - read correctly, and slowly.
|
|
559
|
+
* Both halves of that are the language's own behaviour rather than a branch
|
|
560
|
+
* that no file anyone has could reach.
|
|
561
|
+
*
|
|
562
|
+
* A profile that reads regular expressions needs `/` marked, and gets it from
|
|
563
|
+
* the `//` that opens its line comments; one that has the JSX rule needs it
|
|
564
|
+
* too, and gets it from `/*`. Both are the same character, and no language
|
|
565
|
+
* has one without the other.
|
|
566
|
+
*/
|
|
567
|
+
function openingCharacters(syntax) {
|
|
568
|
+
const starts = new Uint8Array(128);
|
|
569
|
+
const mark = (token) => {
|
|
570
|
+
starts[token.charCodeAt(0)] = 1;
|
|
571
|
+
};
|
|
572
|
+
for (const token of syntax.line)
|
|
573
|
+
mark(token);
|
|
574
|
+
for (const [open] of syntax.block)
|
|
575
|
+
mark(open);
|
|
576
|
+
for (const rule of syntax.strings)
|
|
577
|
+
mark(rule.open);
|
|
578
|
+
return starts;
|
|
317
579
|
}
|
|
318
580
|
/** Where the block comment opened at `at` ends, or the end of the file. */
|
|
319
581
|
function endOfBlock(source, at, pair, nested) {
|
|
@@ -351,49 +613,83 @@ function endOfBlock(source, at, pair, nested) {
|
|
|
351
613
|
export function lexRanges(source, syntax) {
|
|
352
614
|
const comments = [];
|
|
353
615
|
const strings = [];
|
|
616
|
+
// Read once, at the top: the loop below reaches for each of these wherever
|
|
617
|
+
// a character opens something, and the profile itself is never touched
|
|
618
|
+
// inside it. 0.10.3 paid a tenth of the scan for a question asked per
|
|
619
|
+
// character and concluded that the profiles must all be one object shape;
|
|
620
|
+
// they still are, for the rules read at an opener. Nothing mutates a
|
|
621
|
+
// profile, so these cannot go stale mid-scan.
|
|
622
|
+
const { line, block, strings: literals, nested, wordComments, regexLiterals, jsxText } = syntax;
|
|
623
|
+
const starts = openingCharacters(syntax);
|
|
354
624
|
let unterminated = false;
|
|
355
625
|
let index = 0;
|
|
356
626
|
while (index < source.length) {
|
|
357
627
|
const start = index;
|
|
358
|
-
|
|
359
|
-
//
|
|
360
|
-
//
|
|
361
|
-
//
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
if (
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
const lineToken = syntax.line.find((token) => startsWith(token));
|
|
380
|
-
if (lineToken !== undefined && (!syntax.wordComments || startsWord(source, start))) {
|
|
381
|
-
// A line comment is closed by the end of the file as legitimately as by
|
|
382
|
-
// a newline, so running off the end is not a lost scan.
|
|
383
|
-
const newline = source.indexOf('\n', start);
|
|
384
|
-
index = newline === -1 ? source.length : newline;
|
|
385
|
-
comments.push([start, index]);
|
|
386
|
-
}
|
|
387
|
-
else {
|
|
388
|
-
const blockPair = syntax.block.find(([open]) => startsWith(open));
|
|
389
|
-
if (blockPair) {
|
|
390
|
-
const span = endOfBlock(source, start, blockPair, syntax.nested);
|
|
628
|
+
// A character that opens nothing in this language is code, and there is
|
|
629
|
+
// nothing further to ask about it. Written this way round because a
|
|
630
|
+
// character outside the table's reach reads back `undefined`, which is not
|
|
631
|
+
// `0`: an unknown character is asked the long questions, not skipped.
|
|
632
|
+
if (starts[source.charCodeAt(start)] !== 0) {
|
|
633
|
+
const startsWith = (token) => source.startsWith(token, start);
|
|
634
|
+
// First match wins, in this order: a literal hides comment markers inside
|
|
635
|
+
// it, a line comment hides a block opener on the same line, and a `/` is
|
|
636
|
+
// asked whether it opens a regular expression only once it has failed to
|
|
637
|
+
// open either comment. Each lookup sits in the branch that needs it, so
|
|
638
|
+
// none of them runs speculatively - which is why a quote is asked whether
|
|
639
|
+
// it is code only once a literal would open there. Asked on every
|
|
640
|
+
// character, that question cost a tenth of the scan.
|
|
641
|
+
const opener = openerAt(source, start, literals);
|
|
642
|
+
if (opener) {
|
|
643
|
+
const code = codeAfterQuote(source, start, syntax);
|
|
644
|
+
if (code > start) {
|
|
645
|
+
index = code;
|
|
646
|
+
}
|
|
647
|
+
else {
|
|
648
|
+
const span = endOfString(source, opener);
|
|
391
649
|
index = span.end;
|
|
392
|
-
|
|
650
|
+
strings.push([start, index]);
|
|
393
651
|
if (!span.closed)
|
|
394
652
|
unterminated = true;
|
|
395
653
|
}
|
|
396
654
|
}
|
|
655
|
+
else {
|
|
656
|
+
const lineToken = line.find((token) => startsWith(token));
|
|
657
|
+
if (lineToken !== undefined && (!wordComments || startsWord(source, start))) {
|
|
658
|
+
// A line comment is closed by the end of the file as legitimately as
|
|
659
|
+
// by a newline, so running off the end is not a lost scan.
|
|
660
|
+
const newline = source.indexOf('\n', start);
|
|
661
|
+
index = newline === -1 ? source.length : newline;
|
|
662
|
+
comments.push([start, index]);
|
|
663
|
+
}
|
|
664
|
+
else {
|
|
665
|
+
const blockPair = block.find(([open]) => startsWith(open));
|
|
666
|
+
// In JSX a `>` ends a tag, and what follows is text that may say
|
|
667
|
+
// anything: `<div>/*</div>` opens no comment, and reading one there
|
|
668
|
+
// hid every line up to the next `*/` in the file.
|
|
669
|
+
if (blockPair && !(jsxText && source[start - 1] === '>')) {
|
|
670
|
+
const span = endOfBlock(source, start, blockPair, nested);
|
|
671
|
+
index = span.end;
|
|
672
|
+
comments.push([start, index]);
|
|
673
|
+
if (!span.closed)
|
|
674
|
+
unterminated = true;
|
|
675
|
+
}
|
|
676
|
+
else if (regexLiterals && source[start] === '/' && source[start + 1] !== '*' && opensRegex(source, start, comments)) {
|
|
677
|
+
// No regular expression begins with `*`, so the only `/*` that
|
|
678
|
+
// reaches here is the JSX text above, and it stays code.
|
|
679
|
+
//
|
|
680
|
+
// The test for `/` looks redundant, because in this profile every
|
|
681
|
+
// other opening character opens a literal. It is not: a rule whose
|
|
682
|
+
// opener may open nothing - Rust's `r`, which needs a quote after
|
|
683
|
+
// its hashes - reaches here too, and without this the scan would
|
|
684
|
+
// read from that `r` to the next slash on the line.
|
|
685
|
+
const end = endOfRegex(source, start);
|
|
686
|
+
if (end > start) {
|
|
687
|
+
index = end;
|
|
688
|
+
strings.push([start, index]);
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
}
|
|
397
693
|
}
|
|
398
694
|
// The single advance point, and the only place termination depends on.
|
|
399
695
|
if (index <= start)
|
package/dist/comments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../src/comments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAwD7B,MAAM,MAAM,GAA0B;IACpC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACvC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;CACxC,CAAC;AAEF,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,4DAA4D;AAE5D,MAAM,MAAM,GAAkB;IAC5B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,yEAAyE;IACzE,6EAA6E;IAC7E,yEAAyE;IACzE,iDAAiD;IACjD,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,OAAO,GAAkB;IAC7B,GAAG,MAAM;IACT,IAAI,EAAE,YAAY;IAClB,eAAe,EAAE,KAAK;IACtB,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CAC9D,CAAC;AAEF,MAAM,OAAO,GAAkB;IAC7B,GAAG,MAAM;IACT,IAAI,EAAE,IAAI;IACV,eAAe,EAAE,KAAK;IACtB,0EAA0E;IAC1E,gEAAgE;IAChE,EAAE;IACF,0EAA0E;IAC1E,8EAA8E;IAC9E,+EAA+E;IAC/E,uCAAuC;IACvC,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;QACvD,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1C,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;QACzC,GAAG,MAAM;KACV;CACF,CAAC;AAEF,MAAM,IAAI,GAAkB;IAC1B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,+EAA+E;IAC/E,MAAM,EAAE,IAAI;IACZ,4EAA4E;IAC5E,4EAA4E;IAC5E,kEAAkE;IAClE,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE;QACP,yEAAyE;QACzE,4DAA4D;QAC5D,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QACtD,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACvC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;KAC1D;CACF,CAAC;AAEF,MAAM,EAAE,GAAkB;IACxB,GAAG,MAAM;IACT,IAAI,EAAE,IAAI;IACV,eAAe,EAAE,KAAK;IACtB,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;CAC/D,CAAC;AAEF,MAAM,IAAI,GAAkB;IAC1B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,CAAC,GAAG,CAAC;IACX,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;IACnB,0EAA0E;IAC1E,mDAAmD;IACnD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QAC3C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QAC3C,GAAG,MAAM;KACV;CACF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,GAAkB;IAChC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,CAAC,GAAG,CAAC;IACX,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE;QACP,qEAAqE;QACrE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACxC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACvC,qEAAqE;QACrE,4EAA4E;QAC5E,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;KACzC;CACF,CAAC;AAEF,MAAM,QAAQ,GAAkB;IAC9B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,MAAM,GAAkB;IAC5B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAkB;IACjC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,yEAAyE;AACzE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEjD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,QAAQ,CAAC,MAAqB,EAAE,UAA6B;IACpE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,UAAU;QAAE,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAClF,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAChJ,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACnC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACxB,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACpE,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAChE,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACpD,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;AAC3F,yEAAyE;AACzE,8EAA8E;AAC9E,4CAA4C;AAC5C,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAChH,6EAA6E;AAC7E,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7B,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAE1E,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,QAAgB;IACxC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACnC,CAAC;AAoBD,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,MAAc,EAAE,EAAU,EAAE,KAA4B;IACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAAE,SAAS;QAChD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,IAAI,IAAI,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG;gBAAE,IAAI,IAAI,CAAC,CAAC;QACxD,iEAAiE;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yDAAyD;AACzD,SAAS,WAAW,CAAC,MAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAU;IAChE,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QACpF,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1C,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACxF,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CAAC,MAAc,EAAE,EAAU,EAAE,MAAqB;IACvE,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC;IAClC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,qCAAqC,CAAC;QACzD,UAAU,CAAC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9B,yEAAyE;QACzE,4EAA4E;QAC5E,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,GAAG;YAAE,OAAO,UAAU,CAAC,SAAS,CAAC;IACnG,CAAC;IACD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC;QACvB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,OAAO,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAW,CAAC;YAAE,IAAI,IAAI,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAW,CAAC;YAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,2DAA2D;AAC3D,SAAS,UAAU,CAAC,MAAc,EAAE,EAAU;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC;AACtF,CAAC;AAED,2EAA2E;AAC3E,SAAS,UAAU,CAAC,MAAc,EAAE,EAAU,EAAE,IAA+B,EAAE,MAAe;IAC9F,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;IAC3B,IAAI,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC1C,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACpC,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;YACtB,SAAS;QACX,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;AAC7C,CAAC;AAqBD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,MAAqB;IAC7D,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC;QACpB,MAAM,UAAU,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE/E,0EAA0E;QAC1E,4EAA4E;QAC5E,yEAAyE;QACzE,uEAAuE;QACvE,2EAA2E;QAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;gBACjB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACzC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,YAAY,GAAG,IAAI,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnF,wEAAwE;gBACxE,wDAAwD;gBACxD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5C,KAAK,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClE,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACjE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;oBACjB,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAE,YAAY,GAAG,IAAI,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,IAAI,KAAK,IAAI,KAAK;YAAE,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC7C,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,MAAqB;IACjE,OAAO,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAeD,MAAM,YAAY,GAAgB;IAChC,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;CACvB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,QAAgB;IAChE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,YAAY,CAAC;IAEjC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,SAAS,CAAC,MAAc;YACtB,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7B,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAiB,CAAC;gBACjD,IAAI,MAAM,GAAG,KAAK;oBAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;qBAC9B,IAAI,MAAM,IAAI,GAAG;oBAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;;oBACjC,OAAO,IAAI,CAAC;YACnB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../src/comments.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* ADR-0014.
|
|
10
10
|
*/
|
|
11
11
|
import type { EnginePreference } from './engine.js';
|
|
12
|
+
import type { CiteFamily } from './types.js';
|
|
12
13
|
/** The name the options sit under in `package.json`. */
|
|
13
14
|
export declare const CONFIG_KEY = "specGuard";
|
|
14
15
|
/**
|
|
@@ -29,6 +30,8 @@ export interface ProjectConfig {
|
|
|
29
30
|
defaultSkips?: boolean;
|
|
30
31
|
maxSnippets?: number;
|
|
31
32
|
concurrency?: number;
|
|
33
|
+
/** The documents code comments cite, for `spec-guard cites`: an id template and the files it names. */
|
|
34
|
+
cites?: CiteFamily[];
|
|
32
35
|
}
|
|
33
36
|
export type ConfigKey = keyof ProjectConfig;
|
|
34
37
|
/** Every key, in the order the documentation lists them. */
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,UAAU,cAAc,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uGAAuG;IACvG,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC;AAE5C,4DAA4D;AAC5D,eAAO,MAAM,WAAW,EAAE,SAAS,SAAS,EAa3C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAUjD,CAAC;AAEH,sEAAsE;AACtE,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAWzC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAI1D;AAkFD,kFAAkF;AAClF,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAmBD;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAmB5G;AAED,0EAA0E;AAC1E,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAE9G;AA6CD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAiB,GAAG,aAAa,CAG9E;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAc,GAAG,aAAa,CAQrF"}
|