astro-ghostcms/.pnpm-store/v3/files/86/85b4eb8eed5452513756d56b6f1...

43 lines
1.6 KiB
Plaintext
Raw Normal View History

2024-02-14 19:45:06 +00:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = void 0;
const shared_1 = require("../shared");
const previewer = require("../utils/previewer");
function register(ctx) {
const { ts } = ctx;
return (uri, position, documentOnly = false) => {
const document = ctx.getTextDocument(uri);
if (!document)
return;
const fileName = ctx.uriToFileName(document.uri);
const offset = document.offsetAt(position);
const info = (0, shared_1.safeCall)(() => ctx.languageService.getQuickInfoAtPosition(fileName, offset));
if (!info)
return;
const parts = [];
const displayString = ts.displayPartsToString(info.displayParts);
const documentation = previewer.markdownDocumentation(info.documentation ?? [], info.tags, { toResource }, ctx);
if (displayString && !documentOnly) {
parts.push(['```typescript', displayString, '```'].join('\n'));
}
if (documentation) {
parts.push(documentation);
}
const markdown = {
kind: 'markdown',
value: parts.join('\n\n'),
};
return {
contents: markdown,
range: {
start: document.positionAt(info.textSpan.start),
end: document.positionAt(info.textSpan.start + info.textSpan.length),
},
};
function toResource(path) {
return ctx.fileNameToUri(path);
}
};
}
exports.register = register;
//# sourceMappingURL=hover.js.map