@@ -289,6 +289,29 @@ export async function setupLs(modelsMap: Ref<Map<string, monaco.editor.ITextMode
289
289
}
290
290
} ,
291
291
} ) ,
292
+ monaco . languages . registerDefinitionProvider ( lang , {
293
+ provideDefinition : async ( model , position ) => {
294
+ const codeResult = await ls . findDefinition (
295
+ model . uri . toString ( ) ,
296
+ monaco2code . asPosition ( position ) ,
297
+ ) ;
298
+ // TODO: can't show if only one result from libs
299
+ if ( codeResult ) {
300
+ return codeResult . map ( code2monaco . asLocation ) ;
301
+ }
302
+ } ,
303
+ } ) ,
304
+ monaco . languages . registerImplementationProvider ( lang , {
305
+ provideImplementation : async ( model , position ) => {
306
+ const codeResult = await ls . findImplementations (
307
+ model . uri . toString ( ) ,
308
+ monaco2code . asPosition ( position ) ,
309
+ ) ;
310
+ if ( codeResult ) {
311
+ return codeResult . map ( code2monaco . asLocation ) ;
312
+ }
313
+ } ,
314
+ } ) ,
292
315
monaco . languages . registerCompletionItemProvider ( lang , {
293
316
// https://github.com/johnsoncodehk/volar/blob/2f786182250d27e99cc3714fbfc7d209616e2289/packages/vue-language-server/src/registers/registerlanguageFeatures.ts#L57
294
317
triggerCharacters : '!@#$%^&*()_+-=`~{}|[]\:";\'<>?,./ ' . split ( '' ) ,
@@ -316,18 +339,6 @@ export async function setupLs(modelsMap: Ref<Map<string, monaco.editor.ITextMode
316
339
return monacoItem ;
317
340
} ,
318
341
} ) ,
319
- monaco . languages . registerDefinitionProvider ( lang , {
320
- provideDefinition : async ( model , position ) => {
321
- const codeResult = await ls . findDefinition (
322
- model . uri . toString ( ) ,
323
- monaco2code . asPosition ( position ) ,
324
- ) ;
325
- // TODO: can't show if only one result from libs
326
- if ( codeResult ) {
327
- return codeResult . map ( code2monaco . asLocation ) ;
328
- }
329
- } ,
330
- } ) ,
331
342
) ;
332
343
333
344
return ls ;
0 commit comments