feat(language-server): merge HTML completions and hover into one response
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
import { expect, test } from "bun:test";
|
||||
import { isInsideHtml, viewRegions, virtualHtmlDocument } from "../src/html-regions.ts";
|
||||
import {
|
||||
clearHtmlRegionCache,
|
||||
isInsideHtml,
|
||||
viewRegions,
|
||||
virtualHtmlDocument,
|
||||
} from "../src/html-regions.ts";
|
||||
|
||||
function doc(text: string): { uri: string; text: string; version?: number } {
|
||||
return { uri: `file:///${Math.random()}.wrn`, text };
|
||||
@@ -99,6 +104,22 @@ test("regions are cached per document version", () => {
|
||||
expect(isInsideHtml(first, PAGE.indexOf("<div"))).toBe(false);
|
||||
});
|
||||
|
||||
test("clearHtmlRegionCache drops a closed document's cached regions", () => {
|
||||
// A reopened document commonly restarts at version 1. Without clearing the
|
||||
// cache on close, that version would match the stale entry from the prior
|
||||
// session and serve regions scanned from the old text.
|
||||
const first = doc(PAGE);
|
||||
first.version = 1;
|
||||
expect(isInsideHtml(first, PAGE.indexOf("<div"))).toBe(true);
|
||||
|
||||
clearHtmlRegionCache(first.uri);
|
||||
|
||||
// Same uri, same version 1, but a document with no view block at all: if
|
||||
// the cache had survived, this would still report true from the old scan.
|
||||
const reopened = { uri: first.uri, text: "page A { }", version: 1 };
|
||||
expect(isInsideHtml(reopened, PAGE.indexOf("<div"))).toBe(false);
|
||||
});
|
||||
|
||||
test("isInsideHtml distinguishes markup from surrounding code", () => {
|
||||
const source = doc(PAGE);
|
||||
const markupOffset = PAGE.indexOf("<div");
|
||||
|
||||
Reference in New Issue
Block a user