diff options
| -rw-r--r-- | init.vim | 1 | ||||
| -rw-r--r-- | lua/lsp-wrapper.lua | 66 | ||||
| -rw-r--r-- | lua/lsp/general-ls.lua | 15 | ||||
| -rw-r--r-- | lua/lsp/lua-ls.lua | 60 | ||||
| -rw-r--r-- | plug-config/lsp-config.vim | 1 | ||||
| -rw-r--r-- | spell/en.utf-8.add | 16 | ||||
| -rw-r--r-- | spell/en.utf-8.add.spl | bin | 221 -> 463 bytes | |||
| -rwxr-xr-x | utils/easy-install-language-servers.sh | 11 | 
8 files changed, 100 insertions, 70 deletions
| @@ -25,6 +25,7 @@ else    source ~/.config/nvim/themes/nvcode.vim    " Plugin Configuration +  luafile ~/.config/nvim/lua/lsp/general-ls.lua    source ~/.config/nvim/keys/which-key.vim    source ~/.config/nvim/plug-config/vim-commentary.vim    source ~/.config/nvim/plug-config/rnvimr.vim diff --git a/lua/lsp-wrapper.lua b/lua/lsp-wrapper.lua index 7df60a7f..0771f1df 100644 --- a/lua/lsp-wrapper.lua +++ b/lua/lsp-wrapper.lua @@ -3,120 +3,120 @@ local lsp_wrapper = {}  -- buf  function lsp_wrapper.add_to_workspace_folder() -  vim.lsp.buf.add_workspace_folder() +    vim.lsp.buf.add_workspace_folder()  end  function lsp_wrapper.clear_references() -  vim.lsp.buf.clear_references() +    vim.lsp.buf.clear_references()  end  function lsp_wrapper.code_action() -  vim.lsp.buf.code_action() +    vim.lsp.buf.code_action()  end  function lsp_wrapper.declaration() -  vim.lsp.buf.declaration() -  vim.lsp.buf.clear_references() +    vim.lsp.buf.declaration() +    vim.lsp.buf.clear_references()  end  function lsp_wrapper.definition() -  vim.lsp.buf.definition() -  vim.lsp.buf.clear_references() +    vim.lsp.buf.definition() +    vim.lsp.buf.clear_references()  end  function lsp_wrapper.document_highlight() -  vim.lsp.buf.document_highlight() +    vim.lsp.buf.document_highlight()  end  function lsp_wrapper.document_symbol() -  vim.lsp.buf.document_symbol() +    vim.lsp.buf.document_symbol()  end  function lsp_wrapper.formatting() -  vim.lsp.buf.formatting() +    vim.lsp.buf.formatting()  end  function lsp_wrapper.formatting_sync() -  vim.lsp.buf.formatting_sync() +    vim.lsp.buf.formatting_sync()  end  function lsp_wrapper.hover() -  vim.lsp.buf.hover() +    vim.lsp.buf.hover()  end  function lsp_wrapper.implementation() -  vim.lsp.buf.implementation() +    vim.lsp.buf.implementation()  end  function lsp_wrapper.incoming_calls() -  vim.lsp.buf.incoming_calls() +    vim.lsp.buf.incoming_calls()  end  function lsp_wrapper.list_workspace_folders() -  vim.lsp.buf.list_workspace_folders() +    vim.lsp.buf.list_workspace_folders()  end  function lsp_wrapper.outgoing_calls() -  vim.lsp.buf.outgoing_calls() +    vim.lsp.buf.outgoing_calls()  end  function lsp_wrapper.range_code_action() -  vim.lsp.buf.range_code_action() +    vim.lsp.buf.range_code_action()  end  function lsp_wrapper.range_formatting() -  vim.lsp.buf.range_formatting() +    vim.lsp.buf.range_formatting()  end  function lsp_wrapper.references() -  vim.lsp.buf.references() -  vim.lsp.buf.clear_references() +    vim.lsp.buf.references() +    vim.lsp.buf.clear_references()  end  function lsp_wrapper.remove_workspace_folder() -  vim.lsp.buf.remove_workspace_folder() +    vim.lsp.buf.remove_workspace_folder()  end  function lsp_wrapper.rename() -  vim.lsp.buf.rename() +    vim.lsp.buf.rename()  end  function lsp_wrapper.signature_help() -  vim.lsp.buf.signature_help() +    vim.lsp.buf.signature_help()  end  function lsp_wrapper.type_definition() -  vim.lsp.buf.type_definition() +    vim.lsp.buf.type_definition()  end  function lsp_wrapper.workspace_symbol() -  vim.lsp.buf.workspace_symbol() +    vim.lsp.buf.workspace_symbol()  end  -- diagnostic  function lsp_wrapper.get_all() -  vim.lsp.diagnostic.get_all() +    vim.lsp.diagnostic.get_all()  end  function lsp_wrapper.get_next() -  vim.lsp.diagnostic.get_next() +    vim.lsp.diagnostic.get_next()  end  function lsp_wrapper.get_prev() -  vim.lsp.diagnostic.get_prev() +    vim.lsp.diagnostic.get_prev()  end  function lsp_wrapper.goto_next() -  vim.lsp.diagnostic.goto_next() +    vim.lsp.diagnostic.goto_next()  end  function lsp_wrapper.goto_prev() -  vim.lsp.diagnostic.goto_prev() +    vim.lsp.diagnostic.goto_prev()  end  function lsp_wrapper.show_line_diagnostics() -  vim.lsp.diagnostic.show_line_diagnostics() +    vim.lsp.diagnostic.show_line_diagnostics()  end  -- misc @@ -128,9 +128,6 @@ end  return lsp_wrapper - - -  -- You can see more about the differences in types here:  -- https://microsoft.github.io/language-server-protocol/specification#textDocument_documentHighlight @@ -141,7 +138,6 @@ return lsp_wrapper  --                                                           *hl-LspReferenceWrite*  -- LspReferenceWrite         used for highlighting "write" references -  --                                                    *lsp-highlight-diagnostics*  -- All highlights defined for diagnostics begin with `LspDiagnostics` followed by  -- the type of highlight (e.g., `Sign`, `Underline`, etc.) and then the Severity diff --git a/lua/lsp/general-ls.lua b/lua/lsp/general-ls.lua new file mode 100644 index 00000000..fa28dbcf --- /dev/null +++ b/lua/lsp/general-ls.lua @@ -0,0 +1,15 @@ +require"lspconfig".efm.setup { +    init_options = {documentFormatting = true}, +    filetypes = {"lua"}, +    settings = { +        rootMarkers = {".git/"}, +        languages = { +            lua = { +                { +                    formatCommand = "lua-format -i --no-keep-simple-function-one-line --no-break-after-operator --column-limit=150 --break-after-table-lb", +                    formatStdin = true +                } +            } +        } +    } +} diff --git a/lua/lsp/lua-ls.lua b/lua/lsp/lua-ls.lua index 22ffb529..c04219a9 100644 --- a/lua/lsp/lua-ls.lua +++ b/lua/lsp/lua-ls.lua @@ -1,47 +1,37 @@  -- https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone) --- TODO fix for different systems and put variable for user - -user="chris" +USER = vim.fn.expand('$USER')  local sumneko_root_path = ""  local sumneko_binary = "" -local system_name  if vim.fn.has("mac") == 1 then -  sumneko_root_path = "/Users/"..user.."/.config/nvim/lua-language-server" -  sumneko_binary = "/Users/"..user.."/.config/nvim/lua-language-server/bin/macOS/lua-language-server" +    sumneko_root_path = "/Users/" .. USER .. "/.config/nvim/lua-language-server" +    sumneko_binary = "/Users/" .. USER .. "/.config/nvim/lua-language-server/bin/macOS/lua-language-server"  elseif vim.fn.has("unix") == 1 then -  sumneko_root_path = "/home/"..user.."/.config/nvim/lua-language-server" -  sumneko_binary = "/home/"..user.."/.config/nvim/lua-language-server/bin/Linux/lua-language-server" -elseif vim.fn.has('win32') == 1 then -  -- sumneko_root_path = "/Users/chris/.config/nvim/lua-language-server" -  -- sumneko_binary = "/Users/chris/.config/nvim/lua-language-server/bin/macOS/lua-language-server" -  print("Unsupported system for me") +    sumneko_root_path = "/home/" .. USER .. "/.config/nvim/lua-language-server" +    sumneko_binary = "/home/" .. USER .. "/.config/nvim/lua-language-server/bin/Linux/lua-language-server"  else -  print("Unsupported system for sumneko") +    print("Unsupported system for sumneko")  end  require'lspconfig'.sumneko_lua.setup { -  cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}; -  settings = { -    Lua = { -      runtime = { -        -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) -        version = 'LuaJIT', -        -- Setup your lua path -        path = vim.split(package.path, ';'), -      }, -      diagnostics = { -        -- Get the language server to recognize the `vim` global -        globals = {'vim'}, -      }, -      workspace = { -        -- Make the server aware of Neovim runtime files -        library = { -          [vim.fn.expand('$VIMRUNTIME/lua')] = true, -          [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true, -        }, -      }, -    }, -  }, +    cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}, +    settings = { +        Lua = { +            runtime = { +                -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) +                version = 'LuaJIT', +                -- Setup your lua path +                path = vim.split(package.path, ';') +            }, +            diagnostics = { +                -- Get the language server to recognize the `vim` global +                globals = {'vim'} +            }, +            workspace = { +                -- Make the server aware of Neovim runtime files +                library = {[vim.fn.expand('$VIMRUNTIME/lua')] = true, [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true} +            } +        } +    }  } diff --git a/plug-config/lsp-config.vim b/plug-config/lsp-config.vim index 7dd605a2..d7bab5ff 100644 --- a/plug-config/lsp-config.vim +++ b/plug-config/lsp-config.vim @@ -10,5 +10,6 @@ nnoremap <silent> <C-n> <cmd>lua vim.lsp.diagnostic.goto_next()<CR>  " autoformat  autocmd BufWritePre *.js lua vim.lsp.buf.formatting_sync(nil, 100)  autocmd BufWritePre *.jsx lua vim.lsp.buf.formatting_sync(nil, 100) +autocmd BufWritePre *.lua lua vim.lsp.buf.formatting_sync(nil, 100)  " autocmd BufWritePre *.py lua vim.lsp.buf.formatting_sync(nil, 100) diff --git a/spell/en.utf-8.add b/spell/en.utf-8.add index cdaa1b28..a6c6d7bc 100644 --- a/spell/en.utf-8.add +++ b/spell/en.utf-8.add @@ -14,3 +14,19 @@ idc  repo  nvim  lspconfig +IDE +Neovim's +Ubuntu +VIMRUNTIME +lsp +LuaJIT +sumneko +unix +macOS +wiki +github +https +dir +efm +LuaRocks +LuaFormatter diff --git a/spell/en.utf-8.add.spl b/spell/en.utf-8.add.splBinary files differ index f14a6f00..82dc49e4 100644 --- a/spell/en.utf-8.add.spl +++ b/spell/en.utf-8.add.spl diff --git a/utils/easy-install-language-servers.sh b/utils/easy-install-language-servers.sh new file mode 100755 index 00000000..da54c11a --- /dev/null +++ b/utils/easy-install-language-servers.sh @@ -0,0 +1,11 @@ +npm i -g pyright +npm i -g bash-language-server +npm install -g vscode-css-languageserver-bin +npm install -g dockerfile-language-server-nodejs +npm install -g graphql-language-service-cli +npm install -g vscode-html-languageserver-bin +npm install -g typescript typescript-language-server +npm install -g vscode-json-languageserver +npm install -g vim-language-server +npm install -g yaml-language-server + | 
