From aa72c826c0353920fd12edea4c3e9fe0ebbd0f71 Mon Sep 17 00:00:00 2001 From: Fabian Schmidt Date: Sun, 26 Feb 2023 13:20:49 +0100 Subject: [PATCH] Moved lsp config into plugin file --- init.lua | 1 - lazy-lock.json | 18 ++-- lua/maps.lua | 16 ---- lua/plugins/lsp.lua | 178 ++++++++++++++++++++++++++++++++++-- lua/plugins/navigation.lua | 2 +- lua/plugins/writing.lua | 5 +- lua/settings/completion.lua | 73 --------------- lua/settings/init.lua | 11 --- lua/settings/lsp.lua | 91 ------------------ lua/settings/luasnip.lua | 3 - 10 files changed, 183 insertions(+), 215 deletions(-) delete mode 100644 lua/settings/completion.lua delete mode 100644 lua/settings/init.lua delete mode 100644 lua/settings/lsp.lua delete mode 100644 lua/settings/luasnip.lua diff --git a/init.lua b/init.lua index 70b3702..aaa32a5 100644 --- a/init.lua +++ b/init.lua @@ -15,7 +15,6 @@ vim.g.mapleader = " " require("lazy").setup("plugins") require("maps").init() require("commands") -require("settings").init() vim.opt.backup = false vim.opt.undodir = '/Users/fschmidt/.cache/nvim/undodir' diff --git a/lazy-lock.json b/lazy-lock.json index 94a1c23..b4fe742 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,5 +1,5 @@ { - "LuaSnip": { "branch": "master", "commit": "d33cf7de14eea209b8ed4a7edaed72f0b8cedb30" }, + "LuaSnip": { "branch": "master", "commit": "f7c845749aba6096f041a73a26ba64f3817bab99" }, "bufferline.nvim": { "branch": "main", "commit": "52d6acabb79c8c0942f8873a0ca7848eb2159267" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "8fcc934a52af96120fe26358985c10c035984b53" }, @@ -8,22 +8,20 @@ "cmp-nvim-lua": { "branch": "main", "commit": "f3491638d123cfd2c8048aefaf66d246ff250ca6" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, - "dashboard-nvim": { "branch": "master", "commit": "a6e3536400c79f20d23b904a89d95efc6a6ac717" }, + "dashboard-nvim": { "branch": "master", "commit": "398ba8d9390c13c87a964cbca756319531fffdb7" }, "fidget.nvim": { "branch": "main", "commit": "688b4fec4517650e29c3e63cfbb6e498b3112ba1" }, "gitsigns.nvim": { "branch": "main", "commit": "f388995990aba04cfdc7c3ab870c33e280601109" }, - "goyo.vim": { "branch": "master", "commit": "7f5d35a65510083ea5c2d0941797244b9963d4a9" }, "kanagawa.nvim": { "branch": "master", "commit": "4c8d48726621a7f3998c7ed35b2c2535abc22def" }, "lazy.nvim": { "branch": "main", "commit": "8077428e63feb0f3bf795d53b23ba1695b28ab0e" }, - "limelight.vim": { "branch": "master", "commit": "86aaec1700b27618d33d6182f44691d84d2cb6e5" }, "lspkind-nvim": { "branch": "master", "commit": "c68b3a003483cf382428a43035079f78474cd11e" }, "lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "93e58e100f37ef4fb0f897deeed20599dae9d128" }, - "mason.nvim": { "branch": "main", "commit": "5b9fd3822d686092c7ee08adfcbd2c764def22c5" }, - "nvim-autopairs": { "branch": "master", "commit": "bde7a1b4534e0a4c2451a738379cd628ba65eba7" }, - "nvim-cmp": { "branch": "main", "commit": "ba7a53478d0726683d1597ad1e814695033dcb4b" }, - "nvim-lspconfig": { "branch": "master", "commit": "91998cef4b1ae3a624901d0f9c894409db24e760" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "3f9c0ea157e88b08e2d11ec65002eeb6e421f0da" }, + "mason.nvim": { "branch": "main", "commit": "63cff223169324a2e633954ac580c7c327182a97" }, + "nvim-autopairs": { "branch": "master", "commit": "6a5faeabdbcc86cfbf1561ae430a451a72126e81" }, + "nvim-cmp": { "branch": "main", "commit": "7a3b1e76f74934b12fda82158237c6ad8bfd3d40" }, + "nvim-lspconfig": { "branch": "master", "commit": "62856b20751b748841b0f3ec5a10b1e2f6a6dbc9" }, "nvim-tree.lua": { "branch": "master", "commit": "9c97e6449b0b0269bd44e1fd4857184dfa57bb4c" }, - "nvim-treesitter": { "branch": "master", "commit": "2277c0c2a7d1aca2979285621ac5c82787b25dd2" }, + "nvim-treesitter": { "branch": "master", "commit": "b4d8b7e5a374b800838a13aa6829ac4d542c6f1c" }, "nvim-web-devicons": { "branch": "master", "commit": "4709a504d2cd2680fb511675e64ef2790d491d36" }, "playground": { "branch": "master", "commit": "4044b53c4d4fcd7a78eae20b8627f78ce7dc6f56" }, "plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" }, diff --git a/lua/maps.lua b/lua/maps.lua index 9d12ff5..43aff28 100644 --- a/lua/maps.lua +++ b/lua/maps.lua @@ -42,21 +42,6 @@ function maps.centeredSearch() map('n', 'N', 'Nzzzv') end -function maps.moveToWindow() - map('t', 'ª', 'h') - map('t', 'º', 'j') - map('t', '∆', 'k') - map('t', '@', 'l') - map('i', 'ª', 'h') - map('i', 'º', 'j') - map('i', '∆', 'k') - map('i', '@', 'l') - map('n', 'ª', 'h') - map('n', 'º', 'j') - map('n', '∆', 'k') - map('n', '@', 'l') -end - function maps.init() vim.g.mapleader = " " @@ -69,7 +54,6 @@ function maps.init() maps.fixIndent() maps.moveByRow() maps.centeredSearch() - -- maps.moveToWindow() end return maps diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index ad7537f..e8d22d1 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,14 +1,171 @@ +local opts = { noremap = true, silent = true } +vim.keymap.set('n', '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) + +local lsp_attach = function(client, buf) + vim.api.nvim_buf_set_option(buf, "formatexpr", "v:lua.vim.lsp.formatexpr()") + vim.api.nvim_buf_set_option(buf, "omnifunc", "v:lua.vim.lsp.omnifunc") + vim.api.nvim_buf_set_option(buf, "tagfunc", "v:lua.vim.lsp.tagfunc") + + local bufopts = { noremap = true, silent = true, buffer = buf } + 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', '', vim.lsp.buf.signature_help, 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) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) +end + return { -- lsp - { 'williamboman/mason.nvim' }, - { 'williamboman/mason-lspconfig.nvim' }, - { 'neovim/nvim-lspconfig' }, + { + 'williamboman/mason.nvim', + config = true + }, + { + 'williamboman/mason-lspconfig.nvim', + config = true + }, + { + 'neovim/nvim-lspconfig', + config = function() + local capabilities = require('cmp_nvim_lsp').default_capabilities() + local lspconfig = require('lspconfig') + + lspconfig.lua_ls.setup { + capabilities = capabilities, + settings = { + Lua = { + diagnostics = { + globals = { 'vim' } + } + } + }, + on_attach = lsp_attach + } + lspconfig.tsserver.setup { + capabilities = capabilities, + on_attach = lsp_attach + } + lspconfig.gopls.setup { + capabilities = capabilities, + on_attach = lsp_attach + } + --lspconfig.rust_analyzer.setup { + -- capabilities = capabilities, + -- on_attach = lsp_attach + --} + require("rust-tools").setup({ + server = { + capabilities = capabilities, + on_attach = lsp_attach, + standalone = false + } + }) + lspconfig.bashls.setup { + capabilities = capabilities, + on_attach = lsp_attach + } + lspconfig.sqlls.setup({ + capabilities = capabilities, + on_attach = lsp_attach + }) + lspconfig.html.setup({ + capabilities = capabilities, + on_attach = lsp_attach + }) + lspconfig.cssls.setup({ + capabilities = capabilities, + on_attach = lsp_attach + }) + lspconfig.tailwindcss.setup({ + capabilities = capabilities, + on_attach = lsp_attach + }) + capabilities.textDocument.completion.completionItem.snippetSupport = true + lspconfig.emmet_ls.setup({ + capabilities = capabilities, + on_attach = lsp_attach + }) + end + }, { 'simrat39/rust-tools.nvim' }, { 'onsails/lspkind-nvim' }, -- pictograms replace (?) with lspsaga { 'j-hui/fidget.nvim' }, -- show lsp status -- completion { 'hrsh7th/nvim-cmp', + config = function() + local cmp = require('cmp') + local lspkind = require('lspkind') + + vim.opt.shortmess:append 'c' + + cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Insert }, + [""] = cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Insert }, + [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), + [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), + [''] = cmp.mapping.confirm({ + behavior = cmp.ConfirmBehavior.Insert, + select = true + }), + [''] = cmp.mapping({ + i = cmp.mapping.abort(), + c = cmp.mapping.close(), + }), + [''] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lua' }, + { name = 'nvim_lsp' }, + { name = 'path' }, + { name = 'luasnip' }, + { name = 'nvim_lsp_signature_help' }, + }, { + { name = 'buffer', keyword_length = 5 }, + }), + formatting = { + format = lspkind.cmp_format { + with_text = true, + menu = { + buffer = "[buf]", + nvim_lsp = "[LSP]", + nvim_lua = "[api]", + path = "[path]", + luasnip = "[snip]", + } + } + } + }) + + -- Use buffer source for `/` (basically search words in buffer) + cmp.setup.cmdline('/', { + sources = { + { name = 'buffer' } + } + }) + + -- Use cmdline & path source for ':' + cmp.setup.cmdline(':', { + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) + }) + end, event = 'InsertEnter', dependencies = { 'hrsh7th/cmp-nvim-lsp', @@ -17,12 +174,19 @@ return { 'hrsh7th/cmp-path', 'hrsh7th/cmp-nvim-lua', 'hrsh7th/cmp-cmdline', - -- snippets needed for cmp - 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip', - 'windwp/nvim-autopairs', } - } + }, + { + 'L3MON4D3/LuaSnip', + config = function() + require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets/" }) + end + }, + { + 'windwp/nvim-autopairs', + config = true + }, } -- -- Linting & formtatting -- 'jose-elias-alvarez/null-ls.nvim'; diff --git a/lua/plugins/navigation.lua b/lua/plugins/navigation.lua index 0ebb5da..51d38d1 100644 --- a/lua/plugins/navigation.lua +++ b/lua/plugins/navigation.lua @@ -6,7 +6,7 @@ return { }, { 'nvim-tree/nvim-tree.lua', - config = function () + config = function() require('nvim-tree').setup { disable_netrw = true, hijack_netrw = true, diff --git a/lua/plugins/writing.lua b/lua/plugins/writing.lua index 5c5fb3d..615ad98 100644 --- a/lua/plugins/writing.lua +++ b/lua/plugins/writing.lua @@ -2,10 +2,11 @@ return { -- writing { 'vimwiki/vimwiki', + ft = { 'md', 'wiki', 'tex' }, config = function() vim.g.vimwiki_list = { { path = '~/Documents/Buch/wiki', syntax = 'markdown', ext = '.md' } } end }, - { 'junegunn/goyo.vim' }, -- try raplcing these 2 at some point because they don't work that well anymore - { 'junegunn/limelight.vim' }, + --{ 'junegunn/goyo.vim' }, -- try replacing these 2 at some point because they don't work that well anymore + --{ 'junegunn/limelight.vim' }, } diff --git a/lua/settings/completion.lua b/lua/settings/completion.lua deleted file mode 100644 index 05b4e99..0000000 --- a/lua/settings/completion.lua +++ /dev/null @@ -1,73 +0,0 @@ --- Completion - -local completion = {} -local cmp = require('cmp') -local lspkind = require('lspkind') - -vim.opt.shortmess:append 'c' - -cmp.setup({ - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) - end, - }, - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping.select_next_item { behavior = cmp.SelectBehavior.Insert }, - [""] = cmp.mapping.select_prev_item { behavior = cmp.SelectBehavior.Insert }, - [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), - [''] = cmp.mapping.confirm({ - behavior = cmp.ConfirmBehavior.Insert, - select = true - }), - [''] = cmp.mapping({ - i = cmp.mapping.abort(), - c = cmp.mapping.close(), - }), - [''] = cmp.mapping.confirm({ select = true }), - }), - sources = cmp.config.sources({ - { name = 'nvim_lua' }, - { name = 'nvim_lsp' }, - { name = 'path' }, - { name = 'luasnip' }, - { name = 'nvim_lsp_signature_help' }, - }, { - { name = 'buffer', keyword_length = 5 }, - }), - formatting = { - format = lspkind.cmp_format { - with_text = true, - menu = { - buffer = "[buf]", - nvim_lsp = "[LSP]", - nvim_lua = "[api]", - path = "[path]", - luasnip = "[snip]", - } - } - } -}) - --- Use buffer source for `/` (basically search words in buffer) -cmp.setup.cmdline('/', { - sources = { - { name = 'buffer' } - } -}) - --- Use cmdline & path source for ':' -cmp.setup.cmdline(':', { - sources = cmp.config.sources({ - { name = 'path' } - }, { - { name = 'cmdline' } - }) -}) - --- autopair -require('nvim-autopairs').setup {} - -return completion diff --git a/lua/settings/init.lua b/lua/settings/init.lua deleted file mode 100644 index cfdfd3d..0000000 --- a/lua/settings/init.lua +++ /dev/null @@ -1,11 +0,0 @@ --- settings.lua - -local settings = {} - -function settings.init() - require('settings.lsp').init() - require('settings.completion') - require('settings.luasnip') -end - -return settings diff --git a/lua/settings/lsp.lua b/lua/settings/lsp.lua deleted file mode 100644 index 38d778c..0000000 --- a/lua/settings/lsp.lua +++ /dev/null @@ -1,91 +0,0 @@ --- LSP Config - -local lsp = {} - -local opts = { noremap = true, silent = true } -vim.keymap.set('n', '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) - -local lsp_attach = function(client, buf) - vim.api.nvim_buf_set_option(buf, "formatexpr", "v:lua.vim.lsp.formatexpr()") - vim.api.nvim_buf_set_option(buf, "omnifunc", "v:lua.vim.lsp.omnifunc") - vim.api.nvim_buf_set_option(buf, "tagfunc", "v:lua.vim.lsp.tagfunc") - - local bufopts = { noremap = true, silent = true, buffer = buf } - 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', '', vim.lsp.buf.signature_help, 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) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) -end - -function lsp.init() - require('mason').setup() - require('mason-lspconfig').setup() - - local capabilities = require('cmp_nvim_lsp').default_capabilities() - local lspconfig = require('lspconfig') - - lspconfig.sumneko_lua.setup { - capabilities = capabilities, - settings = { - Lua = { - diagnostics = { - globals = { 'vim' } - } - } - }, - on_attach = lsp_attach - } - lspconfig.tsserver.setup { - capabilities = capabilities, - on_attach = lsp_attach - } - lspconfig.gopls.setup { - capabilities = capabilities, - on_attach = lsp_attach - } - --lspconfig.rust_analyzer.setup { - -- capabilities = capabilities, - -- on_attach = lsp_attach - --} - require("rust-tools").setup({ - server = { - capabilities = capabilities, - on_attach = lsp_attach, - standalone = false - } - }) - lspconfig.bashls.setup { - capabilities = capabilities, - on_attach = lsp_attach - } - lspconfig.sqlls.setup({ - capabilities = capabilities, - on_attach = lsp_attach - }) - lspconfig.html.setup({ - capabilities = capabilities, - on_attach = lsp_attach - }) - lspconfig.cssls.setup({ - capabilities = capabilities, - on_attach = lsp_attach - }) - lspconfig.tailwindcss.setup({ - capabilities = capabilities, - on_attach = lsp_attach - }) - capabilities.textDocument.completion.completionItem.snippetSupport = true - lspconfig.emmet_ls.setup({ - capabilities = capabilities, - on_attach = lsp_attach - }) -end - -return lsp diff --git a/lua/settings/luasnip.lua b/lua/settings/luasnip.lua deleted file mode 100644 index 6f5c7ba..0000000 --- a/lua/settings/luasnip.lua +++ /dev/null @@ -1,3 +0,0 @@ -local ls = require("luasnip") - -require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets/" })