astro-ghostcms/.pnpm-store/v3/files/2d/1f9d699a2e257f94204621bf3ad...

43 lines
1.9 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.create = void 0;
function create() {
return (context) => {
return {
provideInlayHints(document, range) {
if (isTsDocument(document.languageId)) {
const ts = context.inject('typescript/typescript');
const languageService = context.inject('typescript/languageService');
const inlayHints = [];
for (const pointer of document.getText(range).matchAll(/^\s*\/\/\s*\^\?/gm)) {
const pointerOffset = pointer.index + pointer[0].indexOf('^?') + document.offsetAt(range.start);
const pointerPosition = document.positionAt(pointerOffset);
const hoverOffset = document.offsetAt({
line: pointerPosition.line - 1,
character: pointerPosition.character,
});
const quickInfo = languageService.getQuickInfoAtPosition(context.env.uriToFileName(document.uri), hoverOffset);
if (quickInfo) {
inlayHints.push({
position: { line: pointerPosition.line, character: pointerPosition.character + 2 },
label: ts.displayPartsToString(quickInfo.displayParts),
paddingLeft: true,
paddingRight: false,
});
}
}
return inlayHints;
}
},
};
};
}
exports.create = create;
exports.default = create;
function isTsDocument(languageId) {
return languageId === 'javascript' ||
languageId === 'typescript' ||
languageId === 'javascriptreact' ||
languageId === 'typescriptreact';
}
//# sourceMappingURL=index.js.map