@@ -289,6 +289,29 @@ export async function setupLs(modelsMap: Ref<Map<string, monaco.editor.ITextMode
289289 }
290290 } ,
291291 } ) ,
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+ } ) ,
292315 monaco . languages . registerCompletionItemProvider ( lang , {
293316 // https://github.com/johnsoncodehk/volar/blob/2f786182250d27e99cc3714fbfc7d209616e2289/packages/vue-language-server/src/registers/registerlanguageFeatures.ts#L57
294317 triggerCharacters : '!@#$%^&*()_+-=`~{}|[]\:";\'<>?,./ ' . split ( '' ) ,
@@ -316,18 +339,6 @@ export async function setupLs(modelsMap: Ref<Map<string, monaco.editor.ITextMode
316339 return monacoItem ;
317340 } ,
318341 } ) ,
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- } ) ,
331342 ) ;
332343
333344 return ls ;
0 commit comments