From c5c05bfd40f1a349e7130395cad1c1cdceb95195 Mon Sep 17 00:00:00 2001 From: Edward Litherland-Smith Date: Thu, 4 Aug 2022 15:16:20 +0100 Subject: [PATCH] Move LSP config to dedicated lua file --- init.vim | 71 +++++--------------------------------------------- lsp_config.lua | 56 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 64 deletions(-) create mode 100644 lsp_config.lua diff --git a/init.vim b/init.vim index f1857236..5a795bb5 100644 --- a/init.vim +++ b/init.vim @@ -37,64 +37,7 @@ call plug#end() set mouse=nv let g:python3_host_prog = '~/.pyenv/versions/neovim3/bin/python' -lua << EOF --- Mappings. --- See `:help vim.diagnostic.*` for documentation on any of the below functions -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) -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') - - -- Mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - 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', '', vim.lsp.buf.signature_help, bufopts) - vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) - 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) - 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) - vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) -end - -local lsp_flags = { - -- This is the default in Nvim 0.7+ - debounce_text_changes = 150, -} -require('lspconfig')['pylsp'].setup{ - cmd = {"/home/elitherl/.pyenv/versions/neovim3/bin/pylsp"}, - on_attach = on_attach, - flags = lsp_flags, - settings = { - pylsp = { - plugins = { - pycodestyle = {maxLineLength = 88}, - flake8 = {maxLineLength = 88} - } - } - } -} -require('lspconfig')['fortls'].setup{ - cmd = {"/home/elitherl/.pyenv/versions/neovim3/bin/fortls"}, - on_attach = on_attach, - flags = lsp_flags, -} -EOF +luafile ~/.vim/lsp_config.lua map ; :Files if executable('ag') @@ -157,16 +100,16 @@ autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTr set splitbelow set splitright -function! GitStatus() - let [a,m,r] = GitGutterGetHunkSummary() - return printf('%s +%d ~%d -%d', FugitiveHead(), a, m, r) -endfunction - let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+' +" function! GitStatus() +" let [a,m,r] = GitGutterGetHunkSummary() +" return printf('%s +%d ~%d -%d', FugitiveHead(), a, m, r) +" endfunction +" " let g:slime_target = "tmux" " let g:slime_default_config = {"socket_name": get(split($TMUX, ","), 0), "target_pane": "{last}"} - +" " let g:lightline = { 'colorscheme': 'onehalfdark' } " let g:lightline.component_expand = { " \ 'linter_checking': 'lightline#ale#checking', diff --git a/lsp_config.lua b/lsp_config.lua new file mode 100644 index 00000000..269c21c6 --- /dev/null +++ b/lsp_config.lua @@ -0,0 +1,56 @@ +-- Mappings. +-- See `:help vim.diagnostic.*` for documentation on any of the below functions +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) +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') + + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + 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', '', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) + 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) + 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) + vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) +end + +local lsp_flags = { + -- This is the default in Nvim 0.7+ + debounce_text_changes = 150, +} +require('lspconfig')['pylsp'].setup{ + cmd = {"/home/elitherl/.pyenv/versions/neovim3/bin/pylsp"}, + on_attach = on_attach, + flags = lsp_flags, + settings = { + pylsp = { + plugins = { + pycodestyle = {maxLineLength = 88}, + flake8 = {maxLineLength = 88} + } + } + } +} +require('lspconfig')['fortls'].setup{ + cmd = {"/home/elitherl/.pyenv/versions/neovim3/bin/fortls"}, + on_attach = on_attach, + flags = lsp_flags, +}