diff options
| author | Mike Vink <mike1994vink@gmail.com> | 2022-10-29 14:35:33 +0200 |
|---|---|---|
| committer | Mike Vink <mike1994vink@gmail.com> | 2022-10-29 14:35:33 +0200 |
| commit | a39a1c7cb6a81764bb5c05155243c16c2ddfb7f6 (patch) | |
| tree | 2ae547e4632b8ce99e1c921bd8f5b37419fac4b3 /vim/.config/nvim/lua/vimrc/lsp.lua | |
| parent | 46eb3563ac990ef5172a8addefa7342d2cf39477 (diff) | |
move
Diffstat (limited to 'vim/.config/nvim/lua/vimrc/lsp.lua')
| -rw-r--r-- | vim/.config/nvim/lua/vimrc/lsp.lua | 322 |
1 files changed, 0 insertions, 322 deletions
diff --git a/vim/.config/nvim/lua/vimrc/lsp.lua b/vim/.config/nvim/lua/vimrc/lsp.lua deleted file mode 100644 index 94a2cc2..0000000 --- a/vim/.config/nvim/lua/vimrc/lsp.lua +++ /dev/null @@ -1,322 +0,0 @@ -local utils = require 'vimrc.utils' -local M = {} - --- TODO: parameterise --- TODO: extend stuff later - -M.client_log = {} - --- local functions {{{ -local function on_publish_diagnostics(_, result, ctx, config) - vim.lsp.diagnostic.on_publish_diagnostics(_, result, ctx, config) - vim.diagnostic.setloclist({ - open = false - }) -end - -local function setup_handlers(client, _) - client.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(on_publish_diagnostics, { - virtual_text = false, - underline = true, - update_in_insert = false, - severity_sort = true - }) -end - -local function setup_server_capabilities_maps(client, bufnr) - local map = vim.api.nvim_buf_set_keymap - local opts = { silent = true, noremap = true } - local capabilities = client.server_capabilities - - if capabilities.completion ~= false then - vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") - end - - if capabilities.hover ~= false then - vim.api.nvim_buf_set_option(bufnr, "keywordprg", ":LspHover") - end - - if capabilities.rename == true then - map(bufnr, "n", "<leader>gr", "<Cmd>lua vim.lsp.buf.rename()<CR>", opts) - end - - if capabilities.signature_help == true then - map(bufnr, "n", "<leader>gs", "<Cmd>lua vim.lsp.buf.signature_help()<CR>", opts) - end - - if capabilities.goto_definition ~= false then - map(bufnr, "n", "<leader>gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts) - end - - if capabilities.declaration == true then - map(bufnr, "n", "<leader>gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts) - end - - if capabilities.implementation == true then - map(bufnr, "n", "<leader>gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts) - end - - if capabilities.find_references ~= false then - map(bufnr, "n", "<leader>gg", "<cmd>lua vim.lsp.buf.references()<CR>", opts) - end - - map(bufnr, "n", "<leader>ge", "<cmd>lua require'vimrc.lsp'.line_diagnostic()<CR>", opts) - - if capabilities.document_symbol ~= false then - map(bufnr, "n", "<leader>gds", "<cmd>lua vim.lsp.buf.document_symbol()<CR>", opts) - end - - if capabilities.workspace_symbol ~= true then - map(bufnr, "n", "<leader>gw", "<cmd>lua vim.lsp.buf.workspace_symbol()<CR>", opts) - end - - if capabilities.code_action ~= false then - map(bufnr, "n", "<leader>ga", "<cmd>lua vim.lsp.buf.code_action()<CR>", opts) - end - - if capabilities.documentFormattingProvider == true then - vim.api.nvim_buf_set_option(bufnr, "formatexpr", "v:lua.vim.lsp.format()") - map(bufnr, "n", "<leader>gq", "<cmd>lua vim.lsp.buf.format({ async = true })<CR>", opts) - end - - if capabilities.document_range_formatting == true then - map(bufnr, "v", "<leader>gq", "<Esc><Cmd>lua vim.lsp.buf.range_formatting()<CR>", opts) - end - - if capabilities.hover ~= false then - vim.api.nvim_command("command! -buffer -nargs=1 LspHover lua vim.lsp.buf.hover()<CR>") - end -end - --- }}} - --- diagnostics {{{ -function M.line_diagnostic() - local line = vim.fn.line('.') - 1 - local diags = vim.diagnostic.get(0, { - lnum = line - }) - for _, diag in ipairs(diags) do - utils.log_warning(diag.message, diag.source) - end -end - --- }}} - --- setup {{{ -function M.setup() - - local buffer_setup = function(client) - table.insert(M.client_log, client) - local bufnr = vim.api.nvim_get_current_buf() - - setup_server_capabilities_maps(client, bufnr) - setup_handlers(client, bufnr) - require("lsp_signature").on_attach({ - bind = true, - floating_window = false, - toggle_key = "<C-g><C-s>", - extra_trigger_chars = { "{", "}" }, - hint_prefix = "@ ", - check_pumvisible = false - }, bufnr) - end - - local buffer_setup_no_format = function(client) - client.server_capabilities.document_formatting = false - buffer_setup(client) - end - - -- lspconfig {{{ - local lspconfig = require 'lspconfig' - -- check if docker is executable first? - local runtime_path = vim.split(package.path, ';') - table.insert(runtime_path, "lua/?.lua") - table.insert(runtime_path, "lua/?/init.lua") - - -- always load lua lsp - require('nlua.lsp.nvim').setup(require('lspconfig'), { - cmd = { "/lsp/bin/lua-language-server", "-E", "/lsp/main.lua" }, - on_attach = buffer_setup_no_format, - - -- Include globals you want to tell the LSP are real :) - globals = { - -- Colorbuddy - "Color", "c", "Group", "g", "s", - } - }) - - -- lspconfig.sumneko_lua.setup { - -- filetypes = { "lua" }, - -- on_attach = buffer_setup_no_format, - -- settings = { - -- Lua = { - -- completion = { - -- keywordSnippet = "Disable", - -- showWord = "Disable", - -- }, - -- diagnostics = { - -- enable = true, - -- globals = vim.list_extend({ - -- -- Neovim - -- "vim", - -- -- Busted - -- "describe", "it", "before_each", "after_each", "teardown", "pending", "clear" - -- }, {}) - -- }, - -- runtime = { - -- version = "LuaJIT", - -- }, - -- workspace = { - -- vim.list_extend(get_lua_runtime(), {}), - -- maxPreload = 10000, - -- preloadFileSize = 10000, - -- }, - -- } - -- } - -- } - - -- out = vim.fn.system('docker images -q mvinkio/azure-pipelines-lsp') - -- if string.len(out) ~= 0 then - -- lspconfig.yamlls.setup { - -- before_init = function(params) - -- params.processId = vim.NIL - -- end, - -- on_new_config = function(new_config, new_root_dir) - -- new_config.cmd = { - -- "node", - -- new_root_dir, - -- home .. "/projects/devops-pipelines/node_modules/azure-pipelines-language-server/out/server.js", - -- "--stdio" - -- } - -- end, - -- filetypes = { "yaml" }, - -- root_dir = lspconfig.util.root_pattern(".git", vim.fn.getcwd()), - -- on_attach = buffer_setup_no_format, - -- settings = { - -- yaml = { - -- format = { - -- enable = true - -- }, - -- schemas = { - -- [home .. "/projects/devops-pipelines/schema"] = "/*" - -- }, - -- validate = true - -- } - -- } - -- } - -- else - -- utils.log_warning("No image mvinkio/azure-pipelines-lsp.", "vimrc/lsp", true) - -- end - - local out = vim.fn.system('docker images -q mvinkio/python') - if string.len(out) ~= 0 then - lspconfig.pyright.setup { - cmd = { - "docker", - "run", - "--rm", - "--env-file=" .. vim.fn.getcwd() .. "/.env", - "--interactive", - "--workdir=" .. vim.fn.getcwd(), - "--volume=" .. vim.fn.getcwd() .. ":" .. vim.fn.getcwd(), - "mvinkio/python", - "pyright-langserver", "--stdio" - }, - on_new_config = function(new_config, new_root_dir) - new_config.cmd = { - "docker", - "run", - "--rm", - "--env-file=" .. new_root_dir .. "/.env", - "--interactive", - "--workdir=" .. new_root_dir, - "--volume=" .. new_root_dir .. ":" .. new_root_dir, - "mvinkio/python", - "pyright-langserver", "--stdio" - } - end, - filetypes = { "python" }, - root_dir = lspconfig.util.root_pattern(".git", vim.fn.getcwd()), - on_attach = buffer_setup_no_format, - } - else - utils.log_warning("No image mvinkio/python.", "vimrc/lsp", true) - end - - out = vim.fn.system('docker images -q mvinkio/go') - if string.len(out) ~= 0 then - lspconfig.gopls.setup { - before_init = function(params) - params.processId = vim.NIL - end, - on_new_config = function(new_config, new_root_dir) - new_config.cmd = { - "docker", - "run", - "--rm", - "--interactive", - "-e=GOPROXY=https://proxy.golang.org", - "-e=GOOS=linux", - "-e=GOARCH=amd64", - "-e=GOPATH=" .. new_root_dir .. "/go", - "-e=GOCACHE=" .. new_root_dir .. "/.cache/go-build", - "--workdir=" .. new_root_dir, - "--volume=" .. new_root_dir .. ":" .. new_root_dir, - "--network=bridge", - "mvinkio/go", - "gopls" - } - end, - -- cmd = { "docker", "run", "--rm", "-i", "-v", home .. ":" .. home, "mvinkio/gopls" }, - filetypes = { "go", "gomod", "gotmpl" }, - on_attach = buffer_setup_no_format, - } - else - utils.log_warning("No image mvinkio/go.", "vimrc/lsp", true) - end - - -- out = vim.fn.system('docker images -q mvinkio/sveltels') - -- if string.len(out) ~= 0 then - -- lspconfig.svelte.setup { - -- before_init = function(params) - -- params.processId = vim.NIL - -- end, - -- cmd = { - -- "docker", - -- "run", - -- "--rm", - -- "--interactive", - -- "--volume=" .. home .. ":" .. home, - -- "--network=none", - -- "mvinkio/sveltels" - -- }, - -- on_attach = buffer_setup, - -- } - -- else - -- utils.log_warning("No image mvinkio/sveltels.", "vimrc/lsp", true) - -- end - - -- }}} - - local null_ls = require("null-ls") - local my_black = null_ls.builtins.formatting.black.with({ - filetypes = { "python" }, - command = "black", - args = { "$FILENAME" } - }) - null_ls.setup({ - debug = vim.fn.expand("$VIMRC_NULL_LS_DEBUG") == "1", - update_on_insert = false, - on_attach = buffer_setup, - sources = { - my_black, - null_ls.builtins.completion.luasnip - } - }) -end - --- }}} - -return M --- vim: fdm=marker |
