mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	feat(defaults): "Show Diagnostics" in mouse popupmenu #32122
Problem: No obvious way to see diagnostics without configuring it first. Solution: Add `Show Diagnostics`, `Show All Diagnostics` and `Configure Diagnostics` buttons to the context menu.
This commit is contained in:
		| @@ -221,6 +221,8 @@ DEFAULTS | |||||||
|     on a URL. |     on a URL. | ||||||
|   • Mouse |popup-menu| includes a "Go to definition" item when LSP is active |   • Mouse |popup-menu| includes a "Go to definition" item when LSP is active | ||||||
|     in the buffer. |     in the buffer. | ||||||
|  |   • Mouse |popup-menu| includes "Show Diagnostics", "Show All Diagnostics" and | ||||||
|  |     "Configure Diagnostics" items when there are diagnostics in the buffer. | ||||||
|   • |]d-default| and |[d-default| accept a count. |   • |]d-default| and |[d-default| accept a count. | ||||||
|   • |[D-default| and |]D-default| jump to the first and last diagnostic in the |   • |[D-default| and |]D-default| jump to the first and last diagnostic in the | ||||||
|     current buffer, respectively. |     current buffer, respectively. | ||||||
|   | |||||||
| @@ -383,9 +383,12 @@ end | |||||||
| do | do | ||||||
|   --- Right click popup menu |   --- Right click popup menu | ||||||
|   vim.cmd([[ |   vim.cmd([[ | ||||||
|     anoremenu PopUp.Go\ to\ definition      <Cmd>lua vim.lsp.buf.definition()<CR> |  | ||||||
|     amenu     PopUp.Open\ in\ web\ browser  gx |     amenu     PopUp.Open\ in\ web\ browser  gx | ||||||
|     anoremenu PopUp.Inspect                 <Cmd>Inspect<CR> |     anoremenu PopUp.Inspect                 <Cmd>Inspect<CR> | ||||||
|  |     anoremenu PopUp.Go\ to\ definition      <Cmd>lua vim.lsp.buf.definition()<CR> | ||||||
|  |     anoremenu PopUp.Show\ Diagnostics       <Cmd>lua vim.diagnostic.open_float()<CR> | ||||||
|  |     anoremenu PopUp.Show\ All\ Diagnostics  <Cmd>lua vim.diagnostic.setqflist()<CR> | ||||||
|  |     anoremenu PopUp.Configure\ Diagnostics  <Cmd>help vim.diagnostic.config()<CR> | ||||||
|     anoremenu PopUp.-1-                     <Nop> |     anoremenu PopUp.-1-                     <Nop> | ||||||
|     vnoremenu PopUp.Cut                     "+x |     vnoremenu PopUp.Cut                     "+x | ||||||
|     vnoremenu PopUp.Copy                    "+y |     vnoremenu PopUp.Copy                    "+y | ||||||
| @@ -403,6 +406,9 @@ do | |||||||
|     vim.cmd([[ |     vim.cmd([[ | ||||||
|       amenu disable PopUp.Go\ to\ definition |       amenu disable PopUp.Go\ to\ definition | ||||||
|       amenu disable PopUp.Open\ in\ web\ browser |       amenu disable PopUp.Open\ in\ web\ browser | ||||||
|  |       amenu disable PopUp.Show\ Diagnostics | ||||||
|  |       amenu disable PopUp.Show\ All\ Diagnostics | ||||||
|  |       amenu disable PopUp.Configure\ Diagnostics | ||||||
|     ]]) |     ]]) | ||||||
|  |  | ||||||
|     if ctx == 'url' then |     if ctx == 'url' then | ||||||
| @@ -410,6 +416,20 @@ do | |||||||
|     elseif ctx == 'lsp' then |     elseif ctx == 'lsp' then | ||||||
|       vim.cmd([[anoremenu enable PopUp.Go\ to\ definition]]) |       vim.cmd([[anoremenu enable PopUp.Go\ to\ definition]]) | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  |     local lnum = vim.fn.getcurpos()[2] - 1 ---@type integer | ||||||
|  |     local diagnostic = false | ||||||
|  |     if next(vim.diagnostic.get(0, { lnum = lnum })) ~= nil then | ||||||
|  |       diagnostic = true | ||||||
|  |       vim.cmd([[anoremenu enable PopUp.Show\ Diagnostics]]) | ||||||
|  |     end | ||||||
|  |  | ||||||
|  |     if diagnostic or next(vim.diagnostic.count(0)) ~= nil then | ||||||
|  |       vim.cmd([[ | ||||||
|  |         anoremenu enable PopUp.Show\ All\ Diagnostics | ||||||
|  |         anoremenu enable PopUp.Configure\ Diagnostics | ||||||
|  |       ]]) | ||||||
|  |     end | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   local nvim_popupmenu_augroup = vim.api.nvim_create_augroup('nvim.popupmenu', {}) |   local nvim_popupmenu_augroup = vim.api.nvim_create_augroup('nvim.popupmenu', {}) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Siddhant Agarwal
					Siddhant Agarwal