astro-ghostcms/.pnpm-store/v3/files/d2/1313929289773401041ee33c3ef...

63 lines
2.4 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");
function register(ctx) {
const { ts } = ctx;
return (uri, position, context) => {
const document = ctx.getTextDocument(uri);
if (!document)
return;
const options = {};
if (context?.triggerKind === 1) {
options.triggerReason = {
kind: 'invoked'
};
}
else if (context?.triggerKind === 2) {
options.triggerReason = {
kind: 'characterTyped',
triggerCharacter: context.triggerCharacter,
};
}
else if (context?.triggerKind === 3) {
options.triggerReason = {
kind: 'retrigger',
triggerCharacter: context.triggerCharacter,
};
}
const fileName = ctx.uriToFileName(document.uri);
const offset = document.offsetAt(position);
const helpItems = (0, shared_1.safeCall)(() => ctx.languageService.getSignatureHelpItems(fileName, offset, options));
if (!helpItems)
return;
return {
activeSignature: helpItems.selectedItemIndex,
activeParameter: helpItems.argumentIndex,
signatures: helpItems.items.map(item => {
const signature = {
label: '',
documentation: undefined,
parameters: []
};
signature.label += ts.displayPartsToString(item.prefixDisplayParts);
item.parameters.forEach((p, i, a) => {
const label = ts.displayPartsToString(p.displayParts);
const parameter = {
label,
documentation: ts.displayPartsToString(p.documentation)
};
signature.label += label;
signature.parameters.push(parameter);
if (i < a.length - 1) {
signature.label += ts.displayPartsToString(item.separatorDisplayParts);
}
});
signature.label += ts.displayPartsToString(item.suffixDisplayParts);
return signature;
}),
};
};
}
exports.register = register;
//# sourceMappingURL=signatureHelp.js.map