added lspconfig+lspinstall configs!
This commit is contained in:
		
							parent
							
								
									2d7ccc16f2
								
							
						
					
					
						commit
						b2cefbe3b8
					
				| @ -1,4 +1,4 @@ | |||||||
| function on_attach(client) |  function on_attach(client) | ||||||
|     local function buf_set_keymap(...) |     local function buf_set_keymap(...) | ||||||
|         vim.api.nvim_buf_set_keymap(bufnr, ...) |         vim.api.nvim_buf_set_keymap(bufnr, ...) | ||||||
|     end |     end | ||||||
| @ -35,79 +35,56 @@ function on_attach(client) | |||||||
|     end |     end | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| local lspconf = require("lspconfig") | -- lspInstall + lspconfig stuff | ||||||
| 
 | 
 | ||||||
| -- these langs require same lspconfig so put em all in a table and loop through! | local function setup_servers() | ||||||
| local servers = {"html", "cssls", "tsserver", "pyright", "bashls", "clangd", "ccls"} |     require "lspinstall".setup() | ||||||
| 
 | 
 | ||||||
| for _, lang in ipairs(servers) do |     local lspconf = require("lspconfig") | ||||||
|   lspconf[lang].setup { |     local servers = require "lspinstall".installed_servers() | ||||||
|     on_attach = on_attach, |  | ||||||
|     root_dir = vim.loop.cwd |  | ||||||
|   } |  | ||||||
| end |  | ||||||
| 
 | 
 | ||||||
| -- vls conf example |     for _, lang in pairs(servers) do | ||||||
| local vls_binary = "/usr/local/bin/vls" |         if lang ~= "lua" then | ||||||
| lspconf.vls.setup { |             lspconf[lang].setup { | ||||||
|     cmd = {vls_binary} |                 on_attach = on_attach, | ||||||
| } |                 root_dir = vim.loop.cwd | ||||||
| 
 |  | ||||||
| -- lua lsp settings |  | ||||||
| USER = "/home/" .. vim.fn.expand("$USER") |  | ||||||
| 
 |  | ||||||
| local sumneko_root_path = USER .. "/.config/lua-language-server" |  | ||||||
| local sumneko_binary = USER .. "/.config/lua-language-server/bin/Linux/lua-language-server" |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| local lsp_installer = require'nvim-lsp-installer' |  | ||||||
| 
 |  | ||||||
| local installed_servers = lsp_installer.get_installed_servers() |  | ||||||
| 
 |  | ||||||
| for _, server in pairs(installed_servers) do |  | ||||||
|     opts = { |  | ||||||
|         on_attach = common_on_attach, |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     -- (optional) Customize the options passed to the server |  | ||||||
|     -- if server.name == "tsserver" then |  | ||||||
|     --     opts.root_dir = function() ... end |  | ||||||
|     -- end |  | ||||||
| 
 |  | ||||||
|     server:setup(opts) |  | ||||||
| end |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| lspconf.sumneko_lua.setup { |  | ||||||
|     cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}, |  | ||||||
|     root_dir = function() |  | ||||||
|         return vim.loop.cwd() |  | ||||||
|     end, |  | ||||||
|     settings = { |  | ||||||
|         Lua = { |  | ||||||
|             runtime = { |  | ||||||
|                 version = "LuaJIT", |  | ||||||
|                 path = vim.split(package.path, ";") |  | ||||||
|             }, |  | ||||||
|             diagnostics = { |  | ||||||
|                 globals = {"vim"} |  | ||||||
|             }, |  | ||||||
|             workspace = { |  | ||||||
|                 library = { |  | ||||||
|                     [vim.fn.expand("$VIMRUNTIME/lua")] = true, |  | ||||||
|                     [vim.fn.expand("$VIMRUNTIME/lua/vim/lsp")] = true |  | ||||||
|                 } |  | ||||||
|             }, |  | ||||||
|             telemetry = { |  | ||||||
|                 enable = false |  | ||||||
|             } |             } | ||||||
|         } |         elseif lang == "lua" then | ||||||
|     } |             lspconf.sumneko_lua.setup { | ||||||
| } |                 root_dir = function() | ||||||
|  |                     return vim.loop.cwd() | ||||||
|  |                 end, | ||||||
|  |                 settings = { | ||||||
|  |                     Lua = { | ||||||
|  |                         diagnostics = { | ||||||
|  |                             globals = {"vim"} | ||||||
|  |                         }, | ||||||
|  |                         workspace = { | ||||||
|  |                             library = { | ||||||
|  |                                 [vim.fn.expand("$VIMRUNTIME/lua")] = true, | ||||||
|  |                                 [vim.fn.expand("$VIMRUNTIME/lua/vim/lsp")] = true | ||||||
|  |                             } | ||||||
|  |                         }, | ||||||
|  |                         telemetry = { | ||||||
|  |                             enable = false | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         end | ||||||
|  |     end | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | setup_servers() | ||||||
|  | 
 | ||||||
|  | -- Automatically reload after `:LspInstall <server>` so we don't have to restart neovim | ||||||
|  | require "lspinstall".post_install_hook = function() | ||||||
|  |     setup_servers() -- reload installed servers | ||||||
|  |     vim.cmd("bufdo e") -- this triggers the FileType autocmd that starts the server | ||||||
|  | end | ||||||
| 
 | 
 | ||||||
| -- replace the default lsp diagnostic letters with prettier symbols | -- replace the default lsp diagnostic letters with prettier symbols | ||||||
| vim.fn.sign_define("LspDiagnosticsSignError", {text = "", numhl = "LspDiagnosticsDefaultError"}) | vim.fn.sign_define("LspDiagnosticsSignError", {text = "", numhl = "LspDiagnosticsDefaultError"}) | ||||||
| vim.fn.sign_define("LspDiagnosticsSignWarning", {text = "", numhl = "LspDiagnosticsDefaultWarning"}) | vim.fn.sign_define("LspDiagnosticsSignWarning", {text = "", numhl = "LspDiagnosticsDefaultWarning"}) | ||||||
| vim.fn.sign_define("LspDiagnosticsSignInformation", {text = "", numhl = "LspDiagnosticsDefaultInformation"}) | vim.fn.sign_define("LspDiagnosticsSignInformation", {text = "", numhl = "LspDiagnosticsDefaultInformation"}) | ||||||
| vim.fn.sign_define("LspDiagnosticsSignHint", {text = "", numhl = "LspDiagnosticsDefaultHint"}) | vim.fn.sign_define("LspDiagnosticsSignHint", {text = "", numhl = "LspDiagnosticsDefaultHint"}) | ||||||
| 
 |  | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user