feat(language-server): merge HTML completions and hover into one response
This commit is contained in:
@@ -111,9 +111,7 @@ test("does not misfire inside a quoted attribute value containing a slash", () =
|
||||
}
|
||||
}
|
||||
`;
|
||||
expect(
|
||||
htmlTagComplete(doc(singleQuoted), positionOf(singleQuoted, `src='/assets/`)),
|
||||
).toBeNull();
|
||||
expect(htmlTagComplete(doc(singleQuoted), positionOf(singleQuoted, `src='/assets/`))).toBeNull();
|
||||
});
|
||||
|
||||
test("still completes a self-close after a preceding attribute", () => {
|
||||
@@ -151,3 +149,26 @@ test("folding ranges stay inside view regions", () => {
|
||||
const viewStartLine = text.slice(0, text.indexOf("view {")).split("\n").length - 1;
|
||||
for (const range of ranges) expect(range.startLine).toBeGreaterThan(viewStartLine - 1);
|
||||
});
|
||||
|
||||
import { mergeCompletions } from "../src/html-service.ts";
|
||||
|
||||
test("merging ranks WRNexus entries above HTML and drops exact collisions", () => {
|
||||
const merged = mergeCompletions(
|
||||
[
|
||||
{ label: "Card", kind: 7 },
|
||||
{ label: "table", kind: 7 },
|
||||
],
|
||||
[
|
||||
{ label: "div", kind: 10, sortText: "1div" },
|
||||
{ label: "table", kind: 10, sortText: "1table" },
|
||||
],
|
||||
);
|
||||
|
||||
const labels = merged.map((item) => item.label);
|
||||
expect(labels.filter((label) => label === "table")).toHaveLength(1);
|
||||
expect(merged.find((item) => item.label === "Card")?.sortText?.startsWith("0")).toBe(true);
|
||||
expect(merged.find((item) => item.label === "div")?.sortText?.startsWith("1")).toBe(true);
|
||||
|
||||
const sorted = [...merged].sort((a, b) => (a.sortText ?? "").localeCompare(b.sortText ?? ""));
|
||||
expect(sorted[0]!.label).toBe("Card");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user