Skip to content

Commit f782496

Browse files
committed
feat: implemented provideDocumentHighlights
1 parent 1cda6c6 commit f782496

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

src/monaco/code2monaco.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,3 +364,23 @@ export function asSymbolKind(kind: vscode.SymbolKind): monaco.languages.SymbolKi
364364
return monaco.languages.SymbolKind.File;
365365
}
366366
}
367+
368+
export function asDocumentHighlight(highlight: vscode.DocumentHighlight): monaco.languages.DocumentHighlight {
369+
return {
370+
range: asRange(highlight.range),
371+
kind: asDocumentHighlightKind(highlight.kind),
372+
};
373+
}
374+
375+
export function asDocumentHighlightKind(kind: vscode.DocumentHighlightKind | undefined): monaco.languages.DocumentHighlightKind {
376+
switch (kind) {
377+
case vscode.DocumentHighlightKind.Text:
378+
return monaco.languages.DocumentHighlightKind.Text;
379+
case vscode.DocumentHighlightKind.Read:
380+
return monaco.languages.DocumentHighlightKind.Read;
381+
case vscode.DocumentHighlightKind.Write:
382+
return monaco.languages.DocumentHighlightKind.Write;
383+
default:
384+
return monaco.languages.DocumentHighlightKind.Text;
385+
}
386+
}

src/monaco/ls.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,17 @@ export async function setupLs(modelsMap: Ref<Map<string, monaco.editor.ITextMode
261261
}
262262
},
263263
}),
264+
monaco.languages.registerDocumentHighlightProvider(lang, {
265+
provideDocumentHighlights: async (model, position) => {
266+
const codeResult = await ls.findDocumentHighlights(
267+
model.uri.toString(),
268+
monaco2code.asPosition(position),
269+
);
270+
if (codeResult) {
271+
return codeResult.map(code2monaco.asDocumentHighlight);
272+
}
273+
},
274+
}),
264275
monaco.languages.registerCompletionItemProvider(lang, {
265276
// https://github.com/johnsoncodehk/volar/blob/2f786182250d27e99cc3714fbfc7d209616e2289/packages/vue-language-server/src/registers/registerlanguageFeatures.ts#L57
266277
triggerCharacters: '!@#$%^&*()_+-=`~{}|[]\:";\'<>?,./ '.split(''),

0 commit comments

Comments
 (0)