diff options
Diffstat (limited to '.config/nvim/lua/lsp.lua')
| -rw-r--r-- | .config/nvim/lua/lsp.lua | 73 |
1 files changed, 60 insertions, 13 deletions
diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/lua/lsp.lua index 1cbfb5e..632c355 100644 --- a/.config/nvim/lua/lsp.lua +++ b/.config/nvim/lua/lsp.lua @@ -1,5 +1,5 @@ -- See `:help vim.diagnostic.*` for documentation on any of the below functions -local opts = { noremap=true, silent=true } +local opts = { noremap = true, silent = true } vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) @@ -11,18 +11,17 @@ vim.lsp.set_log_level("debug") -- after the language server attaches to the current buffer local on_attach = function(client, bufnr) -- Enable completion triggered by <c-x><c-o> - vim.api.nvim_buf_set_option(bufnr, "formatexpr", "v:lua.vim.lsp.formatexpr()") - vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") - vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc") + vim.api.nvim_buf_set_option(bufnr, "formatexpr", "v:lua.vim.lsp.formatexpr()") + vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") + vim.api.nvim_buf_set_option(bufnr, "tagfunc", "v:lua.vim.lsp.tagfunc") -- Mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions - local bufopts = { noremap=true, silent=true, buffer=bufnr } + local bufopts = { noremap = true, silent = true, buffer = bufnr } vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) - vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts) vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts) vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts) vim.keymap.set('n', '<space>wl', function() @@ -40,9 +39,9 @@ end local capabilities = require("cmp_nvim_lsp").default_capabilities() -- Setup rust_analyzer via rust-tools.nvim require("rust-tools").setup({ - server = { - capabilities = capabilities, - on_attach = on_attach, + server = { + capabilities = capabilities, + on_attach = on_attach, settings = { ['rust-analyzer'] = { cargo = { @@ -50,7 +49,7 @@ require("rust-tools").setup({ } } } - } + } }) -- https://github.com/ray-x/go.nvim#lsp-cmp-support @@ -80,7 +79,7 @@ lspconfig['dotls'].setup({ }) -lspconfig.yamlls.setup{ +lspconfig.yamlls.setup { settings = { yaml = { -- FIX mapKeyOrder warning @@ -89,11 +88,59 @@ lspconfig.yamlls.setup{ } } +lspconfig.lua_ls.setup { + on_attach = on_attach, + capabilities = capabilities, + on_init = function(client) + local path = client.workspace_folders[1].name + if not vim.loop.fs_stat(path .. '/.luarc.json') and not vim.loop.fs_stat(path .. '/.luarc.jsonc') then + client.config.settings = vim.tbl_deep_extend('force', client.config.settings, { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using + -- (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT' + }, + -- Make the server aware of Neovim runtime files + workspace = { + checkThirdParty = false, + library = { + vim.env.VIMRUNTIME + -- "${3rd}/luv/library" + -- "${3rd}/busted/library", + } + -- or pull in all of 'runtimepath'. NOTE: this is a lot slower + -- library = vim.api.nvim_get_runtime_file("", true) + } + } + }) + + client.notify("workspace/didChangeConfiguration", { settings = client.config.settings }) + end + return true + end +} + +lspconfig.sqls.setup { + on_attach = function(client, bufnr) + require('sqls').on_attach(client, bufnr) + end, + sqls = { + connections = { + { + driver = 'sqlite3', + dataSourceName = '/home/algo/test.sqlite3', + }, + }, + }, +} + -- close quickfix menu after selecting choice vim.api.nvim_create_autocmd( "FileType", { - pattern={"qf"}, - command=[[nnoremap <buffer> <CR> <CR>:cclose<CR>]]}) + pattern = { "qf" }, + command = [[nnoremap <buffer> <CR> <CR>:cclose<CR>]] + }) vim.api.nvim_create_autocmd('BufWritePre', { pattern = '*.go', |
