32 lines
1.2 KiB
Plaintext
32 lines
1.2 KiB
Plaintext
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.register = void 0;
|
|
const shared_1 = require("../shared");
|
|
function register(ctx) {
|
|
const { ts } = ctx;
|
|
return (uri, position) => {
|
|
const document = ctx.getTextDocument(uri);
|
|
if (!document)
|
|
return [];
|
|
const fileName = ctx.uriToFileName(document.uri);
|
|
const offset = document.offsetAt(position);
|
|
const highlights = (0, shared_1.safeCall)(() => ctx.languageService.getDocumentHighlights(fileName, offset, [fileName]));
|
|
if (!highlights)
|
|
return [];
|
|
const results = [];
|
|
for (const highlight of highlights) {
|
|
for (const span of highlight.highlightSpans) {
|
|
results.push({
|
|
kind: span.kind === ts.HighlightSpanKind.writtenReference ? 3 : 2,
|
|
range: {
|
|
start: document.positionAt(span.textSpan.start),
|
|
end: document.positionAt(span.textSpan.start + span.textSpan.length),
|
|
},
|
|
});
|
|
}
|
|
}
|
|
return results;
|
|
};
|
|
}
|
|
exports.register = register;
|
|
//# sourceMappingURL=documentHighlight.js.map |