diff --git a/init.lua b/init.lua index ad6b1b09..53dda7f5 100644 --- a/init.lua +++ b/init.lua @@ -1,6 +1,7 @@ -- General mappings require('plugins') require('nv-utils') +require('nv-globals') require('settings') require('keymappings') require('colorscheme') diff --git a/lua/lsp/js-ts-ls.lua b/lua/lsp/js-ts-ls.lua index a0bd7a88..b6e74825 100644 --- a/lua/lsp/js-ts-ls.lua +++ b/lua/lsp/js-ts-ls.lua @@ -8,6 +8,7 @@ -- require'illuminate'.on_attach(client) -- end require'lspconfig'.tsserver.setup { + cmd = {DATA_PATH .. "/lspinstall/typescript/node_modules/.bin/typescript-language-server", "--stdio"}, on_attach = require'lsp'.tsserver_on_attach, -- This makes sure tsserver is not used for formatting (I prefer prettier) -- on_attach = require'lsp'.common_on_attach, diff --git a/lua/lsp/lua-ls.lua b/lua/lsp/lua-ls.lua index 636200b5..5a5dae57 100644 --- a/lua/lsp/lua-ls.lua +++ b/lua/lsp/lua-ls.lua @@ -1,22 +1,7 @@ -- https://github.com/sumneko/lua-language-server/wiki/Build-and-Run-(Standalone) -USER = vim.fn.expand('$USER') - -local sumneko_root_path = "" -local sumneko_binary = "" - -if vim.fn.has("mac") == 1 then - sumneko_root_path = "/Users/" .. USER .. - "/.config/nvim/.language-servers/lua-language-server" - sumneko_binary = "/Users/" .. USER .. - "/.config/nvim/.language-servers/lua-language-server/bin/macOS/lua-language-server" -elseif vim.fn.has("unix") == 1 then - sumneko_root_path = "/home/" .. USER .. - "/.config/nvim/.language-servers/lua-language-server" - sumneko_binary = "/home/" .. USER .. - "/.config/nvim/.language-servers/lua-language-server/bin/Linux/lua-language-server" -else - print("Unsupported system for sumneko") -end +-- USER = vim.fn.expand('$USER') +local sumneko_root_path = DATA_PATH .. "/lspinstall/lua" +local sumneko_binary = sumneko_root_path .. "/sumneko-lua-language-server" require'lspconfig'.sumneko_lua.setup { cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}, @@ -35,10 +20,7 @@ require'lspconfig'.sumneko_lua.setup { }, workspace = { -- Make the server aware of Neovim runtime files - library = { - [vim.fn.expand('$VIMRUNTIME/lua')] = true, - [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true - } + library = {[vim.fn.expand('$VIMRUNTIME/lua')] = true, [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true} } } } diff --git a/lua/lsp/python-ls.lua b/lua/lsp/python-ls.lua index e040e8ae..4898a0b5 100644 --- a/lua/lsp/python-ls.lua +++ b/lua/lsp/python-ls.lua @@ -1,7 +1,8 @@ -- npm i -g pyright -- local capabilities = vim.lsp.protocol.make_client_capabilities() -- capabilities.textDocument.completion.completionItem.snippetSupport = true -require'lspconfig'.pyright.setup{ - on_attach = require'lsp'.common_on_attach, +require'lspconfig'.pyright.setup { + cmd = {DATA_PATH .. "/lspinstall/python/node_modules/.bin/pyright-langserver", "--stdio"}, + on_attach = require'lsp'.common_on_attach -- capabilities = capabilities } diff --git a/lua/nv-globals.lua b/lua/nv-globals.lua new file mode 100644 index 00000000..60fadff0 --- /dev/null +++ b/lua/nv-globals.lua @@ -0,0 +1,2 @@ +DATA_PATH = vim.fn.stdpath('data') +CACHE_PATH = vim.fn.stdpath('cache') diff --git a/lua/nv-utils/init.lua b/lua/nv-utils/init.lua index cc415497..ceb80d10 100644 --- a/lua/nv-utils/init.lua +++ b/lua/nv-utils/init.lua @@ -35,8 +35,8 @@ nv_utils.define_augroups({ {'BufWinEnter', '.sol', 'setlocal filetype=solidity'}, {'FileType', 'dashboard', 'set showtabline=0 | autocmd WinLeave set showtabline=2'}, - {'BufRead', '*.sol', 'setlocal filetype=solidity'}, - {'BufNewFile', '*.sol', 'setlocal filetype=solidity'}, + {'BufRead', '*.sol', 'setlocal filetype=solidity'}, {'BufNewFile', '*.sol', 'setlocal filetype=solidity'}, + {'BufWritePre', '*.jsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'}, {'BufWritePre', '*.js', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'}, {'BufWritePre', '*.py', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'}, diff --git a/lua/plugins.lua b/lua/plugins.lua index 1046d0f2..78bc5f04 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -27,6 +27,7 @@ return require('packer').startup(function(use) use 'onsails/lspkind-nvim' use 'kosayoda/nvim-lightbulb' use 'mfussenegger/nvim-jdtls' + use 'kabouzeid/nvim-lspinstall' -- Debugging use 'mfussenegger/nvim-dap'