@azerothjs/language-service 0.5.0-beta.1 → 0.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docgen.d.ts +24 -0
- package/dist/docgen.d.ts.map +1 -0
- package/dist/docgen.js +195 -0
- package/dist/docgen.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/language-data.d.ts +1 -1
- package/dist/language-data.d.ts.map +1 -1
- package/dist/language-data.js +39 -29
- package/dist/language-data.js.map +1 -1
- package/dist/markup-model.d.ts.map +1 -1
- package/dist/markup-model.js +12 -0
- package/dist/markup-model.js.map +1 -1
- package/dist/perf.d.ts +18 -0
- package/dist/perf.d.ts.map +1 -0
- package/dist/perf.js +32 -0
- package/dist/perf.js.map +1 -0
- package/dist/protocol.d.ts +103 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +21 -2
- package/dist/protocol.js.map +1 -1
- package/dist/providers/call-hierarchy.d.ts +9 -0
- package/dist/providers/call-hierarchy.d.ts.map +1 -0
- package/dist/providers/call-hierarchy.js +184 -0
- package/dist/providers/call-hierarchy.js.map +1 -0
- package/dist/providers/code-lens.d.ts +11 -0
- package/dist/providers/code-lens.d.ts.map +1 -0
- package/dist/providers/code-lens.js +70 -0
- package/dist/providers/code-lens.js.map +1 -0
- package/dist/providers/color.d.ts +11 -0
- package/dist/providers/color.d.ts.map +1 -0
- package/dist/providers/color.js +58 -0
- package/dist/providers/color.js.map +1 -0
- package/dist/providers/completion.d.ts +19 -1
- package/dist/providers/completion.d.ts.map +1 -1
- package/dist/providers/completion.js +136 -7
- package/dist/providers/completion.js.map +1 -1
- package/dist/providers/css-service.d.ts +35 -3
- package/dist/providers/css-service.d.ts.map +1 -1
- package/dist/providers/css-service.js +78 -6
- package/dist/providers/css-service.js.map +1 -1
- package/dist/providers/diagnostics.d.ts.map +1 -1
- package/dist/providers/diagnostics.js +35 -3
- package/dist/providers/diagnostics.js.map +1 -1
- package/dist/providers/document-links.d.ts +10 -0
- package/dist/providers/document-links.d.ts.map +1 -0
- package/dist/providers/document-links.js +94 -0
- package/dist/providers/document-links.js.map +1 -0
- package/dist/providers/hover.d.ts.map +1 -1
- package/dist/providers/hover.js +117 -6
- package/dist/providers/hover.js.map +1 -1
- package/dist/providers/html-service.d.ts.map +1 -1
- package/dist/providers/html-service.js +6 -2
- package/dist/providers/html-service.js.map +1 -1
- package/dist/providers/inlay-hints.js +1 -1
- package/dist/providers/inlay-hints.js.map +1 -1
- package/dist/providers/navigation.d.ts +7 -1
- package/dist/providers/navigation.d.ts.map +1 -1
- package/dist/providers/navigation.js +20 -0
- package/dist/providers/navigation.js.map +1 -1
- package/dist/providers/semantic-tokens.d.ts +6 -1
- package/dist/providers/semantic-tokens.d.ts.map +1 -1
- package/dist/providers/semantic-tokens.js +114 -11
- package/dist/providers/semantic-tokens.js.map +1 -1
- package/dist/providers/structure.d.ts +1 -1
- package/dist/providers/structure.d.ts.map +1 -1
- package/dist/providers/structure.js +4 -2
- package/dist/providers/structure.js.map +1 -1
- package/dist/providers/symbols.d.ts.map +1 -1
- package/dist/providers/symbols.js +32 -2
- package/dist/providers/symbols.js.map +1 -1
- package/dist/service.d.ts +44 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +94 -1
- package/dist/service.js.map +1 -1
- package/dist/ts-project.d.ts.map +1 -1
- package/dist/ts-project.js +25 -12
- package/dist/ts-project.js.map +1 -1
- package/dist/virtual-code.d.ts.map +1 -1
- package/dist/virtual-code.js +32 -9
- package/dist/virtual-code.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DocumentLink } from '../protocol.ts';
|
|
2
|
+
import { type RequestContext } from '../request.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Clickable links over the relative import specifiers in the document. Scans the
|
|
5
|
+
* source for `from '...'` / `import('...')` specifiers, resolves each relative
|
|
6
|
+
* one to a real file, and emits a link whose range is the specifier string.
|
|
7
|
+
* Bare and unresolvable specifiers are skipped. Never throws.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getDocumentLinks(ctx: RequestContext): DocumentLink[];
|
|
10
|
+
//# sourceMappingURL=document-links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-links.d.ts","sourceRoot":"","sources":["../../src/providers/document-links.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAepD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,YAAY,EAAE,CA4BpE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// Document links: make a relative import specifier in a `.azeroth` file
|
|
2
|
+
// clickable, so Ctrl/Cmd-clicking the path jumps to the imported file. Only
|
|
3
|
+
// relative specifiers (`./`, `../`, `/`) are linked - bare module specifiers
|
|
4
|
+
// (`@azerothjs/core`, `node:path`) have no single on-disk target worth a link,
|
|
5
|
+
// and are left to go-to-definition. Each candidate is resolved the way the
|
|
6
|
+
// project's module resolver resolves a relative import: the path as written,
|
|
7
|
+
// then with `.ts`, `.tsx`, and `.azeroth` appended (the `.azeroth` language
|
|
8
|
+
// replaces `.tsx`). The link's range covers the specifier text BETWEEN the
|
|
9
|
+
// quotes; the target is the resolved file's `file://` URI.
|
|
10
|
+
import ts from 'typescript';
|
|
11
|
+
import { pathToUri } from "../uri.js";
|
|
12
|
+
/** Extensions tried (in order) when a relative specifier has none of its own. */
|
|
13
|
+
const PROBE_EXTENSIONS = ['.ts', '.tsx', '.azeroth'];
|
|
14
|
+
/**
|
|
15
|
+
* Clickable links over the relative import specifiers in the document. Scans the
|
|
16
|
+
* source for `from '...'` / `import('...')` specifiers, resolves each relative
|
|
17
|
+
* one to a real file, and emits a link whose range is the specifier string.
|
|
18
|
+
* Bare and unresolvable specifiers are skipped. Never throws.
|
|
19
|
+
*/
|
|
20
|
+
export function getDocumentLinks(ctx) {
|
|
21
|
+
try {
|
|
22
|
+
const dir = ctx.azerothPath.replace(/\\/g, '/').replace(/\/[^/]*$/, '');
|
|
23
|
+
const out = [];
|
|
24
|
+
for (const spec of scanSpecifiers(ctx.source)) {
|
|
25
|
+
if (!isRelative(spec.text)) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const resolved = resolve(dir, spec.text);
|
|
29
|
+
if (resolved === null) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
out.push({
|
|
33
|
+
range: ctx.lineIndex.rangeAt(spec.start, spec.start + spec.text.length),
|
|
34
|
+
target: pathToUri(resolved)
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** True for a relative specifier (the only kind worth linking to a file). */
|
|
44
|
+
function isRelative(text) {
|
|
45
|
+
return text.startsWith('./') || text.startsWith('../') || text.startsWith('/');
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolves a relative specifier against `dir` to an existing file, trying the
|
|
49
|
+
* path as written first, then with each probe extension appended - mirroring the
|
|
50
|
+
* project's resolver (`.ts`/`.tsx`/`.azeroth`). Returns null when nothing exists.
|
|
51
|
+
*/
|
|
52
|
+
function resolve(dir, text) {
|
|
53
|
+
const base = ts.sys.resolvePath(`${dir}/${text}`).replace(/\\/g, '/');
|
|
54
|
+
if (ts.sys.fileExists(base)) {
|
|
55
|
+
return base;
|
|
56
|
+
}
|
|
57
|
+
for (const ext of PROBE_EXTENSIONS) {
|
|
58
|
+
const candidate = `${base}${ext}`;
|
|
59
|
+
if (ts.sys.fileExists(candidate)) {
|
|
60
|
+
return candidate;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Finds every static (`from '...'`) and dynamic (`import('...')`) module
|
|
67
|
+
* specifier in the source. The TS scanner tokenizes the whole file (markup
|
|
68
|
+
* regions are inert string/identifier tokens to it), so a string literal that
|
|
69
|
+
* directly follows a `from` keyword or an `import (` opener is a specifier; its
|
|
70
|
+
* span is the literal minus the surrounding quotes.
|
|
71
|
+
*/
|
|
72
|
+
function scanSpecifiers(source) {
|
|
73
|
+
// skipTrivia: true so `prev` is the previous SIGNIFICANT token (the `from`
|
|
74
|
+
// keyword / `(` opener sit immediately before the specifier, not whitespace).
|
|
75
|
+
const scanner = ts.createScanner(ts.ScriptTarget.Latest, true, ts.LanguageVariant.Standard, source);
|
|
76
|
+
const out = [];
|
|
77
|
+
let prev = ts.SyntaxKind.Unknown;
|
|
78
|
+
let prevPrev = ts.SyntaxKind.Unknown;
|
|
79
|
+
let token = scanner.scan();
|
|
80
|
+
while (token !== ts.SyntaxKind.EndOfFileToken) {
|
|
81
|
+
if (token === ts.SyntaxKind.StringLiteral
|
|
82
|
+
&& (prev === ts.SyntaxKind.FromKeyword
|
|
83
|
+
|| (prev === ts.SyntaxKind.OpenParenToken && prevPrev === ts.SyntaxKind.ImportKeyword))) {
|
|
84
|
+
const text = scanner.getTokenValue();
|
|
85
|
+
// tokenStart points at the opening quote; the value sits one in.
|
|
86
|
+
out.push({ text, start: scanner.getTokenStart() + 1 });
|
|
87
|
+
}
|
|
88
|
+
prevPrev = prev;
|
|
89
|
+
prev = token;
|
|
90
|
+
token = scanner.scan();
|
|
91
|
+
}
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=document-links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-links.js","sourceRoot":"","sources":["../../src/providers/document-links.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../../src/providers/hover.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../../src/providers/hover.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,KAAK,EAAS,MAAM,gBAAgB,CAAC;AAKnD,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9E,wDAAwD;AACxD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAiF1E"}
|
package/dist/providers/hover.js
CHANGED
|
@@ -34,9 +34,14 @@ export function getHover(ctx, offset) {
|
|
|
34
34
|
const name = fullTagName(ctx, offset);
|
|
35
35
|
const builtin = BUILTIN_COMPONENT_MAP.get(name);
|
|
36
36
|
if (builtin) {
|
|
37
|
-
return
|
|
37
|
+
return builtinHover(ctx, offset, builtin);
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
if (isComponentName(name)) {
|
|
40
|
+
// A user component: render its JSDoc + props table from the real
|
|
41
|
+
// TS types, falling back to plain quick-info when unresolvable.
|
|
42
|
+
return userComponentHover(ctx, offset, name) ?? tsHover(ctx, offset);
|
|
43
|
+
}
|
|
44
|
+
return htmlHover(ctx.source, position);
|
|
40
45
|
}
|
|
41
46
|
case 'attributeName':
|
|
42
47
|
{
|
|
@@ -50,14 +55,14 @@ export function getHover(ctx, offset) {
|
|
|
50
55
|
}
|
|
51
56
|
const prop = BUILTIN_COMPONENT_MAP.get(context.tag)?.props.find(candidate => candidate.name === attribute);
|
|
52
57
|
return prop
|
|
53
|
-
? { contents: `**${prop.name}**
|
|
58
|
+
? { contents: `**${prop.name}** - \`<${context.tag}>\` prop${prop.required ? ' (required)' : ''}\n\n${prop.doc}` }
|
|
54
59
|
: null;
|
|
55
60
|
}
|
|
56
61
|
// AzerothJS binds camelCase events; the HTML engine only knows the
|
|
57
62
|
// lowercase form, so look its MDN docs up explicitly.
|
|
58
63
|
if (/^on[A-Z]/.test(attribute)) {
|
|
59
64
|
const doc = eventDocumentation(attribute);
|
|
60
|
-
return { contents: `**${attribute}**
|
|
65
|
+
return { contents: `**${attribute}** - DOM event handler${doc ? `\n\n${doc}` : ''}` };
|
|
61
66
|
}
|
|
62
67
|
// The HTML engine first; fall back to our docs for the common
|
|
63
68
|
// element attributes the standard dataset leaves undocumented.
|
|
@@ -66,7 +71,7 @@ export function getHover(ctx, offset) {
|
|
|
66
71
|
return html;
|
|
67
72
|
}
|
|
68
73
|
const fallback = attributeDocumentation(attribute);
|
|
69
|
-
return fallback ? { contents: `**${attribute}**
|
|
74
|
+
return fallback ? { contents: `**${attribute}** - attribute\n\n${fallback}` } : null;
|
|
70
75
|
}
|
|
71
76
|
case 'attributeValue':
|
|
72
77
|
if (isComponentName(context.tag)) {
|
|
@@ -77,9 +82,115 @@ export function getHover(ctx, offset) {
|
|
|
77
82
|
: htmlHover(ctx.source, position);
|
|
78
83
|
}
|
|
79
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Rich hover for a built-in component tag, assembled from its language-data
|
|
87
|
+
* entry: a bold signature line, the doc paragraph, and a fenced `azeroth` usage
|
|
88
|
+
* example (the entry's `detail` already carries the canonical call shape). The
|
|
89
|
+
* range is mapped to the tag name so the editor highlights just the `<Show`.
|
|
90
|
+
*/
|
|
91
|
+
function builtinHover(ctx, offset, builtin) {
|
|
92
|
+
const contents = [
|
|
93
|
+
`**<${builtin.name}>** - built-in component`,
|
|
94
|
+
`\`${builtin.detail}\``,
|
|
95
|
+
builtin.doc,
|
|
96
|
+
'```azeroth\n' + builtin.detail + '\n```'
|
|
97
|
+
].join('\n\n');
|
|
98
|
+
return { contents, range: tagNameRange(ctx, offset) };
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Rich hover for a user component tag, assembled from its REAL TypeScript types:
|
|
102
|
+
* a bold `**<Name>**` line, the component's own JSDoc, and a Props table (name /
|
|
103
|
+
* type / optional) read off the first call-signature parameter - the same way
|
|
104
|
+
* docgen renders its reference. Null when the component or its type can't be
|
|
105
|
+
* resolved, so the caller can fall back to plain quick-info. The range is mapped
|
|
106
|
+
* to the tag name so the editor highlights just the `<Card`.
|
|
107
|
+
*/
|
|
108
|
+
function userComponentHover(ctx, offset, name) {
|
|
109
|
+
const element = enclosingElement(ctx.source, offset);
|
|
110
|
+
if (!element || !element.isComponent) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
const generatedTag = ctx.virtual.mapping.toGenerated(element.start + 1);
|
|
114
|
+
if (generatedTag === null) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
const program = ctx.project.service.getProgram();
|
|
118
|
+
const sourceFile = program?.getSourceFile(ctx.virtualFile);
|
|
119
|
+
if (!program || !sourceFile) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
const checker = program.getTypeChecker();
|
|
123
|
+
const token = tokenAt(sourceFile, generatedTag);
|
|
124
|
+
if (!token) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
const type = checker.getTypeAtLocation(token);
|
|
128
|
+
const signature = type.getCallSignatures()[0];
|
|
129
|
+
if (!signature) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
const contents = [`**<${name}>** - component`];
|
|
133
|
+
const symbol = checker.getSymbolAtLocation(token);
|
|
134
|
+
const doc = symbol ? ts.displayPartsToString(symbol.getDocumentationComment(checker)) : '';
|
|
135
|
+
if (doc) {
|
|
136
|
+
contents.push(doc);
|
|
137
|
+
}
|
|
138
|
+
contents.push(propsTable(checker, signature, token));
|
|
139
|
+
return { contents: contents.join('\n\n'), range: tagNameRange(ctx, offset) };
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Markdown Props table for a component's call signature: one row per apparent
|
|
143
|
+
* property of its first parameter (the props object), each with the checker's
|
|
144
|
+
* `typeToString` and an optional marker. The `children` prop is dropped (it's
|
|
145
|
+
* supplied by nesting, not as an attribute). Returns 'No props.' when the
|
|
146
|
+
* component takes none.
|
|
147
|
+
*/
|
|
148
|
+
function propsTable(checker, signature, location) {
|
|
149
|
+
const parameter = signature.getParameters()[0];
|
|
150
|
+
const propsType = parameter ? checker.getTypeOfSymbolAtLocation(parameter, location) : null;
|
|
151
|
+
const members = propsType
|
|
152
|
+
? checker.getApparentType(propsType).getProperties().filter(member => member.getName() !== 'children')
|
|
153
|
+
: [];
|
|
154
|
+
if (members.length === 0) {
|
|
155
|
+
return 'No props.';
|
|
156
|
+
}
|
|
157
|
+
const rows = ['| Prop | Type | Optional |', '| --- | --- | --- |'];
|
|
158
|
+
for (const member of members) {
|
|
159
|
+
const memberType = checker.getTypeOfSymbolAtLocation(member, location);
|
|
160
|
+
const optional = (member.getFlags() & ts.SymbolFlags.Optional) !== 0;
|
|
161
|
+
rows.push(`| ${member.getName()} | \`${cell(checker.typeToString(memberType))}\` | ${optional ? 'Yes' : 'No'} |`);
|
|
162
|
+
}
|
|
163
|
+
return rows.join('\n');
|
|
164
|
+
}
|
|
165
|
+
/** The TS node whose span contains `pos` (deepest), for a checker query. */
|
|
166
|
+
function tokenAt(sourceFile, pos) {
|
|
167
|
+
const find = (node) => {
|
|
168
|
+
if (pos < node.getStart(sourceFile) || pos >= node.getEnd()) {
|
|
169
|
+
return undefined;
|
|
170
|
+
}
|
|
171
|
+
return ts.forEachChild(node, find) ?? node;
|
|
172
|
+
};
|
|
173
|
+
return find(sourceFile);
|
|
174
|
+
}
|
|
175
|
+
/** Escapes a value for a one-line markdown table cell. */
|
|
176
|
+
function cell(value) {
|
|
177
|
+
return value.replace(/\|/g, '\\|').replace(/\r?\n/g, ' ').trim();
|
|
178
|
+
}
|
|
179
|
+
/** Source range of the tag name under the caret (the `Show` in `<Show ...>`). */
|
|
180
|
+
function tagNameRange(ctx, offset) {
|
|
181
|
+
let start = offset;
|
|
182
|
+
while (start > 0 && /[A-Za-z0-9_$.-]/.test(ctx.source[start - 1]) && ctx.source[start - 1] !== '<') {
|
|
183
|
+
start--;
|
|
184
|
+
}
|
|
185
|
+
let end = offset;
|
|
186
|
+
while (end < ctx.source.length && /[A-Za-z0-9_$.-]/.test(ctx.source[end])) {
|
|
187
|
+
end++;
|
|
188
|
+
}
|
|
189
|
+
return ctx.lineIndex.rangeAt(start, end);
|
|
190
|
+
}
|
|
80
191
|
/**
|
|
81
192
|
* Hover for a component prop, read from the component's props type (the same
|
|
82
|
-
* generated `Tag({
|
|
193
|
+
* generated `Tag({ ... })` object literal completion uses). Null when the type
|
|
83
194
|
* can't be resolved.
|
|
84
195
|
*/
|
|
85
196
|
function typedPropHover(ctx, offset, prop) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover.js","sourceRoot":"","sources":["../../src/providers/hover.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hover.js","sourceRoot":"","sources":["../../src/providers/hover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-service.d.ts","sourceRoot":"","sources":["../../src/providers/html-service.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,QAAQ,EAEhB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"html-service.d.ts","sourceRoot":"","sources":["../../src/providers/html-service.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,QAAQ,EAEhB,MAAM,gBAAgB,CAAC;AAyBxB,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,cAAc,EAAE,CAKpF;AAED,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAY1E;AA8BD,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIxE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Thin wrapper over `vscode-html-languageservice` - the same HTML engine VS
|
|
2
2
|
// Code ships - applied to the embedded HTML view of a `.azeroth` file
|
|
3
3
|
// (html-source.ts). It answers host-element completion (tags, attributes, and
|
|
4
|
-
// crucially attribute *values* like `<input type="
|
|
4
|
+
// crucially attribute *values* like `<input type="...">`) and MDN-backed hover.
|
|
5
5
|
//
|
|
6
6
|
// Offsets are shared with the original source (the embedded view is space-for-
|
|
7
7
|
// space the same length), so positions and result ranges need no translation.
|
|
@@ -16,6 +16,10 @@ let service = null;
|
|
|
16
16
|
const html = () => (service ??= getLanguageService());
|
|
17
17
|
/** Cache the parsed embedded document so completion + hover on the same edit reuse it. */
|
|
18
18
|
let cache = null;
|
|
19
|
+
/**
|
|
20
|
+
* The parsed HTML view of `source` that the html-languageservice works against,
|
|
21
|
+
* served from {@link cache} when the source is unchanged since the last call.
|
|
22
|
+
*/
|
|
19
23
|
function embeddedDocument(source) {
|
|
20
24
|
if (cache && cache.source === source) {
|
|
21
25
|
return cache;
|
|
@@ -57,7 +61,7 @@ function buildEventDocs() {
|
|
|
57
61
|
continue;
|
|
58
62
|
}
|
|
59
63
|
const description = markupToString(attr.description);
|
|
60
|
-
const references = (attr.references ?? []).map(reference => `[${reference.name}](${reference.url})`).join('
|
|
64
|
+
const references = (attr.references ?? []).map(reference => `[${reference.name}](${reference.url})`).join(' | ');
|
|
61
65
|
const markdown = [description, references].filter(Boolean).join('\n\n');
|
|
62
66
|
if (markdown) {
|
|
63
67
|
map.set(attr.name.toLowerCase(), markdown);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-service.js","sourceRoot":"","sources":["../../src/providers/html-service.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,sEAAsE;AACtE,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"html-service.js","sourceRoot":"","sources":["../../src/providers/html-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Inlay hints - the inline parameter-name and inferred-type annotations TS
|
|
2
|
-
// shows (`createSignal(initialValue: 0)`, `const x: number =
|
|
2
|
+
// shows (`createSignal(initialValue: 0)`, `const x: number = ...`). A direct
|
|
3
3
|
// TypeScript query over the virtual module, with each hint's position mapped
|
|
4
4
|
// back to the original source and filtered to the requested range. Hints that
|
|
5
5
|
// land in generated scaffolding (which has no original position) are dropped.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inlay-hints.js","sourceRoot":"","sources":["../../src/providers/inlay-hints.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"inlay-hints.js","sourceRoot":"","sources":["../../src/providers/inlay-hints.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,8EAA8E;AAE9E,OAAO,EAAE,MAAM,YAAY,CAAC;AA0B5B,gFAAgF;AAChF,SAAS,gBAAgB,CAAC,OAAyB;IAE/C,OAAO;QACH,8BAA8B,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;QAC/D,qDAAqD,EAAE,KAAK;QAC5D,sCAAsC,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;QACtE,6BAA6B,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5D,gDAAgD,EAAE,KAAK;QACvD,wCAAwC,EAAE,OAAO,CAAC,wBAAwB,IAAI,IAAI;QAClF,uCAAuC,EAAE,OAAO,CAAC,uBAAuB,IAAI,IAAI;QAChF,gCAAgC,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;KACrE,CAAC;AACN,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,GAAmB,EAAE,KAAY,EAAE,UAA4B,EAAE;IAE3F,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAC7B,CAAC;QACG,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEnD,IAAI,KAAqB,CAAC;IAC1B,IACA,CAAC;QACG,yEAAyE;QACzE,uEAAuE;QACvE,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CACzC,GAAG,CAAC,WAAW,EACf,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAC7C,gBAAgB,CAAC,OAAO,CAAC,CAC5B,CAAC;IACN,CAAC;IACD,MACA,CAAC;QACG,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EACxB,CAAC;QACG,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,GAAG,UAAU,IAAI,QAAQ,GAAG,QAAQ,EACrE,CAAC;YACG,SAAS;QACb,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACL,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC5C,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACxG,WAAW,EAAE,IAAI,CAAC,gBAAgB;YAClC,YAAY,EAAE,IAAI,CAAC,eAAe;SACrC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import type { DocumentHighlight, Location, WorkspaceEdit } from '../protocol.ts';
|
|
1
|
+
import type { DocumentHighlight, Location, PrepareRenameResult, WorkspaceEdit } from '../protocol.ts';
|
|
2
2
|
import { type RequestContext } from '../request.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Validates the rename target at `offset`, returning the identifier range and
|
|
5
|
+
* its current name so the editor can pre-fill the rename box, or null when the
|
|
6
|
+
* position can't be renamed (e.g. whitespace, a keyword, a string literal).
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPrepareRename(ctx: RequestContext, offset: number): PrepareRenameResult | null;
|
|
3
9
|
/** Definition location(s) for the symbol at `offset`. */
|
|
4
10
|
export declare function getDefinition(ctx: RequestContext, offset: number): Location[];
|
|
5
11
|
/** Type-definition location(s) for the symbol at `offset`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/providers/navigation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/providers/navigation.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAIH,KAAK,cAAc,EACtB,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAkBhG;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAe7E;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAWjF;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAW7E;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAyB9F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAoCzG"}
|
|
@@ -6,6 +6,26 @@
|
|
|
6
6
|
// works exactly as it does in a `.ts` file.
|
|
7
7
|
import ts from 'typescript';
|
|
8
8
|
import { resolveLocation, spanToRange, toGenerated } from "../request.js";
|
|
9
|
+
/**
|
|
10
|
+
* Validates the rename target at `offset`, returning the identifier range and
|
|
11
|
+
* its current name so the editor can pre-fill the rename box, or null when the
|
|
12
|
+
* position can't be renamed (e.g. whitespace, a keyword, a string literal).
|
|
13
|
+
*/
|
|
14
|
+
export function getPrepareRename(ctx, offset) {
|
|
15
|
+
const generated = toGenerated(ctx, offset);
|
|
16
|
+
if (generated === null) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const info = ctx.project.service.getRenameInfo(ctx.virtualFile, generated, { allowRenameOfImportPath: false });
|
|
20
|
+
if (!info.canRename) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const range = spanToRange(ctx, info.triggerSpan);
|
|
24
|
+
if (range === null) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return { range, placeholder: info.displayName };
|
|
28
|
+
}
|
|
9
29
|
/** Definition location(s) for the symbol at `offset`. */
|
|
10
30
|
export function getDefinition(ctx, offset) {
|
|
11
31
|
const generated = toGenerated(ctx, offset);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/providers/navigation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/providers/navigation.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,iFAAiF;AACjF,4CAA4C;AAE5C,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EACH,eAAe,EACf,WAAW,EACX,WAAW,EAEd,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAmB,EAAE,MAAc;IAEhE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EACtB,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/G,IAAI,CAAC,IAAI,CAAC,SAAS,EACnB,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,KAAK,KAAK,IAAI,EAClB,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACpD,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,aAAa,CAAC,GAAmB,EAAE,MAAc;IAE7D,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EACtB,CAAC;QACG,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzF,IAAI,CAAC,MAAM,EAAE,WAAW,EACxB,CAAC;QACG,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW;SAC3B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;SACpE,MAAM,CAAC,CAAC,GAAG,EAAmB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAAC,GAAmB,EAAE,MAAc;IAEjE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EACtB,CAAC;QACG,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/F,OAAO,MAAM,CAAC,IAAI;SACb,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;SACpE,MAAM,CAAC,CAAC,GAAG,EAAmB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,aAAa,CAAC,GAAmB,EAAE,MAAc;IAE7D,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EACtB,CAAC;QACG,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IAC3F,OAAO,MAAM,CAAC,IAAI;SACb,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;SACpE,MAAM,CAAC,CAAC,GAAG,EAAmB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,GAAmB,EAAE,MAAc;IAErE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EACtB,CAAC;QACG,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5G,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,cAAc,IAAI,UAAU,IAAI,EAAE,EAC7C,CAAC;QACG,IAAI,cAAc,CAAC,QAAQ,KAAK,GAAG,CAAC,WAAW,EAC/C,CAAC;YACG,SAAS;QACb,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,cAAc,EAChD,CAAC;YACG,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,KAAK,KAAK,IAAI,EAClB,CAAC;gBACG,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAmB,EAAE,MAAc,EAAE,OAAe;IAE/E,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,IAAI,EACtB,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CACrD,GAAG,CAAC,WAAW,EACf,SAAS,EACT,KAAK,EACL,KAAK,EACL,EAAE,CACL,CAAC;IACF,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EACxC,CAAC;QACG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAoE,EAAE,CAAC;IACpF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAChC,CAAC;QACG,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAI,QAAQ,KAAK,IAAI,EACrB,CAAC;YACG,SAAS;QACb,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QACzC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;YAChC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,GAAI,MAAO,GAAI,OAAQ,GAAI,MAAO,EAAE;SAChD,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,sDAAsD;AACtD,SAAS,MAAM,CAAC,SAAqB;IAEjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,SAAS,EAC3B,CAAC;QACG,MAAM,GAAG,GAAG,GAAI,GAAG,CAAC,GAAI,IAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAK,IAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAU,IAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAK,IAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAU,EAAE,CAAC;QACzI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAClB,CAAC;YACG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { type SemanticTokens } from '../protocol.ts';
|
|
2
2
|
import type { RequestContext } from '../request.ts';
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Packed semantic tokens for the document: the markup tokens merged with the
|
|
5
|
+
* TypeScript classifications of the embedded script/expression regions. Markup
|
|
6
|
+
* tokens win where they overlap, so the TS pass only colours code outside the
|
|
7
|
+
* tag/attribute spans the markup layer already owns.
|
|
8
|
+
*/
|
|
4
9
|
export declare function getSemanticTokens(ctx: RequestContext): SemanticTokens;
|
|
5
10
|
//# sourceMappingURL=semantic-tokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-tokens.d.ts","sourceRoot":"","sources":["../../src/providers/semantic-tokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"semantic-tokens.d.ts","sourceRoot":"","sources":["../../src/providers/semantic-tokens.ts"],"names":[],"mappings":"AAWA,OAAO,EAGH,KAAK,cAAc,EAGtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAwDpD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,cAAc,CAerE"}
|