5252
5353local function get_hovered_node ()
5454 local hovered_line = vim .api .nvim_win_get_cursor (jd .view .winnr )[1 ]
55- local node = jd .state .outline_items [hovered_line ]
55+ local node = jd .state .flattened_outline_items [hovered_line ]
5656 return node
5757end
5858
9292
9393local function get_hover_params (node , winnr )
9494 local bufnr = vim .api .nvim_win_get_buf (winnr )
95- local uri = vim .uri_from_bufnr (bufnr )
96-
95+ -- local uri = vim.uri_from_bufnr(bufnr)
9796 return {
98- textDocument = { uri = uri },
99- position = { line = node .line , character = node .character },
97+ node = node ,
10098 bufnr = bufnr ,
10199 }
102100end
@@ -111,37 +109,54 @@ local function update_hover()
111109 return
112110 end
113111
114- local provider = _G ._java_deps_outline_current_provider
115- local params = get_hover_params (node , jd .state .code_win )
116-
117- provider .hover_info (params .bufnr , params , function (err , result )
118- if err then
119- print (vim .inspect (err ))
112+ local content
113+ if node .metaData and node .metaData [" maven.groupId" ] then
114+ content = " ```xml\n <dependency>\n "
115+ .. " \t <groupId>"
116+ .. node .metaData [" maven.groupId" ]
117+ .. " </groupId>\n "
118+ .. " \t <artifactId>"
119+ .. node .metaData [" maven.artifactId" ]
120+ .. " </artifactId>\n "
121+ .. " \t <version>"
122+ .. node .metaData [" maven.version" ]
123+ .. " </version>\n "
124+
125+ if node .metaData [" maven.scope" ] then
126+ content = content .. " \t <scope>" .. node .metaData [" maven.scope" ] .. " </scope>\n "
120127 end
121- local markdown_lines = {}
122- if result ~= nil then
123- markdown_lines = vim .lsp .util .convert_input_to_markdown_lines (result .contents )
124- end
125- markdown_lines = vim .lsp .util .trim_empty_lines (markdown_lines )
126- if vim .tbl_isempty (markdown_lines ) then
127- markdown_lines = { " ###No info available!" }
128+ if node .metaData [" maven.optionaldependency" ] then
129+ content = content .. " \t <options>" .. node .metaData [" maven.optionaldependency" ] .. " </options>\n "
128130 end
131+ content = content .. " </dependency>\n ```"
132+ else
133+ return
134+ end
129135
130- markdown_lines = vim .lsp .util .stylize_markdown (state .hover_buf , markdown_lines , {})
136+ local mdstring = {
137+ { kind = " markdown" , value = content },
138+ { kind = " markdown" , value = " [" .. node .name .. " ](" .. node .path .. " )" },
139+ }
140+ local markdown_lines = vim .lsp .util .convert_input_to_markdown_lines (mdstring )
141+ markdown_lines = vim .lsp .util .trim_empty_lines (markdown_lines )
142+ if vim .tbl_isempty (markdown_lines ) then
143+ markdown_lines = { " ###No info available!" }
144+ end
131145
132- if state .hover_buf ~= nil then
133- vim .api .nvim_buf_set_lines (state .hover_buf , 0 , - 1 , 0 , markdown_lines )
134- end
135- end )
146+ markdown_lines = vim .lsp .util .stylize_markdown (state .hover_buf , markdown_lines , {})
147+
148+ if state .hover_buf ~= nil then
149+ vim .api .nvim_buf_set_lines (state .hover_buf , 0 , - 1 , 0 , markdown_lines )
150+ end
136151end
137152
138153local function setup_hover_buf ()
139154 if not has_code_win () then
140155 return
141156 end
142- local code_buf = vim .api .nvim_win_get_buf (jd .state .code_win )
143- local ft = vim .api .nvim_buf_get_option (code_buf , " filetype" )
144- vim .api .nvim_buf_set_option (state .hover_buf , " syntax" , ft )
157+ -- local code_buf = vim.api.nvim_win_get_buf(jd.state.code_win)
158+ -- local ft = vim.api.nvim_buf_get_option(code_buf, "filetype")
159+ -- vim.api.nvim_buf_set_option(state.hover_buf, "syntax", "xml" )
145160 vim .api .nvim_buf_set_option (state .hover_buf , " bufhidden" , " delete" )
146161 vim .api .nvim_win_set_option (state .hover_win , " wrap" , true )
147162 vim .api .nvim_win_set_option (state .hover_win , " cursorline" , false )
@@ -150,10 +165,10 @@ end
150165
151166local function set_bg_hl ()
152167 local winhi = " Normal:" .. config .options .preview_bg_highlight
153- vim .api .nvim_win_set_option (state .preview_win , " winhighlight" , winhi )
168+ -- vim.api.nvim_win_set_option(state.preview_win, "winhighlight", winhi)
154169 vim .api .nvim_win_set_option (state .hover_win , " winhighlight" , winhi )
155170 local winblend = config .options .winblend
156- vim .api .nvim_win_set_option (state .preview_win , " winblend" , winblend )
171+ -- vim.api.nvim_win_set_option(state.preview_win, "winblend", winblend)
157172 vim .api .nvim_win_set_option (state .hover_win , " winblend" , winblend )
158173end
159174
@@ -213,7 +228,7 @@ function M.show()
213228 return
214229 end
215230
216- show_preview ()
231+ -- show_preview()
217232 show_hover ()
218233 set_bg_hl ()
219234end
0 commit comments