@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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type CompletionItem } from '../protocol.ts';
|
|
2
|
+
import { type PositionContext } from '../markup-model.ts';
|
|
2
3
|
import { type RequestContext } from '../request.ts';
|
|
3
4
|
/** Payload attached to TS-sourced items so `resolveCompletion` can fill detail. */
|
|
4
5
|
export interface CompletionData {
|
|
@@ -12,9 +13,26 @@ export interface CompletionData {
|
|
|
12
13
|
export interface CompletionOptions {
|
|
13
14
|
/** Suggest not-yet-imported symbols (and add the import on accept). */
|
|
14
15
|
autoImports?: boolean;
|
|
15
|
-
/** Expand built-in components to snippet bodies (`<For
|
|
16
|
+
/** Expand built-in components to snippet bodies (`<For ...>{...}</For>`). */
|
|
16
17
|
componentSnippets?: boolean;
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* An external contributor of completion items (an AI backend, a custom snippet
|
|
21
|
+
* engine, ...). Registered sources run after the native items for the caret's
|
|
22
|
+
* branch; the classified `context`, full `source`, and `offset` let a source
|
|
23
|
+
* tailor its suggestions to where the caret is.
|
|
24
|
+
*/
|
|
25
|
+
export interface CompletionSource {
|
|
26
|
+
provide(args: {
|
|
27
|
+
source: string;
|
|
28
|
+
offset: number;
|
|
29
|
+
context: PositionContext;
|
|
30
|
+
}): CompletionItem[];
|
|
31
|
+
}
|
|
32
|
+
/** Registers an external completion source. Returns a fn that unregisters it. */
|
|
33
|
+
export declare function registerCompletionSource(source: CompletionSource): () => void;
|
|
34
|
+
/** Drops all registered completion sources (test isolation; explicit teardown). */
|
|
35
|
+
export declare function clearCompletionSources(): void;
|
|
18
36
|
/** Produces completion items for the caret at `offset`. */
|
|
19
37
|
export declare function getCompletions(ctx: RequestContext, offset: number, options?: CompletionOptions): CompletionItem[];
|
|
20
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/providers/completion.ts"],"names":[],"mappings":"AAaA,OAAO,EAEH,KAAK,cAAc,EAEtB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/providers/completion.ts"],"names":[],"mappings":"AAaA,OAAO,EAEH,KAAK,cAAc,EAEtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAsC,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAS9F,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAQjE,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAE3B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAE9B,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAE7B,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,GAAG,cAAc,EAAE,CAAC;CACjG;AAMD,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAO7E;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,cAAc,EAAE,CAKrH;AAggBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,cAAc,CA8B3F"}
|
|
@@ -16,9 +16,33 @@ import { BUILTIN_COMPONENTS, BUILTIN_COMPONENT_MAP, DOM_EVENTS, attributeDocumen
|
|
|
16
16
|
import { htmlCompletions, eventDocumentation } from "./html-service.js";
|
|
17
17
|
import { cssCompletions, cssTemplateCompletions, inCssTemplate } from "./css-service.js";
|
|
18
18
|
import { toGenerated } from "../request.js";
|
|
19
|
+
// Commit characters that improve the common edit: typing `=` or a space after a
|
|
20
|
+
// prop name accepts the highlighted prop (then continues into `={...}` or the next
|
|
21
|
+
// attribute); a space/`>`/`/` after a tag name accepts the tag and opens the body.
|
|
22
|
+
const PROP_COMMIT_CHARACTERS = ['=', ' '];
|
|
23
|
+
const TAG_COMMIT_CHARACTERS = [' ', '>', '/'];
|
|
24
|
+
// Module-level registry. Empty by default, so registering nothing leaves native
|
|
25
|
+
// completion behaviour untouched.
|
|
26
|
+
const completionSources = new Set();
|
|
27
|
+
/** Registers an external completion source. Returns a fn that unregisters it. */
|
|
28
|
+
export function registerCompletionSource(source) {
|
|
29
|
+
completionSources.add(source);
|
|
30
|
+
return () => {
|
|
31
|
+
completionSources.delete(source);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Drops all registered completion sources (test isolation; explicit teardown). */
|
|
35
|
+
export function clearCompletionSources() {
|
|
36
|
+
completionSources.clear();
|
|
37
|
+
}
|
|
19
38
|
/** Produces completion items for the caret at `offset`. */
|
|
20
39
|
export function getCompletions(ctx, offset, options = {}) {
|
|
21
40
|
const context = classifyPosition(ctx.source, offset);
|
|
41
|
+
const items = builtinCompletions(ctx, offset, options, context);
|
|
42
|
+
return withExternalSources(items, ctx.source, offset, context);
|
|
43
|
+
}
|
|
44
|
+
/** Native completion items for the caret's branch, before external sources. */
|
|
45
|
+
function builtinCompletions(ctx, offset, options, context) {
|
|
22
46
|
const position = ctx.lineIndex.positionAt(offset);
|
|
23
47
|
switch (context.kind) {
|
|
24
48
|
case 'tagName':
|
|
@@ -39,8 +63,8 @@ export function getCompletions(ctx, offset, options = {}) {
|
|
|
39
63
|
if (isComponentTag(context.tag)) {
|
|
40
64
|
return [];
|
|
41
65
|
}
|
|
42
|
-
// `style="
|
|
43
|
-
// (`type="text|email
|
|
66
|
+
// `style="..."` is CSS; everything else gets HTML value enums
|
|
67
|
+
// (`type="text|email|..."`, booleans, ...) from the HTML engine.
|
|
44
68
|
return context.attribute === 'style'
|
|
45
69
|
? cssCompletions(ctx.source, offset)
|
|
46
70
|
: htmlCompletions(ctx.source, position);
|
|
@@ -65,6 +89,22 @@ export function getCompletions(ctx, offset, options = {}) {
|
|
|
65
89
|
}
|
|
66
90
|
}
|
|
67
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Appends items from every registered external source. Each call is isolated:
|
|
94
|
+
* a source that throws (or is otherwise misbehaving) must never break native
|
|
95
|
+
* completion, so its failure is swallowed and the native items still return.
|
|
96
|
+
*/
|
|
97
|
+
function withExternalSources(items, source, offset, context) {
|
|
98
|
+
for (const provider of completionSources) {
|
|
99
|
+
try {
|
|
100
|
+
items.push(...provider.provide({ source, offset, context }));
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// A broken source is ignored, not propagated.
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return items;
|
|
107
|
+
}
|
|
68
108
|
/** True for a component tag (PascalCase, dotted, or a known built-in). */
|
|
69
109
|
function isComponentTag(tag) {
|
|
70
110
|
return /^[A-Z]/.test(tag) || tag.includes('.') || BUILTIN_COMPONENT_MAP.has(tag);
|
|
@@ -86,7 +126,8 @@ function tagCompletions(ctx, offset, options) {
|
|
|
86
126
|
documentation: component.doc,
|
|
87
127
|
insertText: snippet ?? component.name,
|
|
88
128
|
insertTextFormat: snippet ? 2 : 1,
|
|
89
|
-
sortText: `0_${component.name}
|
|
129
|
+
sortText: `0_${component.name}`,
|
|
130
|
+
commitCharacters: [...TAG_COMMIT_CHARACTERS]
|
|
90
131
|
});
|
|
91
132
|
}
|
|
92
133
|
// In-scope PascalCase value identifiers are likely user components; entries
|
|
@@ -102,13 +143,15 @@ function tagCompletions(ctx, offset, options) {
|
|
|
102
143
|
items.push({
|
|
103
144
|
label: entry.name,
|
|
104
145
|
kind: CompletionItemKind.Class,
|
|
105
|
-
detail: autoImport ? `component
|
|
146
|
+
detail: autoImport ? `component - import from ${entry.source ?? 'module'}` : 'component',
|
|
106
147
|
sortText: `${autoImport ? '2' : '1'}_${entry.name}`,
|
|
148
|
+
commitCharacters: [...TAG_COMMIT_CHARACTERS],
|
|
107
149
|
data: completionData(ctx, generatedOffset, entry)
|
|
108
150
|
});
|
|
109
151
|
}
|
|
110
152
|
}
|
|
111
153
|
}
|
|
154
|
+
preselectExactPrefix(items, identifierPrefix(ctx.source, offset));
|
|
112
155
|
return items;
|
|
113
156
|
}
|
|
114
157
|
/**
|
|
@@ -173,16 +216,41 @@ function componentAttributeCompletions(ctx, offset, tag) {
|
|
|
173
216
|
documentation: prop.doc,
|
|
174
217
|
insertText: `${prop.name}={$0}`,
|
|
175
218
|
insertTextFormat: 2,
|
|
176
|
-
sortText: `0_${prop.name}
|
|
219
|
+
sortText: `0_${prop.name}`,
|
|
220
|
+
commitCharacters: [...PROP_COMMIT_CHARACTERS]
|
|
177
221
|
});
|
|
178
222
|
}
|
|
179
223
|
}
|
|
224
|
+
preselectExactPrefix(items, identifierPrefix(ctx.source, offset));
|
|
180
225
|
items.push(...eventCompletions());
|
|
181
226
|
return items;
|
|
182
227
|
}
|
|
228
|
+
/** The bare identifier the caret sits at the end of (`tit|` -> `tit`), or `''`. */
|
|
229
|
+
function identifierPrefix(source, offset) {
|
|
230
|
+
let start = offset;
|
|
231
|
+
while (start > 0 && /[A-Za-z0-9_-]/.test(source[start - 1])) {
|
|
232
|
+
start--;
|
|
233
|
+
}
|
|
234
|
+
return source.slice(start, offset);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Marks the one clear winner for pre-selection: when the typed prefix matches a
|
|
238
|
+
* single item's label exactly (case-insensitively), the editor highlights it so
|
|
239
|
+
* Enter commits it. Ambiguous prefixes leave the default highlight alone.
|
|
240
|
+
*/
|
|
241
|
+
function preselectExactPrefix(items, prefix) {
|
|
242
|
+
if (prefix === '') {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
const lower = prefix.toLowerCase();
|
|
246
|
+
const matches = items.filter(item => item.label.toLowerCase().startsWith(lower));
|
|
247
|
+
if (matches.length === 1) {
|
|
248
|
+
matches[0].preselect = true;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
183
251
|
/**
|
|
184
252
|
* Props of the component whose opening tag holds the caret, read from its props
|
|
185
|
-
* type. Works by querying TypeScript inside the generated `Tag({
|
|
253
|
+
* type. Works by querying TypeScript inside the generated `Tag({ ... })` call's
|
|
186
254
|
* object literal, where the expected properties are exactly the props.
|
|
187
255
|
*/
|
|
188
256
|
function typedPropCompletions(ctx, offset) {
|
|
@@ -194,12 +262,29 @@ function typedPropCompletions(ctx, offset) {
|
|
|
194
262
|
if (generatedTag === null) {
|
|
195
263
|
return [];
|
|
196
264
|
}
|
|
265
|
+
// An attribute-less component compiles to a bare `Comp()` (no props object
|
|
266
|
+
// to complete inside), so read the prop names off the component's call
|
|
267
|
+
// signature instead. With any attribute present the call carries a `({ ... })`
|
|
268
|
+
// and we query TypeScript inside it as before (which also yields per-entry
|
|
269
|
+
// documentation on resolve).
|
|
270
|
+
const open = ctx.virtual.code.indexOf('(', generatedTag + element.tag.length);
|
|
271
|
+
const isEmptyCall = open !== -1 && ctx.virtual.code.slice(open + 1).trimStart().startsWith(')');
|
|
272
|
+
if (isEmptyCall) {
|
|
273
|
+
return propsFromComponentSignature(ctx, generatedTag);
|
|
274
|
+
}
|
|
197
275
|
const brace = ctx.virtual.code.indexOf('{', generatedTag + element.tag.length);
|
|
198
276
|
if (brace === -1) {
|
|
199
277
|
return [];
|
|
200
278
|
}
|
|
279
|
+
// Props may be plain fields or getter/setter-backed accessors; accept all
|
|
280
|
+
// three member kinds so accessor props are not silently dropped.
|
|
281
|
+
const propKinds = [
|
|
282
|
+
ts.ScriptElementKind.memberVariableElement,
|
|
283
|
+
ts.ScriptElementKind.memberGetAccessorElement,
|
|
284
|
+
ts.ScriptElementKind.memberSetAccessorElement
|
|
285
|
+
];
|
|
201
286
|
return rawTsEntries(ctx, brace + 1)
|
|
202
|
-
.filter(entry => entry.kind
|
|
287
|
+
.filter(entry => propKinds.includes(entry.kind) && entry.name !== 'children')
|
|
203
288
|
.map(entry => ({
|
|
204
289
|
label: entry.name,
|
|
205
290
|
kind: CompletionItemKind.Property,
|
|
@@ -207,9 +292,53 @@ function typedPropCompletions(ctx, offset) {
|
|
|
207
292
|
insertText: `${entry.name}={$0}`,
|
|
208
293
|
insertTextFormat: 2,
|
|
209
294
|
sortText: `0_${entry.name}`,
|
|
295
|
+
commitCharacters: [...PROP_COMMIT_CHARACTERS],
|
|
210
296
|
data: completionData(ctx, brace + 1, entry)
|
|
211
297
|
}));
|
|
212
298
|
}
|
|
299
|
+
/** The TS node whose span contains `pos` (deepest), for a checker query. */
|
|
300
|
+
function tokenAt(sourceFile, pos) {
|
|
301
|
+
const find = (node) => {
|
|
302
|
+
if (pos < node.getStart(sourceFile) || pos >= node.getEnd()) {
|
|
303
|
+
return undefined;
|
|
304
|
+
}
|
|
305
|
+
return ts.forEachChild(node, find) ?? node;
|
|
306
|
+
};
|
|
307
|
+
return find(sourceFile);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Prop completions for an attribute-less `<Comp/>`: the generated `Comp()` has
|
|
311
|
+
* no props object, so derive the names from the component's first call-signature
|
|
312
|
+
* parameter type (its props) directly off the checker.
|
|
313
|
+
*/
|
|
314
|
+
function propsFromComponentSignature(ctx, identifierOffset) {
|
|
315
|
+
const program = ctx.project.service.getProgram();
|
|
316
|
+
const sourceFile = program?.getSourceFile(ctx.virtualFile);
|
|
317
|
+
if (!program || !sourceFile) {
|
|
318
|
+
return [];
|
|
319
|
+
}
|
|
320
|
+
const checker = program.getTypeChecker();
|
|
321
|
+
const token = tokenAt(sourceFile, identifierOffset);
|
|
322
|
+
if (!token) {
|
|
323
|
+
return [];
|
|
324
|
+
}
|
|
325
|
+
const signature = checker.getTypeAtLocation(token).getCallSignatures()[0];
|
|
326
|
+
const propsParam = signature?.getParameters()[0];
|
|
327
|
+
if (!propsParam) {
|
|
328
|
+
return [];
|
|
329
|
+
}
|
|
330
|
+
return checker.getTypeOfSymbolAtLocation(propsParam, token).getProperties()
|
|
331
|
+
.filter(prop => prop.name !== 'children')
|
|
332
|
+
.map(prop => ({
|
|
333
|
+
label: prop.name,
|
|
334
|
+
kind: CompletionItemKind.Property,
|
|
335
|
+
detail: 'prop',
|
|
336
|
+
insertText: `${prop.name}={$0}`,
|
|
337
|
+
insertTextFormat: 2,
|
|
338
|
+
sortText: `0_${prop.name}`,
|
|
339
|
+
commitCharacters: [...PROP_COMMIT_CHARACTERS]
|
|
340
|
+
}));
|
|
341
|
+
}
|
|
213
342
|
/** DOM event handler attributes (`on*`). */
|
|
214
343
|
function eventCompletions() {
|
|
215
344
|
return DOM_EVENTS.map(name => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/providers/completion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/providers/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type CompletionItem, type Hover } from '../protocol.ts';
|
|
1
|
+
import { type Color, type ColorInformation, type ColorPresentation, type CompletionItem, type Hover, type Range } from '../protocol.ts';
|
|
2
2
|
import { LineIndex } from '../text.ts';
|
|
3
|
-
/** CSS property/value completion inside an inline `style="
|
|
3
|
+
/** CSS property/value completion inside an inline `style="..."`. */
|
|
4
4
|
export declare function cssCompletions(source: string, offset: number): CompletionItem[];
|
|
5
5
|
/** Whether the caret sits inside a css`` template. */
|
|
6
6
|
export declare function inCssTemplate(source: string, offset: number): boolean;
|
|
@@ -8,6 +8,38 @@ export declare function inCssTemplate(source: string, offset: number): boolean;
|
|
|
8
8
|
export declare function cssTemplateCompletions(source: string, offset: number): CompletionItem[];
|
|
9
9
|
/** CSS hover inside a css`` template. */
|
|
10
10
|
export declare function cssTemplateHover(source: string, offset: number, lineIndex: LineIndex): Hover | null;
|
|
11
|
-
/** CSS hover (property/value docs) inside an inline `style="
|
|
11
|
+
/** CSS hover (property/value docs) inside an inline `style="..."`. */
|
|
12
12
|
export declare function cssHover(source: string, offset: number, lineIndex: LineIndex): Hover | null;
|
|
13
|
+
/** A style/css region: its content and where that content begins in the source. */
|
|
14
|
+
interface CssRegion {
|
|
15
|
+
/** The CSS text fed to the language service. */
|
|
16
|
+
content: string;
|
|
17
|
+
/** Original-source offset of the content's first character. */
|
|
18
|
+
contentStart: number;
|
|
19
|
+
/** The synthetic prefix prepended to make `content` parse (`''` for templates). */
|
|
20
|
+
prefix: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Color swatches across the given style/css regions. Runs findDocumentColors
|
|
24
|
+
* over each region's wrapped document and maps every color's range back to the
|
|
25
|
+
* original source. Never throws; a region that fails to parse contributes none.
|
|
26
|
+
*/
|
|
27
|
+
export declare function cssColors(_source: string, regions: CssRegion[], lineIndex: LineIndex): ColorInformation[];
|
|
28
|
+
/**
|
|
29
|
+
* The presentation choices (e.g. `#ff0000`, `rgb(255, 0, 0)`, `hsl(...)`) for a
|
|
30
|
+
* picked `color` at `range`. Delegates to getColorPresentations over a throwaway
|
|
31
|
+
* document whose text is just the color literal, since the presentations are the
|
|
32
|
+
* spellings of the color itself and don't depend on the surrounding stylesheet.
|
|
33
|
+
*/
|
|
34
|
+
export declare function cssColorPresentations(color: Color, range: Range): ColorPresentation[];
|
|
35
|
+
/** Builds a declaration-list region from a static `style="..."` value's span. */
|
|
36
|
+
export declare function styleRegion(source: string, valueStart: number, valueEnd: number): CssRegion;
|
|
37
|
+
/** Builds a stylesheet region from a css`` template's content span. */
|
|
38
|
+
export declare function templateRegion(source: string, contentStart: number, contentEnd: number): CssRegion;
|
|
39
|
+
/** The content spans of every css`` template in the source (start/end offsets). */
|
|
40
|
+
export declare function cssTemplateSpans(source: string): {
|
|
41
|
+
start: number;
|
|
42
|
+
end: number;
|
|
43
|
+
}[];
|
|
44
|
+
export type { CssRegion };
|
|
13
45
|
//# sourceMappingURL=css-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-service.d.ts","sourceRoot":"","sources":["../../src/providers/css-service.ts"],"names":[],"mappings":"AASA,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"css-service.d.ts","sourceRoot":"","sources":["../../src/providers/css-service.ts"],"names":[],"mappings":"AASA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,KAAK,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyDvC,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAU/E;AAqCD,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGrE;AAeD,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAUvF;AAED,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CA4BnG;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CA4B3F;AAQD,mFAAmF;AACnF,UAAU,SAAS;IAEf,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAClB;AAuBD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,EAAE,CAazG;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,iBAAiB,EAAE,CAWrF;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAG3F;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAGlG;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAqBjF;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// CSS intelligence for inline `style="
|
|
1
|
+
// CSS intelligence for inline `style="..."` values, via `vscode-css-languageservice`
|
|
2
2
|
// (the engine behind VS Code's CSS support). An inline style is a declaration
|
|
3
|
-
// list, not a full stylesheet, so we wrap it in a synthetic rule `*{
|
|
3
|
+
// list, not a full stylesheet, so we wrap it in a synthetic rule `*{ ... }` and
|
|
4
4
|
// shift positions by the 2-character prefix - the same trick VS Code uses for
|
|
5
|
-
// embedded styles. Only static `style="
|
|
5
|
+
// embedded styles. Only static `style="..."` values reach here; `style={...}` is a
|
|
6
6
|
// JavaScript expression handled by the TypeScript bridge.
|
|
7
7
|
import { getCSSLanguageService } from 'vscode-css-languageservice';
|
|
8
8
|
import { TextDocument } from 'vscode-languageserver-textdocument';
|
|
@@ -50,7 +50,7 @@ function mapCssItems(items) {
|
|
|
50
50
|
sortText: item.sortText
|
|
51
51
|
}));
|
|
52
52
|
}
|
|
53
|
-
/** CSS property/value completion inside an inline `style="
|
|
53
|
+
/** CSS property/value completion inside an inline `style="..."`. */
|
|
54
54
|
export function cssCompletions(source, offset) {
|
|
55
55
|
const wrapped = wrap(source, offset);
|
|
56
56
|
if (wrapped === null) {
|
|
@@ -61,7 +61,7 @@ export function cssCompletions(source, offset) {
|
|
|
61
61
|
return mapCssItems(list.items);
|
|
62
62
|
}
|
|
63
63
|
// css`` tagged templates. Their content is a real stylesheet (selectors and
|
|
64
|
-
// all), not a declaration list, so unlike style="
|
|
64
|
+
// all), not a declaration list, so unlike style="..." it parses without the
|
|
65
65
|
// synthetic-rule wrap. The TypeScript bridge sees the template as an opaque
|
|
66
66
|
// string, so this is the only source of intelligence inside it.
|
|
67
67
|
/**
|
|
@@ -134,7 +134,7 @@ export function cssTemplateHover(source, offset, lineIndex) {
|
|
|
134
134
|
}
|
|
135
135
|
return { contents, range };
|
|
136
136
|
}
|
|
137
|
-
/** CSS hover (property/value docs) inside an inline `style="
|
|
137
|
+
/** CSS hover (property/value docs) inside an inline `style="..."`. */
|
|
138
138
|
export function cssHover(source, offset, lineIndex) {
|
|
139
139
|
const wrapped = wrap(source, offset);
|
|
140
140
|
if (wrapped === null) {
|
|
@@ -159,4 +159,76 @@ export function cssHover(source, offset, lineIndex) {
|
|
|
159
159
|
}
|
|
160
160
|
return { contents, range };
|
|
161
161
|
}
|
|
162
|
+
/** css-doc offset back to original source, undoing the synthetic prefix shift. */
|
|
163
|
+
function toSourceOffset(region, doc, position) {
|
|
164
|
+
return doc.offsetAt(position) - region.prefix.length + region.contentStart;
|
|
165
|
+
}
|
|
166
|
+
/** Maps a css-doc range to an original-source range within `region`. */
|
|
167
|
+
function regionRange(region, doc, range, lineIndex) {
|
|
168
|
+
return lineIndex.rangeAt(toSourceOffset(region, doc, range.start), toSourceOffset(region, doc, range.end));
|
|
169
|
+
}
|
|
170
|
+
/** css-language-service Color -> our protocol Color (identical shape, re-typed). */
|
|
171
|
+
function mapColor(color) {
|
|
172
|
+
return { red: color.red, green: color.green, blue: color.blue, alpha: color.alpha };
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Color swatches across the given style/css regions. Runs findDocumentColors
|
|
176
|
+
* over each region's wrapped document and maps every color's range back to the
|
|
177
|
+
* original source. Never throws; a region that fails to parse contributes none.
|
|
178
|
+
*/
|
|
179
|
+
export function cssColors(_source, regions, lineIndex) {
|
|
180
|
+
const out = [];
|
|
181
|
+
for (const region of regions) {
|
|
182
|
+
const doc = TextDocument.create('inline://color.css', 'css', 0, `${region.prefix}${region.content}${region.prefix ? '}' : ''}`);
|
|
183
|
+
const stylesheet = css().parseStylesheet(doc);
|
|
184
|
+
for (const info of css().findDocumentColors(doc, stylesheet)) {
|
|
185
|
+
out.push({ range: regionRange(region, doc, info.range, lineIndex), color: mapColor(info.color) });
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return out;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The presentation choices (e.g. `#ff0000`, `rgb(255, 0, 0)`, `hsl(...)`) for a
|
|
192
|
+
* picked `color` at `range`. Delegates to getColorPresentations over a throwaway
|
|
193
|
+
* document whose text is just the color literal, since the presentations are the
|
|
194
|
+
* spellings of the color itself and don't depend on the surrounding stylesheet.
|
|
195
|
+
*/
|
|
196
|
+
export function cssColorPresentations(color, range) {
|
|
197
|
+
const doc = TextDocument.create('inline://present.css', 'css', 0, '*{color:}');
|
|
198
|
+
const stylesheet = css().parseStylesheet(doc);
|
|
199
|
+
const at = { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } };
|
|
200
|
+
return css().getColorPresentations(doc, stylesheet, color, at).map(presentation => ({
|
|
201
|
+
label: presentation.label,
|
|
202
|
+
textEdit: presentation.textEdit
|
|
203
|
+
? { range, newText: presentation.textEdit.newText }
|
|
204
|
+
: undefined
|
|
205
|
+
}));
|
|
206
|
+
}
|
|
207
|
+
/** Builds a declaration-list region from a static `style="..."` value's span. */
|
|
208
|
+
export function styleRegion(source, valueStart, valueEnd) {
|
|
209
|
+
return { content: source.slice(valueStart, valueEnd), contentStart: valueStart, prefix: WRAP_PREFIX };
|
|
210
|
+
}
|
|
211
|
+
/** Builds a stylesheet region from a css`` template's content span. */
|
|
212
|
+
export function templateRegion(source, contentStart, contentEnd) {
|
|
213
|
+
return { content: source.slice(contentStart, contentEnd), contentStart, prefix: '' };
|
|
214
|
+
}
|
|
215
|
+
/** The content spans of every css`` template in the source (start/end offsets). */
|
|
216
|
+
export function cssTemplateSpans(source) {
|
|
217
|
+
const open = /\bcss\s*`/g;
|
|
218
|
+
const spans = [];
|
|
219
|
+
let match;
|
|
220
|
+
while ((match = open.exec(source)) !== null) {
|
|
221
|
+
const start = match.index + match[0].length;
|
|
222
|
+
let i = start;
|
|
223
|
+
while (i < source.length && source[i] !== '`') {
|
|
224
|
+
if (source[i] === '\\') {
|
|
225
|
+
i++;
|
|
226
|
+
}
|
|
227
|
+
i++;
|
|
228
|
+
}
|
|
229
|
+
spans.push({ start, end: i });
|
|
230
|
+
open.lastIndex = i + 1;
|
|
231
|
+
}
|
|
232
|
+
return spans;
|
|
233
|
+
}
|
|
162
234
|
//# sourceMappingURL=css-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-service.js","sourceRoot":"","sources":["../../src/providers/css-service.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"css-service.js","sourceRoot":"","sources":["../../src/providers/css-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/providers/diagnostics.ts"],"names":[],"mappings":"AAeA,OAAO,EAEH,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/providers/diagnostics.ts"],"names":[],"mappings":"AAeA,OAAO,EAEH,KAAK,UAAU,EAGlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,wCAAwC;AACxC,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,UAAU,EAAE,CAWhE"}
|
|
@@ -13,6 +13,7 @@ import ts from 'typescript';
|
|
|
13
13
|
import { findMarkupStart } from '@azerothjs/compiler';
|
|
14
14
|
import { parseMarkup, CompileError, lintMarkup } from '@azerothjs/compiler';
|
|
15
15
|
import { DiagnosticSeverity } from "../protocol.js";
|
|
16
|
+
import { resolveLocation } from "../request.js";
|
|
16
17
|
/** All diagnostics for the document. */
|
|
17
18
|
export function getDiagnostics(ctx) {
|
|
18
19
|
const { errors, warnings } = markupDiagnostics(ctx);
|
|
@@ -88,25 +89,56 @@ function typeScriptDiagnostics(ctx) {
|
|
|
88
89
|
if (COMPONENT_PROP_CODES.has(diag.code)) {
|
|
89
90
|
const anchor = ctx.virtual.mapping.nearestSourceBefore(diag.start);
|
|
90
91
|
if (anchor !== null) {
|
|
91
|
-
out.push({
|
|
92
|
+
out.push(withRelated(ctx, diag, {
|
|
92
93
|
range: ctx.lineIndex.rangeAt(anchor, Math.min(anchor + 1, ctx.source.length)),
|
|
93
94
|
severity: categoryToSeverity(diag.category),
|
|
94
95
|
message: ts.flattenDiagnosticMessageText(diag.messageText, '\n'),
|
|
95
96
|
code: diag.code,
|
|
96
97
|
source: 'azeroth-ts'
|
|
97
|
-
});
|
|
98
|
+
}));
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
101
|
continue;
|
|
101
102
|
}
|
|
102
|
-
out.push({
|
|
103
|
+
out.push(withRelated(ctx, diag, {
|
|
103
104
|
range: ctx.lineIndex.rangeAt(mapped.start, mapped.end),
|
|
104
105
|
severity: categoryToSeverity(diag.category),
|
|
105
106
|
message: ts.flattenDiagnosticMessageText(diag.messageText, '\n'),
|
|
106
107
|
code: diag.code,
|
|
107
108
|
source: 'azeroth-ts'
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
return out;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Attaches `relatedInformation` (TypeScript's "'x' is declared here" / "the
|
|
115
|
+
* expected type comes from ..." secondary spans) to a mapped diagnostic. Each
|
|
116
|
+
* related entry can point at another `.azeroth` file or a real `.ts` file, so it
|
|
117
|
+
* resolves through the same virtual mapping as definitions/references. Entries
|
|
118
|
+
* that land in generated scaffolding (or have no span) are skipped, and the
|
|
119
|
+
* field is left off entirely when nothing maps.
|
|
120
|
+
*/
|
|
121
|
+
function withRelated(ctx, diag, out) {
|
|
122
|
+
if (diag.relatedInformation === undefined) {
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
const related = [];
|
|
126
|
+
for (const info of diag.relatedInformation) {
|
|
127
|
+
if (info.file === undefined || info.start === undefined || info.length === undefined) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
const location = resolveLocation(ctx.project, info.file.fileName, { start: info.start, length: info.length });
|
|
131
|
+
if (location === null) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
related.push({
|
|
135
|
+
location,
|
|
136
|
+
message: ts.flattenDiagnosticMessageText(info.messageText, '\n')
|
|
108
137
|
});
|
|
109
138
|
}
|
|
139
|
+
if (related.length > 0) {
|
|
140
|
+
out.relatedInformation = related;
|
|
141
|
+
}
|
|
110
142
|
return out;
|
|
111
143
|
}
|
|
112
144
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/providers/diagnostics.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,2EAA2E;AAC3E,sEAAsE;AACtE,wEAAwE;AACxE,uEAAuE;AACvE,2CAA2C;AAC3C,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAC9E,8EAA8E;AAC9E,eAAe;AAEf,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACH,kBAAkB,
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/providers/diagnostics.ts"],"names":[],"mappings":"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"}
|