]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/plugin/lsp.vim
HI flag
[dotfiles.git] / vim / .vim / plugin / lsp.vim
index 1adfbe5a9448533f7fcc4571e71b32ea57ecc26f..a342e3cfe3398e2a0075bc5fe5edd49b29dbccc3 100644 (file)
@@ -1,21 +1,32 @@
 vim9script
 
 # go get golang.org/x/tools/gopls@latest
-# pip install 'python-language-server[all]'
+# pip install "python-language-server[all]"
 
 var lspServers: list<dict<any>>
 
 for d in [
     {
-        filetype: ["c", "cpp"],
+        filetype: ["c", "ch", "cpp"],
         path: "clangd",
         args: ["--log=error"],
     },
     {
-        filetype: ["go"],
+        filetype: ["go", "gomod"],
         path: "gopls",
         syncInit: true,
     },
+    {
+        filetype: ["python"],
+        path: "pyls",
+        syncInit: true,
+        workspaceConfig: {pyls: {
+            configurationSources: ["flake8"],
+            plugins: {
+                mccabe: {enabled: false},
+            },
+        }},
+    },
 ]
     if executable(d["path"])
         add(lspServers, d)
@@ -25,14 +36,22 @@ endfor
 var lspOpts = {
     ignoreMissingServer: true,
     autoComplete: false,
+
     autoHighlight: true,
     autoPopulateDiags: true,
+
+    # Lint warning only on status line, do not show near cursor
+    showDiagInPopup: false,
+    showDiagOnStatusLine: true,
     showSignature: false,
 }
 
+set omnifunc=g:LspOmniFunc
 autocmd VimEnter * call LspAddServer(lspServers)
 autocmd VimEnter * call LspOptionsSet(lspOpts)
 autocmd CursorMoved * silent! LspDiagCurrent
 nmap gd :LspGotoDefinition<CR>
 nmap <C-W>gd :vert LspGotoDefinition<CR>
 nmap <F6> :lopen<CR>
+nmap [l :LspDiagPrev<CR>
+nmap ]l :LspDiagNext<CR>