mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	fix(diagnostic): escape special chars in file names (#16527)
Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Gregory Anders <greg@gpanders.com>
This commit is contained in:
		| @@ -658,7 +658,10 @@ function M.set(namespace, bufnr, diagnostics, opts) | ||||
|  | ||||
|   vim.api.nvim_buf_call(bufnr, function() | ||||
|     vim.api.nvim_command( | ||||
|       string.format("doautocmd <nomodeline> DiagnosticChanged %s", vim.api.nvim_buf_get_name(bufnr)) | ||||
|       string.format( | ||||
|         "doautocmd <nomodeline> DiagnosticChanged %s", | ||||
|         vim.fn.fnameescape(vim.api.nvim_buf_get_name(bufnr)) | ||||
|       ) | ||||
|     ) | ||||
|   end) | ||||
| end | ||||
| @@ -1333,7 +1336,7 @@ function M.reset(namespace, bufnr) | ||||
|   end | ||||
|  | ||||
|   vim.api.nvim_command( | ||||
|       string.format("doautocmd <nomodeline> DiagnosticChanged %s", vim.api.nvim_buf_get_name(bufnr)) | ||||
|       string.format("doautocmd <nomodeline> DiagnosticChanged %s", vim.fn.fnameescape(vim.api.nvim_buf_get_name(bufnr))) | ||||
|   ) | ||||
| end | ||||
|  | ||||
|   | ||||
| @@ -1918,5 +1918,27 @@ describe('vim.diagnostic', function() | ||||
|         return {show_called, hide_called} | ||||
|       ]]) | ||||
|     end) | ||||
|  | ||||
|     it('triggers the autocommand when diagnostics are set', function() | ||||
|       eq(1, exec_lua [[ | ||||
|         vim.g.diagnostic_autocmd_triggered = 0 | ||||
|         vim.cmd('autocmd DiagnosticChanged * let g:diagnostic_autocmd_triggered = 1') | ||||
|         vim.api.nvim_buf_set_name(diagnostic_bufnr, "test | test") | ||||
|         vim.diagnostic.set(diagnostic_ns, diagnostic_bufnr, { | ||||
|           make_error('Diagnostic', 0, 0, 0, 0) | ||||
|         }) | ||||
|         return vim.g.diagnostic_autocmd_triggered | ||||
|       ]]) | ||||
|       end) | ||||
|  | ||||
|     it('triggers the autocommand when diagnostics are cleared', function() | ||||
|       eq(1, exec_lua [[ | ||||
|         vim.g.diagnostic_autocmd_triggered = 0 | ||||
|         vim.cmd('autocmd DiagnosticChanged * let g:diagnostic_autocmd_triggered = 1') | ||||
|         vim.api.nvim_buf_set_name(diagnostic_bufnr, "test | test") | ||||
|         vim.diagnostic.reset(diagnostic_ns, diagnostic_bufnr) | ||||
|         return vim.g.diagnostic_autocmd_triggered | ||||
|       ]]) | ||||
|       end) | ||||
|   end) | ||||
| end) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Matthew Toohey
					Matthew Toohey