feat(language-server): add tag folding and linked editing
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env node
|
||||
// WRN editor language server source hash: 6a4f4c8e370f4063c863f89ca0dd57923fdb2b940a3e63980984ed2ff45f7af0
|
||||
// WRN editor language server source hash: 1317c4e318ab938fffab3dd5b65655b0e220a81c481c9fa92f23706ede60303c
|
||||
// WRN editor language server generator hash: f593a44aaf05495b789ce7a3086bee1eebb951b884d41c0e017bbcfe5f547e72
|
||||
// @bun @bun-cjs
|
||||
(function(exports, require, module, __filename, __dirname) {var __create = Object.create;
|
||||
@@ -195960,6 +195960,16 @@ function htmlHover(document, position) {
|
||||
const contents = markdown(result.contents);
|
||||
return contents ? { contents } : null;
|
||||
}
|
||||
function htmlFoldingRanges(document) {
|
||||
return service.getFoldingRanges(htmlDocument(document)).map((range) => ({ startLine: range.startLine, endLine: range.endLine }));
|
||||
}
|
||||
function htmlLinkedEditingRanges(document, position) {
|
||||
if (!isInsideHtml(document, offsetAt2(document.text, position)))
|
||||
return null;
|
||||
const virtual = htmlDocument(document);
|
||||
const ranges = service.findLinkedEditingRanges(virtual, position, service.parseHTMLDocument(virtual));
|
||||
return ranges && ranges.length ? ranges : null;
|
||||
}
|
||||
function mergeCompletions(wrnexus, html) {
|
||||
const taken = new Set(wrnexus.map((item) => item.label));
|
||||
return [
|
||||
@@ -196066,6 +196076,8 @@ async function handle(message) {
|
||||
triggerCharacters: ["<", "@", ":", ".", " ", "=", '"', "/"]
|
||||
},
|
||||
hoverProvider: true,
|
||||
foldingRangeProvider: true,
|
||||
linkedEditingRangeProvider: true,
|
||||
definitionProvider: true,
|
||||
referencesProvider: true,
|
||||
renameProvider: { prepareProvider: true },
|
||||
@@ -196169,6 +196181,17 @@ async function handle(message) {
|
||||
result(message.id, html ?? (document ? hover(document, params.position) : null));
|
||||
break;
|
||||
}
|
||||
case "textDocument/foldingRange": {
|
||||
const document = documents.get(params.textDocument.uri);
|
||||
result(message.id, document ? htmlFoldingRanges(document) : []);
|
||||
break;
|
||||
}
|
||||
case "textDocument/linkedEditingRange": {
|
||||
const document = documents.get(params.textDocument.uri);
|
||||
const ranges = document ? htmlLinkedEditingRanges(document, params.position) : null;
|
||||
result(message.id, ranges ? { ranges } : null);
|
||||
break;
|
||||
}
|
||||
case "textDocument/definition": {
|
||||
const document = documents.get(params.textDocument.uri);
|
||||
result(message.id, document ? definitionLocation(document, params.position) : null);
|
||||
|
||||
Reference in New Issue
Block a user