@markup-carve/carve-lsp 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -0
- package/dist/analyze.d.ts +17 -1
- package/dist/analyze.js +57 -1
- package/dist/analyze.js.map +1 -1
- package/dist/analyze.test.js +95 -0
- package/dist/analyze.test.js.map +1 -1
- package/dist/definition.js +26 -2
- package/dist/definition.js.map +1 -1
- package/dist/definition.test.js +8 -0
- package/dist/definition.test.js.map +1 -1
- package/dist/folding.js +4 -4
- package/dist/folding.js.map +1 -1
- package/dist/hover.js +33 -16
- package/dist/hover.js.map +1 -1
- package/dist/include-directive.d.ts +61 -0
- package/dist/include-directive.js +158 -0
- package/dist/include-directive.js.map +1 -0
- package/dist/include-directive.test.d.ts +1 -0
- package/dist/include-directive.test.js +83 -0
- package/dist/include-directive.test.js.map +1 -0
- package/dist/include-path.d.ts +63 -0
- package/dist/include-path.js +135 -0
- package/dist/include-path.js.map +1 -0
- package/dist/include-path.test.d.ts +1 -0
- package/dist/include-path.test.js +189 -0
- package/dist/include-path.test.js.map +1 -0
- package/dist/include-security-conformance.test.d.ts +1 -0
- package/dist/include-security-conformance.test.js +100 -0
- package/dist/include-security-conformance.test.js.map +1 -0
- package/dist/include-settings.d.ts +50 -0
- package/dist/include-settings.js +135 -0
- package/dist/include-settings.js.map +1 -0
- package/dist/include-settings.test.d.ts +1 -0
- package/dist/include-settings.test.js +191 -0
- package/dist/include-settings.test.js.map +1 -0
- package/dist/includes.d.ts +78 -0
- package/dist/includes.js +158 -0
- package/dist/includes.js.map +1 -0
- package/dist/includes.test.d.ts +1 -0
- package/dist/includes.test.js +202 -0
- package/dist/includes.test.js.map +1 -0
- package/dist/inline-text.d.ts +24 -0
- package/dist/inline-text.js +34 -0
- package/dist/inline-text.js.map +1 -0
- package/dist/inline-text.test.d.ts +1 -0
- package/dist/inline-text.test.js +32 -0
- package/dist/inline-text.test.js.map +1 -0
- package/dist/position-encoding.test.d.ts +1 -0
- package/dist/position-encoding.test.js +143 -0
- package/dist/position-encoding.test.js.map +1 -0
- package/dist/position.d.ts +82 -0
- package/dist/position.js +137 -0
- package/dist/position.js.map +1 -0
- package/dist/position.test.d.ts +1 -0
- package/dist/position.test.js +61 -0
- package/dist/position.test.js.map +1 -0
- package/dist/references.js +7 -0
- package/dist/references.js.map +1 -1
- package/dist/semantic.d.ts +14 -0
- package/dist/semantic.js +113 -27
- package/dist/semantic.js.map +1 -1
- package/dist/semantic.test.d.ts +1 -0
- package/dist/semantic.test.js +93 -0
- package/dist/semantic.test.js.map +1 -0
- package/dist/server.js +50 -23
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/dist/position.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { parse } from '@markup-carve/carve';
|
|
2
|
+
/**
|
|
3
|
+
* Converts between the units Carve positions and LSP positions count.
|
|
4
|
+
*
|
|
5
|
+
* A Carve AST position counts UNICODE CODEPOINTS (spec PART 12 §4, chosen so
|
|
6
|
+
* an index always lands on a character boundary). An LSP position counts
|
|
7
|
+
* UTF-16 code units unless the client and server negotiate `positionEncoding`,
|
|
8
|
+
* which this server does not do, so UTF-16 is what every client here expects.
|
|
9
|
+
*
|
|
10
|
+
* The two units agree on the entire BMP and diverge on every astral character:
|
|
11
|
+
* one emoji earlier in the line shifts every LSP column after it by one. So a
|
|
12
|
+
* position read off the AST cannot be handed to a client, nor a position from
|
|
13
|
+
* a client compared against the AST, without passing through here.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* A 1-based codepoint column, as an AST position reports it, to the 0-based
|
|
17
|
+
* UTF-16 character an LSP range carries.
|
|
18
|
+
*/
|
|
19
|
+
export function codepointColumnToUtf16(lineText, column) {
|
|
20
|
+
if (column <= 1)
|
|
21
|
+
return 0;
|
|
22
|
+
let codepointColumn = 1;
|
|
23
|
+
let index = 0;
|
|
24
|
+
while (index < lineText.length && codepointColumn < column) {
|
|
25
|
+
index += (lineText.codePointAt(index) ?? 0) > 0xffff ? 2 : 1;
|
|
26
|
+
codepointColumn++;
|
|
27
|
+
}
|
|
28
|
+
// A column past the line's last character is normal: end columns are
|
|
29
|
+
// exclusive, so a construct ending the line reports length + 1. Anything
|
|
30
|
+
// further past the end keeps its distance rather than collapsing onto it,
|
|
31
|
+
// so a range can never come back inverted.
|
|
32
|
+
return index + Math.max(0, column - codepointColumn);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The 0-based UTF-16 character an LSP request carries, to the 1-based codepoint
|
|
36
|
+
* column an AST position can be compared against.
|
|
37
|
+
*
|
|
38
|
+
* A character index pointing into the middle of a surrogate pair resolves to
|
|
39
|
+
* the column after that pair. There is no column for half a character, and a
|
|
40
|
+
* client only produces one by placing a cursor inside one.
|
|
41
|
+
*/
|
|
42
|
+
export function utf16CharToCodepointColumn(lineText, character) {
|
|
43
|
+
let codepointColumn = 1;
|
|
44
|
+
let index = 0;
|
|
45
|
+
while (index < lineText.length && index < character) {
|
|
46
|
+
index += (lineText.codePointAt(index) ?? 0) > 0xffff ? 2 : 1;
|
|
47
|
+
codepointColumn++;
|
|
48
|
+
}
|
|
49
|
+
return codepointColumn + Math.max(0, character - index);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The document's lines, line endings normalized, indexed 0-based - the form
|
|
53
|
+
* both conversions above need to see a line's characters.
|
|
54
|
+
*/
|
|
55
|
+
export function sourceLines(source) {
|
|
56
|
+
return source.replace(/\r\n?/g, '\n').split('\n');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Which unit the installed parser's columns are in.
|
|
60
|
+
*
|
|
61
|
+
* This is not a constant, because the dependency range spans both answers.
|
|
62
|
+
* Positions arrived in @markup-carve/carve counting UTF-16 code units, which
|
|
63
|
+
* is what a JavaScript string is indexed by; carve-js#447 then made them count
|
|
64
|
+
* codepoints, to conform to the spec. Both satisfy `^0.1.2`, so a build of this
|
|
65
|
+
* server installed today and the same build installed after that release are
|
|
66
|
+
* handed different numbers for the same document, and nothing in the package
|
|
67
|
+
* metadata distinguishes them.
|
|
68
|
+
*
|
|
69
|
+
* Rather than guess, ask: one astral character is two UTF-16 code units and one
|
|
70
|
+
* codepoint, so a two-character probe reports a different end column under each
|
|
71
|
+
* unit. The answer is cached - it cannot change within a process.
|
|
72
|
+
*/
|
|
73
|
+
// Exported so the guard test drives THE PROBE rather than a copy of it. A test
|
|
74
|
+
// that retypes the probe string agrees with this function for every value the
|
|
75
|
+
// engine can return, including `undefined`, and goes on agreeing after the
|
|
76
|
+
// probe here is changed to something that cannot tell the two units apart -
|
|
77
|
+
// which is the whole failure it is supposed to report.
|
|
78
|
+
export const COLUMN_PROBE = '\u{1F600}x';
|
|
79
|
+
export const CODEPOINT_PROBE_END_COLUMN = 3;
|
|
80
|
+
let cachedUnit;
|
|
81
|
+
/**
|
|
82
|
+
* The raw reading the classification is made from: the probe's end column as
|
|
83
|
+
* the installed parser reports it, or `undefined` when the parser cannot answer
|
|
84
|
+
* at all.
|
|
85
|
+
*
|
|
86
|
+
* Split out and exported so the guard test can consume THE READING the
|
|
87
|
+
* classifier uses, instead of computing its own copy of it. A test that reparses
|
|
88
|
+
* the probe itself agrees with `engineColumnUnit` for every value including
|
|
89
|
+
* `undefined`, so it cannot see the difference between a measurement and the
|
|
90
|
+
* fallback below - which is the only thing worth checking here.
|
|
91
|
+
*/
|
|
92
|
+
export function probeEndColumn() {
|
|
93
|
+
try {
|
|
94
|
+
return parse(COLUMN_PROBE).children[0]?.pos?.endColumn;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export function engineColumnUnit() {
|
|
101
|
+
if (cachedUnit)
|
|
102
|
+
return cachedUnit;
|
|
103
|
+
// A parser that cannot answer gets the reading that needs no conversion,
|
|
104
|
+
// which is what every released version has done so far. That default is right
|
|
105
|
+
// for a server that must not crash on an unexpected engine, and wrong to
|
|
106
|
+
// accept silently in CI, so a test asserts the probe was actually answered.
|
|
107
|
+
const endColumn = probeEndColumn();
|
|
108
|
+
cachedUnit = endColumn === CODEPOINT_PROBE_END_COLUMN ? 'codepoint' : 'utf16';
|
|
109
|
+
return cachedUnit;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Test seam: pin the unit, or pass `undefined` to probe again.
|
|
113
|
+
*
|
|
114
|
+
* The installed parser can only demonstrate one of the two readings, and it is
|
|
115
|
+
* the one whose conversion is the identity - so without this the codepoint
|
|
116
|
+
* branch would ship untested and unrun until a dependency bump made it live.
|
|
117
|
+
*/
|
|
118
|
+
export function setEngineColumnUnit(unit) {
|
|
119
|
+
cachedUnit = unit;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* A 1-based column as the installed parser reports it, to the 0-based UTF-16
|
|
123
|
+
* character an LSP range carries. Use this rather than the raw conversion:
|
|
124
|
+
* under a UTF-16 parser the columns already are LSP characters, and converting
|
|
125
|
+
* them would introduce the very shift it is meant to remove.
|
|
126
|
+
*/
|
|
127
|
+
export function astColumnToCharacter(lineText, column) {
|
|
128
|
+
return engineColumnUnit() === 'codepoint' ? codepointColumnToUtf16(lineText, column) : column - 1;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The 0-based UTF-16 character an LSP request carries, to the 1-based column
|
|
132
|
+
* the installed parser's positions can be compared against.
|
|
133
|
+
*/
|
|
134
|
+
export function characterToAstColumn(lineText, character) {
|
|
135
|
+
return engineColumnUnit() === 'codepoint' ? utf16CharToCodepointColumn(lineText, character) : character + 1;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../src/position.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import { codepointColumnToUtf16, sourceLines, utf16CharToCodepointColumn } from './position.js';
|
|
4
|
+
// An emoji is two UTF-16 code units and one codepoint, so every column after it
|
|
5
|
+
// differs between the two units. Everything below that line is BMP-only, where
|
|
6
|
+
// the two agree and the conversion has to stay the identity.
|
|
7
|
+
test('a BMP-only line converts as the identity', () => {
|
|
8
|
+
const line = 'a *b* c';
|
|
9
|
+
for (let column = 1; column <= line.length + 1; column++) {
|
|
10
|
+
assert.equal(codepointColumnToUtf16(line, column), column - 1);
|
|
11
|
+
}
|
|
12
|
+
for (let character = 0; character <= line.length; character++) {
|
|
13
|
+
assert.equal(utf16CharToCodepointColumn(line, character), character + 1);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
test('an astral character shifts every column after it', () => {
|
|
17
|
+
// The `*` sits at codepoint column 3 and UTF-16 character 3, because the
|
|
18
|
+
// emoji occupies one codepoint and two code units.
|
|
19
|
+
const line = '\u{1F600} *b*';
|
|
20
|
+
assert.equal(line.indexOf('*'), 3);
|
|
21
|
+
assert.equal(codepointColumnToUtf16(line, 1), 0);
|
|
22
|
+
assert.equal(codepointColumnToUtf16(line, 2), 2);
|
|
23
|
+
assert.equal(codepointColumnToUtf16(line, 3), 3);
|
|
24
|
+
assert.equal(codepointColumnToUtf16(line, 6), 6);
|
|
25
|
+
assert.equal(utf16CharToCodepointColumn(line, 0), 1);
|
|
26
|
+
assert.equal(utf16CharToCodepointColumn(line, 2), 2);
|
|
27
|
+
assert.equal(utf16CharToCodepointColumn(line, 3), 3);
|
|
28
|
+
assert.equal(utf16CharToCodepointColumn(line, 6), 6);
|
|
29
|
+
});
|
|
30
|
+
test('the two conversions round-trip through each other', () => {
|
|
31
|
+
const line = 'x\u{1F600}y\u{1F1E9}\u{1F1EA}z';
|
|
32
|
+
for (let column = 1; column <= 7; column++) {
|
|
33
|
+
assert.equal(utf16CharToCodepointColumn(line, codepointColumnToUtf16(line, column)), column);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
test('an exclusive end column lands on the end of the line', () => {
|
|
37
|
+
const line = '\u{1F600}ab';
|
|
38
|
+
// Three codepoints, so the exclusive end column is 4 and the UTF-16 end is
|
|
39
|
+
// the string's length.
|
|
40
|
+
assert.equal(codepointColumnToUtf16(line, 4), line.length);
|
|
41
|
+
assert.equal(codepointColumnToUtf16(line, 4), 4);
|
|
42
|
+
});
|
|
43
|
+
test('a column past the end keeps its distance rather than collapsing', () => {
|
|
44
|
+
// Ranges are built from two converted columns; clamping both to the end
|
|
45
|
+
// would silently produce an empty range where the parser reported a span.
|
|
46
|
+
const line = 'ab';
|
|
47
|
+
assert.equal(codepointColumnToUtf16(line, 5), 4);
|
|
48
|
+
assert.equal(utf16CharToCodepointColumn(line, 5), 6);
|
|
49
|
+
});
|
|
50
|
+
test('a character inside a surrogate pair resolves past it', () => {
|
|
51
|
+
const line = '\u{1F600}a';
|
|
52
|
+
assert.equal(utf16CharToCodepointColumn(line, 1), 2);
|
|
53
|
+
});
|
|
54
|
+
test('an empty line converts without moving', () => {
|
|
55
|
+
assert.equal(codepointColumnToUtf16('', 1), 0);
|
|
56
|
+
assert.equal(utf16CharToCodepointColumn('', 0), 1);
|
|
57
|
+
});
|
|
58
|
+
test('lines are split on every line ending form', () => {
|
|
59
|
+
assert.deepEqual(sourceLines('a\r\nb\rc\nd'), ['a', 'b', 'c', 'd']);
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=position.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.test.js","sourceRoot":"","sources":["../src/position.test.ts"],"names":[],"mappings":"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"}
|
package/dist/references.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parse, resolve } from '@markup-carve/carve';
|
|
2
|
+
import { smartPunctuationText } from './inline-text.js';
|
|
2
3
|
/**
|
|
3
4
|
* Find-references for Carve constructs (same-document scope).
|
|
4
5
|
*
|
|
@@ -396,6 +397,12 @@ function headingPlainText(nodes) {
|
|
|
396
397
|
}
|
|
397
398
|
else if (node.type === 'code')
|
|
398
399
|
out += node.value;
|
|
400
|
+
// An inline literal (§27) renders as visible prose, so it must contribute
|
|
401
|
+
// to the heading text used for cross-reference and rename matching.
|
|
402
|
+
else if (node.type === 'literal_inline')
|
|
403
|
+
out += node.content;
|
|
404
|
+
else
|
|
405
|
+
out += smartPunctuationText(node);
|
|
399
406
|
}
|
|
400
407
|
return out.trim();
|
|
401
408
|
}
|
package/dist/references.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"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"}
|
package/dist/semantic.d.ts
CHANGED
|
@@ -12,4 +12,18 @@ interface Token {
|
|
|
12
12
|
}
|
|
13
13
|
export declare function buildSemanticTokens(source: string): SemanticTokens;
|
|
14
14
|
export declare function semanticTokens(source: string): Token[];
|
|
15
|
+
/**
|
|
16
|
+
* Scan a single line for constructs the AST path misses:
|
|
17
|
+
* - Reference definitions [label]: url (resolved away, never appear in children)
|
|
18
|
+
* - Footnote definitions [^label]: ... (same)
|
|
19
|
+
* - {= ... =} critic annotation (parsed as plain text by the AST)
|
|
20
|
+
* - $...$ and $$...$$ math (parsed as plain text by the AST)
|
|
21
|
+
*
|
|
22
|
+
* Called from astSemanticTokens after AST tokens are already collected;
|
|
23
|
+
* withoutOverlaps will drop any that land on already-covered spans.
|
|
24
|
+
*/
|
|
25
|
+
export declare const DEF_SEPARATOR: string;
|
|
26
|
+
export declare const QUOTE_PREFIX: RegExp;
|
|
27
|
+
export declare const LIST_MARKER_ONLY: RegExp;
|
|
28
|
+
export declare const LIST_PREFIX: RegExp;
|
|
15
29
|
export {};
|
package/dist/semantic.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SemanticTokensBuilder } from 'vscode-languageserver/node.js';
|
|
2
2
|
import { parse, resolve, } from '@markup-carve/carve';
|
|
3
|
+
import { astColumnToCharacter } from './position.js';
|
|
3
4
|
export const semanticTokenTypes = [
|
|
4
5
|
'keyword',
|
|
5
6
|
'string',
|
|
@@ -65,20 +66,20 @@ function collectBlock(tokens, lines, node) {
|
|
|
65
66
|
case 'paragraph':
|
|
66
67
|
collectInline(tokens, lines, node.children);
|
|
67
68
|
break;
|
|
68
|
-
case '
|
|
69
|
-
case '
|
|
69
|
+
case 'code_block':
|
|
70
|
+
case 'raw_block':
|
|
70
71
|
pushPosition(tokens, lines, node.pos, 'string');
|
|
71
72
|
break;
|
|
72
73
|
case 'comment':
|
|
73
74
|
pushPosition(tokens, lines, node.pos, 'comment');
|
|
74
75
|
break;
|
|
75
|
-
case '
|
|
76
|
+
case 'block_quote':
|
|
76
77
|
pushLinePrefix(tokens, lines, node.pos, /^\s*>+/, 'operator');
|
|
77
78
|
for (const child of node.children)
|
|
78
79
|
collectBlock(tokens, lines, child);
|
|
79
80
|
break;
|
|
80
81
|
case 'list':
|
|
81
|
-
pushLinePrefix(tokens, lines, node.pos,
|
|
82
|
+
pushLinePrefix(tokens, lines, node.pos, LIST_MARKER_ONLY, 'operator');
|
|
82
83
|
for (const item of node.items) {
|
|
83
84
|
for (const child of item.children)
|
|
84
85
|
collectBlock(tokens, lines, child);
|
|
@@ -96,7 +97,7 @@ function collectBlock(tokens, lines, node) {
|
|
|
96
97
|
for (const child of node.children)
|
|
97
98
|
collectBlock(tokens, lines, child);
|
|
98
99
|
break;
|
|
99
|
-
case '
|
|
100
|
+
case 'definition_list':
|
|
100
101
|
for (const item of node.items) {
|
|
101
102
|
for (const term of item.terms)
|
|
102
103
|
collectInline(tokens, lines, term);
|
|
@@ -122,10 +123,10 @@ function collectBlock(tokens, lines, node) {
|
|
|
122
123
|
case 'image':
|
|
123
124
|
pushPosition(tokens, lines, node.pos, 'string');
|
|
124
125
|
break;
|
|
125
|
-
case '
|
|
126
|
+
case 'thematic_break':
|
|
126
127
|
pushPosition(tokens, lines, node.pos, 'operator');
|
|
127
128
|
break;
|
|
128
|
-
case '
|
|
129
|
+
case 'abbreviation_def':
|
|
129
130
|
pushPosition(tokens, lines, node.pos, 'property');
|
|
130
131
|
break;
|
|
131
132
|
}
|
|
@@ -138,39 +139,73 @@ function collectFigureTarget(tokens, lines, node) {
|
|
|
138
139
|
}
|
|
139
140
|
function collectInline(tokens, lines, nodes) {
|
|
140
141
|
for (const node of nodes) {
|
|
142
|
+
// carve-js renamed this AST type from `critic-comment` to `critic_comment`,
|
|
143
|
+
// completing the kebab-to-snake vocabulary convergence (carve#401). The
|
|
144
|
+
// rename is not published yet and this package pins `^0.1.2`, whose types
|
|
145
|
+
// only know the hyphenated name - so the new spelling cannot be a `case`
|
|
146
|
+
// arm without a compile error, and the old one cannot simply be replaced
|
|
147
|
+
// without breaking against the version actually installed.
|
|
148
|
+
//
|
|
149
|
+
// Handling it here accepts both, so neither publish order produces a silent
|
|
150
|
+
// break - and the break really would be silent: without this the node falls
|
|
151
|
+
// through to the generic brace handling and comes out as a `keyword` token,
|
|
152
|
+
// a mis-colored comment rather than a crash.
|
|
153
|
+
//
|
|
154
|
+
// Drop this once the pin is raised past the release carrying the rename.
|
|
155
|
+
// That cleanup is self-enforcing: at that point the hyphenated `case` arm
|
|
156
|
+
// below stops compiling, because the type union no longer contains it.
|
|
157
|
+
// carve-js split `footnote` into `footnote_ref` (`[^a]`) and
|
|
158
|
+
// `inline_footnote` (`^[…]`), because one identifier named both of those
|
|
159
|
+
// AND the block definition type (carve#405). Same situation as the
|
|
160
|
+
// `critic_comment` rename below: the pinned `^0.1.2` still emits the old
|
|
161
|
+
// name, and the new ones cannot be `case` arms until the pin moves, so all
|
|
162
|
+
// three are accepted and either release order is safe.
|
|
163
|
+
//
|
|
164
|
+
// Without this the split node falls through to the default and loses its
|
|
165
|
+
// token entirely - a footnote marker stops being highlighted, silently.
|
|
166
|
+
if (node.type === 'footnote_ref' || node.type === 'inline_footnote') {
|
|
167
|
+
pushPosition(tokens, lines, node.pos, 'variable', ['readonly']);
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
if (node.type === 'critic_comment') {
|
|
171
|
+
pushPosition(tokens, lines, node.pos, 'comment');
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
141
174
|
switch (node.type) {
|
|
142
175
|
case 'text':
|
|
143
|
-
case '
|
|
144
|
-
case '
|
|
176
|
+
case 'soft_break':
|
|
177
|
+
case 'hard_break':
|
|
145
178
|
break;
|
|
146
179
|
case 'code':
|
|
147
180
|
case 'math':
|
|
148
|
-
case '
|
|
181
|
+
case 'literal_inline':
|
|
182
|
+
case 'raw_inline':
|
|
149
183
|
case 'link':
|
|
150
184
|
case 'image':
|
|
151
185
|
case 'autolink':
|
|
152
|
-
case '
|
|
186
|
+
case 'heading_ref':
|
|
153
187
|
pushPosition(tokens, lines, node.pos, 'string');
|
|
154
188
|
break;
|
|
155
189
|
case 'mention':
|
|
156
190
|
case 'tag':
|
|
157
191
|
case 'symbol':
|
|
158
|
-
case '
|
|
192
|
+
case 'footnote_ref':
|
|
193
|
+
case 'inline_footnote':
|
|
159
194
|
case 'abbreviation':
|
|
160
195
|
pushPosition(tokens, lines, node.pos, 'variable', ['readonly']);
|
|
161
196
|
break;
|
|
162
197
|
case 'span':
|
|
163
|
-
case '
|
|
198
|
+
case 'inline_extension':
|
|
164
199
|
pushPosition(tokens, lines, node.pos, 'property');
|
|
165
200
|
break;
|
|
166
|
-
case '
|
|
201
|
+
case 'insert':
|
|
167
202
|
pushPosition(tokens, lines, node.pos, 'type');
|
|
168
203
|
break;
|
|
169
|
-
case '
|
|
170
|
-
case '
|
|
204
|
+
case 'delete':
|
|
205
|
+
case 'critic_comment':
|
|
171
206
|
pushPosition(tokens, lines, node.pos, 'comment');
|
|
172
207
|
break;
|
|
173
|
-
case '
|
|
208
|
+
case 'substitution':
|
|
174
209
|
pushPosition(tokens, lines, node.pos, 'keyword');
|
|
175
210
|
break;
|
|
176
211
|
case 'comment':
|
|
@@ -200,9 +235,13 @@ function pushPosition(tokens, lines, pos, type, modifiers = []) {
|
|
|
200
235
|
}
|
|
201
236
|
for (let line = pos.startLine; line <= pos.endLine; line++) {
|
|
202
237
|
const text = lines[line - 1] ?? '';
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
238
|
+
// The node's columns count codepoints; a token's character and length count
|
|
239
|
+
// UTF-16 code units, so both ends convert against the line they sit on. A
|
|
240
|
+
// line the node merely passes through is covered from its start to its end,
|
|
241
|
+
// which is already a UTF-16 length.
|
|
242
|
+
const start = line === pos.startLine ? astColumnToCharacter(text, pos.startColumn) : 0;
|
|
243
|
+
const end = line === pos.endLine ? astColumnToCharacter(text, pos.endColumn) : text.length;
|
|
244
|
+
push(tokens, line - 1, start, Math.max(0, end - start), type, modifiers);
|
|
206
245
|
}
|
|
207
246
|
}
|
|
208
247
|
function pushLinePrefix(tokens, lines, pos, pattern, type) {
|
|
@@ -235,9 +274,56 @@ function pushHeadingTitle(tokens, lines, pos) {
|
|
|
235
274
|
* Called from astSemanticTokens after AST tokens are already collected;
|
|
236
275
|
* withoutOverlaps will drop any that land on already-covered spans.
|
|
237
276
|
*/
|
|
277
|
+
/*
|
|
278
|
+
* MARKER SEPARATORS ARE A LITERAL SPACE.
|
|
279
|
+
*
|
|
280
|
+
* Exported so the rule can be asserted directly. Most of it is NOT observable
|
|
281
|
+
* through `semanticTokens`: that prefers the AST path, so what a marker line
|
|
282
|
+
* becomes is decided by the pinned engine rather than by these patterns, and
|
|
283
|
+
* the pinned engine is old enough to still make `><TAB>q` a blockquote
|
|
284
|
+
* (carve-lsp#37). Testing through it would measure the dependency.
|
|
285
|
+
*
|
|
286
|
+
* `resources/grammar.ebnf` keeps two terminals apart on purpose - `whitespace`
|
|
287
|
+
* is `' ' | '\t'`, `space` is `' '` - and every marker below takes `space`.
|
|
288
|
+
* Separators are literal; indentation is columns, and a separator is not
|
|
289
|
+
* indentation (carve#692, carve#698).
|
|
290
|
+
*
|
|
291
|
+
* These were spelled `\s` in five places across two functions, so the editor
|
|
292
|
+
* colored a checkbox, a quote marker and a reference label on lines every
|
|
293
|
+
* engine renders as ordinary paragraph text (carve-lsp#38). Named once here
|
|
294
|
+
* because the same rule living in five regexes is why the earlier pass over
|
|
295
|
+
* these patterns fixed only the ones a report happened to name.
|
|
296
|
+
*
|
|
297
|
+
* How much whitespace each admits AFTER the required space is measured against
|
|
298
|
+
* the engine, not assumed - they differ:
|
|
299
|
+
*
|
|
300
|
+
* `[a]: <TAB>/u` defines -> further whitespace is content's problem
|
|
301
|
+
* `- [ ] <TAB>a` NOT a task -> the run is spaces, and content follows
|
|
302
|
+
* `> q` and `> <TAB>q` -> both quote
|
|
303
|
+
*/
|
|
304
|
+
// `reference_definition = '[', reference_label, ']', ':', space, ...` and the
|
|
305
|
+
// footnote form. The space is REQUIRED - the old `\s*` also matched none, so
|
|
306
|
+
// `[a]:/u` was colored as a definition too.
|
|
307
|
+
export const DEF_SEPARATOR = String.raw `\]: [ \t]*`;
|
|
308
|
+
// `blockquote_line = '>', (newline | (space, inline_content, newline))`. A bare
|
|
309
|
+
// `>` is a blockquote line, which is why the space is optional only at
|
|
310
|
+
// end-of-line.
|
|
311
|
+
export const QUOTE_PREFIX = /^([ \t]*>+)(?: |$)/;
|
|
312
|
+
// `unordered_item = bullet_marker, [item_attributes], space, [task_marker], ...`
|
|
313
|
+
// with `bullet_marker = '-' | '*'` - `+` is the list CONTINUATION marker, not a
|
|
314
|
+
// bullet, so a `+ ` line is paragraph text.
|
|
315
|
+
//
|
|
316
|
+
// `task_marker = '[', task_state, ']', space`, and `task_state` is any of
|
|
317
|
+
// ` x X - _ > ?`; the old class admitted only ` xX`, so four of the seven
|
|
318
|
+
// states were not colored at all. The lookahead is the measured behavior: the
|
|
319
|
+
// separator run is spaces, and what follows has to be content.
|
|
320
|
+
// The marker alone, for the AST path, which already knows the line opens a
|
|
321
|
+
// list and only needs the marker's width. Same bullet class: `+` is not one.
|
|
322
|
+
export const LIST_MARKER_ONLY = /^[ \t]*(?:[-*]|\(?[0-9A-Za-z]+[.)])/;
|
|
323
|
+
export const LIST_PREFIX = /^([ \t]*)([-*]|\(?[0-9]+[.)]|\(?[A-Za-z][.)]) +(\[[ xX\-_>?]\] +(?=\S))?/;
|
|
238
324
|
function scanAstGaps(tokens, line, text) {
|
|
239
325
|
// footnote definition: [^label]: content — must be checked before reference def
|
|
240
|
-
const fnDef =
|
|
326
|
+
const fnDef = new RegExp(String.raw `^(\[\^)([^\]\n]+)(` + DEF_SEPARATOR + String.raw `)(.*)`).exec(text);
|
|
241
327
|
if (fnDef) {
|
|
242
328
|
push(tokens, line, fnDef.index, 2, 'operator');
|
|
243
329
|
push(tokens, line, fnDef.index + 2, fnDef[2].length, 'type');
|
|
@@ -245,7 +331,7 @@ function scanAstGaps(tokens, line, text) {
|
|
|
245
331
|
return;
|
|
246
332
|
}
|
|
247
333
|
// reference definition: [label]: url
|
|
248
|
-
const refDef =
|
|
334
|
+
const refDef = new RegExp(String.raw `^(\[)([^\]\n]+)(` + DEF_SEPARATOR + String.raw `)(\S+)`).exec(text);
|
|
249
335
|
if (refDef) {
|
|
250
336
|
push(tokens, line, refDef.index, 1, 'operator');
|
|
251
337
|
push(tokens, line, refDef.index + 1, refDef[2].length, 'type');
|
|
@@ -325,17 +411,17 @@ function lexicalSemanticTokens(source) {
|
|
|
325
411
|
if (div[3])
|
|
326
412
|
push(tokens, line, div[0].lastIndexOf(div[3]), div[3].length, 'type');
|
|
327
413
|
}
|
|
328
|
-
const list =
|
|
414
|
+
const list = LIST_PREFIX.exec(scanText);
|
|
329
415
|
if (list) {
|
|
330
416
|
push(tokens, line, list[1].length, list[2].length, 'operator');
|
|
331
417
|
if (list[3])
|
|
332
418
|
push(tokens, line, list[1].length + list[2].length + 1, list[3].trimEnd().length, 'keyword');
|
|
333
419
|
}
|
|
334
|
-
const quote =
|
|
420
|
+
const quote = QUOTE_PREFIX.exec(scanText);
|
|
335
421
|
if (quote)
|
|
336
422
|
push(tokens, line, quote[1].search(/>/), quote[1].trimStart().length, 'operator');
|
|
337
423
|
// footnote definition: [^label]: content — must be checked before reference def
|
|
338
|
-
const fnDef =
|
|
424
|
+
const fnDef = new RegExp(String.raw `^(\[\^)([^\]\n]+)(` + DEF_SEPARATOR + String.raw `)(.*)`).exec(scanText);
|
|
339
425
|
if (fnDef) {
|
|
340
426
|
push(tokens, line, fnDef.index, 2, 'operator');
|
|
341
427
|
push(tokens, line, fnDef.index + 2, fnDef[2].length, 'type');
|
|
@@ -343,7 +429,7 @@ function lexicalSemanticTokens(source) {
|
|
|
343
429
|
continue;
|
|
344
430
|
}
|
|
345
431
|
// reference definition: [label]: url
|
|
346
|
-
const refDef =
|
|
432
|
+
const refDef = new RegExp(String.raw `^(\[)([^\]\n]+)(` + DEF_SEPARATOR + String.raw `)(\S+)`).exec(scanText);
|
|
347
433
|
if (refDef) {
|
|
348
434
|
push(tokens, line, refDef.index, 1, 'operator');
|
|
349
435
|
push(tokens, line, refDef.index + 1, refDef[2].length, 'type');
|
|
@@ -352,7 +438,7 @@ function lexicalSemanticTokens(source) {
|
|
|
352
438
|
continue;
|
|
353
439
|
}
|
|
354
440
|
// abbreviation definition: *[ABBR]: expansion
|
|
355
|
-
const abbrDef =
|
|
441
|
+
const abbrDef = new RegExp(String.raw `^(\*\[)([^\]\n]+)(` + DEF_SEPARATOR + String.raw `)(.*)`).exec(scanText);
|
|
356
442
|
if (abbrDef) {
|
|
357
443
|
push(tokens, line, abbrDef.index, 2, 'operator');
|
|
358
444
|
push(tokens, line, abbrDef.index + 2, abbrDef[2].length, 'property');
|