From: Andreas Louv Date: Sat, 20 May 2023 19:44:46 +0000 (+0200) Subject: Add test for "processDiagHandler" X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=a887e2c6bcd6ef2bee59b2ded8026ac8ed1af478;p=vim-lsp.git Add test for "processDiagHandler" --- diff --git a/test/clangd_tests.vim b/test/clangd_tests.vim index fe7c947..576086d 100644 --- a/test/clangd_tests.vim +++ b/test/clangd_tests.vim @@ -6,6 +6,8 @@ source common.vim var lspOpts = {autoComplete: false, highlightDiagInline: true} g:LspOptionsSet(lspOpts) +g:LSPTest_modifyDiags = false + var lspServers = [{ filetype: ['c', 'cpp'], path: (exepath('clangd-15') ?? exepath('clangd')), @@ -15,6 +17,16 @@ var lspServers = [{ 'textDocument/clangd.fileStatus': (lspserver: dict, reply: dict) => { g:LSPTest_customNotificationHandlerReplied = true } + }, + processDiagHandler: (diags: list>) => { + if g:LSPTest_modifyDiags != true + return diags + endif + + return diags->map((ix, diag) => { + diag.message = $'this is overridden' + return diag + }) } }] call LspAddServer(lspServers) @@ -314,6 +326,35 @@ def g:Test_LspDiag() :%bw! enddef +# Test for LSP diagnostics handler +def g:Test_LspProcessDiagHandler() + g:LSPTest_modifyDiags = true + g:LspOptionsSet({showDiagInPopup: false}) + + :silent! edit Xtest.c + sleep 200m + var lines: list =<< trim END + void blueFunc() + { + int count, j: + } + END + setline(1, lines) + g:WaitForServerFileLoad(1) + :redraw! + normal gg + + :LspDiagFirst + assert_equal([3, 14], [line('.'), col('.')]) + + var output = execute('LspDiagCurrent')->split("\n") + assert_equal("this is overridden", output[0]) + + g:LspOptionsSet({showDiagInPopup: true}) + g:LSPTest_modifyDiags = false + :%bw! +enddef + # Test that the client have been able to configure the server to speak utf-32 def g:Test_UnicodeColumnCalc() :silent! edit Xtest.c