feat: add mason lsp
This commit is contained in:
parent
18fc525867
commit
a9cb122592
13 changed files with 574 additions and 197 deletions
|
|
@ -3,78 +3,156 @@ if not status_ok then
|
|||
return
|
||||
end
|
||||
|
||||
|
||||
require'lspconfig'.hls.setup {}
|
||||
require'lspconfig'.pyright.setup {}
|
||||
require'lspconfig'.clangd.setup {}
|
||||
require'lspconfig'.html.setup {}
|
||||
require'lspconfig'.eslint.setup {}
|
||||
require'lspconfig'.texlab.setup {}
|
||||
require'lspconfig'.jdtls.setup {}
|
||||
require'lspconfig'.sumneko_lua.setup {}
|
||||
require'lspconfig'.gopls.setup {}
|
||||
require'lspconfig'.jsonls.setup {}
|
||||
require'lspconfig'.cssls.setup {}
|
||||
require'lspconfig'.csharp_ls.setup {}
|
||||
require'lspconfig'.tsserver.setup {}
|
||||
require'lspconfig'.sqls.setup {}
|
||||
require'lspconfig'.rust_analyzer.setup {}
|
||||
require'lspconfig'.bashls.setup {}
|
||||
|
||||
|
||||
require("nvim-lsp-installer").setup({
|
||||
automatic_installation = true, -- automatically detect which servers to install (based on which servers are set up via lspconfig)
|
||||
require("mason").setup({
|
||||
ui = {
|
||||
icons = {
|
||||
server_installed = "✓",
|
||||
server_pending = "➜",
|
||||
server_uninstalled = "✗"
|
||||
package_installed = "✓",
|
||||
package_pending = "➜",
|
||||
package_uninstalled = "✗"
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
require("mason-lspconfig").setup({
|
||||
ensure_installed = {
|
||||
"cssls", -- css
|
||||
"html", -- html
|
||||
"eslint", -- latex
|
||||
"clangd", -- cpp / c
|
||||
"tsserver", -- python
|
||||
"texlab", -- latex
|
||||
"sumneko_lua", -- lua
|
||||
"pyright", -- python
|
||||
"rust_analyzer", -- rust
|
||||
"jdtls", -- jdtls
|
||||
"cmake", -- cmake
|
||||
"bashls", -- shell
|
||||
"ansiblels", -- ansible
|
||||
"csharp_ls", -- dotnot
|
||||
"hls" -- haskel
|
||||
},
|
||||
automatic_installation = true
|
||||
})
|
||||
|
||||
local status_ok2, lsp_installer = pcall(require, "nvim-lsp-installer")
|
||||
if not status_ok2 then
|
||||
return
|
||||
end
|
||||
|
||||
local lspconfig = require("lspconfig")
|
||||
local servers = {"jdtls" , "sumneko_lua" , "texlab", "pyright" , "eslint" , "html" , "cssls" , "rust_analyzer" , "bashls" , "csharp_ls" , "sqls" , "clangd" }
|
||||
|
||||
lsp_installer.setup {
|
||||
ensure_installed = servers
|
||||
require('lspconfig')['cssls'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
for _, server in pairs(servers) do
|
||||
local opts = {
|
||||
on_attach = require("settings.lsp_config.handlers").on_attach,
|
||||
capabilities = require("settings.lsp_config.handlers").capabilities,
|
||||
}
|
||||
local has_custom_opts, server_custom_opts = pcall(require, "settings.lsp_config." .. server)
|
||||
if has_custom_opts then
|
||||
opts = vim.tbl_deep_extend("force", server_custom_opts, opts)
|
||||
end
|
||||
lspconfig[server].setup(opts)
|
||||
end
|
||||
require('lspconfig')['html'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['eslint'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['clangd'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['tsserver'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['texlab'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['sumneko_lua'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['pyright'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['rust_analyzer'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['jdtls'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['cmake'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['bashls'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['ansiblels'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['csharp_ls'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
require('lspconfig')['hls'].setup{
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach
|
||||
}
|
||||
|
||||
|
||||
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
||||
if not null_ls_status_ok then
|
||||
return
|
||||
end
|
||||
|
||||
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
||||
local formatting = null_ls.builtins.formatting
|
||||
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
||||
local diagnostics = null_ls.builtins.diagnostics
|
||||
|
||||
null_ls.setup({
|
||||
debug = false,
|
||||
sources = {
|
||||
formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
|
||||
formatting.black.with({ extra_args = { "--fast" } }),
|
||||
formatting.stylua,
|
||||
-- diagnostics.flake8
|
||||
},
|
||||
})
|
||||
|
||||
--local status_ok2, lsp_installer = pcall(require, "mason")
|
||||
--if not status_ok2 then
|
||||
-- return
|
||||
--end
|
||||
--
|
||||
--local servers = {"jdtls" , "sumneko_lua" , "texlab", "pyright" , "eslint_d" , "html" , "cssls" , "rust_analyzer" , "bashls" , "csharp_ls" , "sqls" , "clangd" }
|
||||
--
|
||||
--lsp_installer.setup {
|
||||
-- ensure_installed = servers
|
||||
--}
|
||||
--
|
||||
--for _, server in pairs(servers) do
|
||||
-- local opts = {
|
||||
-- on_attach = require("settings.lsp_config.handlers").on_attach,
|
||||
-- capabilities = require("settings.lsp_config.handlers").capabilities,
|
||||
-- }
|
||||
-- local has_custom_opts, server_custom_opts = pcall(require, "settings.lsp_config." .. server)
|
||||
-- if has_custom_opts then
|
||||
-- opts = vim.tbl_deep_extend("force", server_custom_opts, opts)
|
||||
-- end
|
||||
-- lspconfig[server].setup(opts)
|
||||
--end
|
||||
--
|
||||
--
|
||||
--local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
||||
--if not null_ls_status_ok then
|
||||
-- return
|
||||
--end
|
||||
--
|
||||
---- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
||||
--local formatting = null_ls.builtins.formatting
|
||||
---- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
||||
--local diagnostics = null_ls.builtins.diagnostics
|
||||
--
|
||||
--null_ls.setup({
|
||||
-- debug = false,
|
||||
-- sources = {
|
||||
-- formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
|
||||
-- formatting.black.with({ extra_args = { "--fast" } }),
|
||||
-- formatting.stylua,
|
||||
-- -- diagnostics.flake8
|
||||
-- },
|
||||
--})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue