diff --git a/.config/nvim/lua/plugins/lspconfig.lua b/.config/nvim/lua/plugins/lspconfig.lua index 50d2cea..5bc3165 100644 --- a/.config/nvim/lua/plugins/lspconfig.lua +++ b/.config/nvim/lua/plugins/lspconfig.lua @@ -8,8 +8,8 @@ vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(client, bufnr) - -- Enable completion triggered by - vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') -- Mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions @@ -23,7 +23,7 @@ local on_attach = function(client, bufnr) vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) vim.keymap.set('n', 'wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, bufopts) + end, bufopts) vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) @@ -31,52 +31,9 @@ local on_attach = function(client, bufnr) vim.keymap.set('n', 'ge', function () vim.diagnostic.goto_next() end, bufopts) vim.keymap.set('n', 'gE', function () vim.diagnostic.goto_prev() end, bufopts) vim.keymap.set('n', 'fo', function() vim.lsp.buf.format { async = true } end, bufopts) - vim.api.nvim_create_autocmd('BufWritePre', { - pattern = '', - callback = function() vim.lsp.buf.format({ async = true }) end - }) + -- vim.api.nvim_create_autocmd('BufWritePre', { + -- pattern = '', + -- callback = function() vim.lsp.buf.format({ async = true }) end + -- }) end -local lsp = require "lspconfig" - -lsp['hls'].setup{ - on_attach = on_attach, - flags = lsp_flags, -} - -lsp['rust_analyzer'].setup{ - - on_attach = on_attach, - flags = lsp_flags, - -- Server-specific settings... - settings = { - ["rust-analyzer"] = {} - } -} -lsp['texlab'].setup{ - on_attach = on_attach, - flags = lsp_flags, -} -lsp['sumneko_lua'].setup{ - - settings = { - Lua = { - runtime = { - -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) - version = 'LuaJIT', - }, - diagnostics = { - -- Get the language server to recognize the `vim` global - globals = {'vim'}, - }, - workspace = { - -- Make the server aware of Neovim runtime files - library = vim.api.nvim_get_runtime_file("", true), - }, - -- Do not send telemetry data containing a randomized but unique identifier - telemetry = { - enable = false, - }, - }, - }, -} diff --git a/.config/nvim/lua/plugins/mason-lspconfig.lua b/.config/nvim/lua/plugins/mason-lspconfig.lua index 2234257..dc461ef 100644 --- a/.config/nvim/lua/plugins/mason-lspconfig.lua +++ b/.config/nvim/lua/plugins/mason-lspconfig.lua @@ -1,4 +1,19 @@ -require("mason-lspconfig").setup({ - ensure_installed = { "sumneko_lua", "rust_analyzer" , "texlab"}, +local mason_lspconfig = require "mason-lspconfig" + +mason_lspconfig.setup({ + ensure_installed = { "sumneko_lua", "rust_analyzer" , "texlab", "hls"}, automatic_installation = true }) + +local lspconfig = require "lspconfig" + +mason_lspconfig.setup_handlers { + + -- This is a default handler that will be called for each installed server (also for new servers that are installed during a session) + function (server_name) + lspconfig[server_name].setup { + on_attach = on_attach, + flags = lsp_flags, + } + end, +}