mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 Mathias Fußenegger
					Mathias Fußenegger
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							05a07ff7af
						
					
				
				
					commit
					50ff37308a
				
			| @@ -696,7 +696,7 @@ do | ||||
|  | ||||
|     local buffer_diagnostics = M.diagnostics_by_buf[bufnr] | ||||
|     if not buffer_diagnostics then return end | ||||
|     local line_diagnostics = M.diagnostics_group_by_line(buffer_diagnostics[line]) | ||||
|     local line_diagnostics = M.diagnostics_group_by_line(buffer_diagnostics)[line] | ||||
|     if not line_diagnostics then return end | ||||
|  | ||||
|     for i, diagnostic in ipairs(line_diagnostics) do | ||||
| @@ -707,6 +707,7 @@ do | ||||
|       -- TODO(ashkan) make format configurable? | ||||
|       local prefix = string.format("%d. ", i) | ||||
|       local hiname = severity_highlights[diagnostic.severity] | ||||
|       assert(hiname, 'unknown severity: ' .. tostring(diagnostic.severity)) | ||||
|       local message_lines = split_lines(diagnostic.message) | ||||
|       table.insert(lines, prefix..message_lines[1]) | ||||
|       table.insert(highlights, {#prefix + 1, hiname}) | ||||
|   | ||||
| @@ -861,4 +861,29 @@ describe('LSP', function() | ||||
|       ]]) | ||||
|     end) | ||||
|   end) | ||||
|   describe('lsp.util.show_line_diagnostics', function() | ||||
|     it('creates floating window and returns popup bufnr and winnr if current line contains diagnostics', function() | ||||
|       eq(3, exec_lua [[ | ||||
|         local buffer = vim.api.nvim_create_buf(false, true) | ||||
|         vim.api.nvim_buf_set_lines(buffer, 0, -1, false, { | ||||
|           "testing"; | ||||
|           "123"; | ||||
|         }) | ||||
|         local diagnostics = { | ||||
|           { | ||||
|             range = { | ||||
|               start = { line = 0; character = 1; }; | ||||
|               ["end"] = { line = 0; character = 3; }; | ||||
|             }; | ||||
|             severity = vim.lsp.protocol.DiagnosticSeverity.Error; | ||||
|             message = "Syntax error"; | ||||
|           }, | ||||
|         } | ||||
|         vim.api.nvim_win_set_buf(0, buffer) | ||||
|         vim.lsp.util.buf_diagnostics_save_positions(vim.fn.bufnr(buffer), diagnostics) | ||||
|         local popup_bufnr, winnr = vim.lsp.util.show_line_diagnostics() | ||||
|         return popup_bufnr | ||||
|       ]]) | ||||
|     end) | ||||
|   end) | ||||
| end) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user