Skip to content

Commit 761545f

Browse files
committed
fix: handle the signature documentation and parameter documentation better
1 parent 3ebc9d3 commit 761545f

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

src/signature-help-manager.ts

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -214,25 +214,37 @@ export class SignatureHelpManager {
214214
const index = signatureHelp.activeSignature || 0
215215
const signature = signatureHelp.signatures[index]
216216
const paramIndex = signatureHelp.activeParameter || 0
217-
const parameter = signature.parameters !== undefined ? (signature.parameters[paramIndex] || null) : null
217+
const parameter = signature.parameters !== undefined ? signature.parameters[paramIndex] || null : null
218218

219219
// clear last data tip
220220
this.unmountDataTip()
221221

222-
const grammar = editor.getGrammar().scopeName.toLowerCase()
223-
let doc = null
224-
222+
let doc = ""
225223
if (parameter) {
226-
doc = `<b>${parameter.label}</b> ${
227-
parameter.documentation && parameter.documentation.value
228-
? parameter.documentation.value
229-
: parameter.documentation || ""
230-
}`
224+
let parameterDocumentation = ""
225+
if (parameter.documentation === undefined) {
226+
// parameterDocumentation = ""
227+
} else if (typeof parameter.documentation === "string") {
228+
parameterDocumentation = parameter.documentation
229+
} else if (typeof (parameter.documentation as { value: string }).value === "string") {
230+
// TODO undocumented type?
231+
parameterDocumentation = (parameter.documentation as { value: string }).value
232+
}
233+
doc = `<b>${parameter.label}</b> ${parameterDocumentation}`
231234
} else if (signature.documentation) {
232-
doc = signature.documentation.kind ? signature.documentation.value : signature.documentation
233-
} else {
234-
doc = ""
235+
let signatureDocumentation = ""
236+
if (signature.documentation === undefined) {
237+
// signatureDocumentation = ""
238+
} else if (typeof signature.documentation === "string") {
239+
signatureDocumentation = signature.documentation
240+
} else if (typeof (signature.documentation as { value: string }).value === "string") {
241+
// TODO undocumented type?
242+
signatureDocumentation = (signature.documentation as { value: string }).value
243+
}
244+
doc = signatureDocumentation
235245
}
246+
247+
const grammar = editor.getGrammar().scopeName.toLowerCase()
236248
const signatureHelpView = new ViewContainer({
237249
snippet: {
238250
snippet: signature.label,

0 commit comments

Comments
 (0)