From 45cc328e7dbaf9810c31eccb2efc8f89125ef14f Mon Sep 17 00:00:00 2001 From: Mark Korondi Date: Wed, 9 Mar 2022 22:15:35 +0100 Subject: [PATCH] Handle jdt:// URIs --- autoload/lsp/utils/location.vim | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/autoload/lsp/utils/location.vim b/autoload/lsp/utils/location.vim index 7ad6c9fc5..a4b60a874 100644 --- a/autoload/lsp/utils/location.vim +++ b/autoload/lsp/utils/location.vim @@ -68,6 +68,16 @@ function! s:lsp_location_item_to_vim(loc, cache) abort let l:use_link = 0 endif + if stridx(l:uri, 'jdt://') == 0 + let l:zip = 'file://' . substitute(substitute(l:uri, 'jdt://.*?=.*/%5c\(/[^=]\+\)\.jar.*', '\1', 'g'), '%5C', '', 'g') . '-sources.jar' + let l:source = substitute(substitute(l:uri, 'jdt://.*.jar/\(.*\)\.class?=.*', '\1', 'g'), '\.', '/', 'g') . '.java' + return { + \ 'filename': "zip" . l:zip . "::" . l:source, + \ 'lnum': a:loc["range"]["start"]["line"] + 1, + \ 'col': a:loc["range"]["start"]["character"] + 1, + \ } + endif + if !lsp#utils#is_file_uri(l:uri) return v:null endif