@@ -134,21 +134,22 @@ export default class BashServer {
134
134
}
135
135
}
136
136
137
+ const getMarkdownHoverItem = ( doc : string ) => ( {
138
+ // LSP.MarkupContent
139
+ value : [ '``` man' , doc , '```' ] . join ( '\n' ) ,
140
+ // Passed as markdown for syntax highlighting
141
+ kind : 'markdown' as const ,
142
+ } )
143
+
137
144
if ( Builtins . isBuiltin ( word ) ) {
138
145
return Builtins . documentation ( word ) . then ( doc => ( {
139
- contents : {
140
- language : 'plaintext' ,
141
- value : doc ,
142
- } ,
146
+ contents : getMarkdownHoverItem ( doc ) ,
143
147
} ) )
144
148
}
145
149
146
150
if ( this . executables . isExecutableOnPATH ( word ) ) {
147
151
return this . executables . documentation ( word ) . then ( doc => ( {
148
- contents : {
149
- language : 'plaintext' ,
150
- value : doc ,
151
- } ,
152
+ contents : getMarkdownHoverItem ( doc ) ,
152
153
} ) )
153
154
}
154
155
@@ -216,19 +217,24 @@ export default class BashServer {
216
217
const {
217
218
data : { name, type } ,
218
219
} = item
220
+
221
+ const getMarkdownCompletionItem = ( doc : string ) => ( {
222
+ ...item ,
223
+ // LSP.MarkupContent
224
+ documentation : {
225
+ value : [ '``` man' , doc , '```' ] . join ( '\n' ) ,
226
+ // Passed as markdown for syntax highlighting
227
+ kind : 'markdown' as const ,
228
+ } ,
229
+ } )
230
+
219
231
try {
220
232
if ( type === 'executable' ) {
221
233
const doc = await this . executables . documentation ( name )
222
- return {
223
- ...item ,
224
- detail : doc ,
225
- }
234
+ return getMarkdownCompletionItem ( doc )
226
235
} else if ( type === 'builtin' ) {
227
236
const doc = await Builtins . documentation ( name )
228
- return {
229
- ...item ,
230
- detail : doc ,
231
- }
237
+ return getMarkdownCompletionItem ( doc )
232
238
} else {
233
239
return item
234
240
}
0 commit comments