summaryrefslogtreecommitdiffstats
path: root/lua/conf/plugins/mason-lspconfig.lua
diff options
context:
space:
mode:
authorSquibid <me@zacharyscheiman.com>2025-04-17 11:41:32 -0500
committerSquibid <me@zacharyscheiman.com>2025-04-17 11:41:32 -0500
commit3094bf2a3983b375f4adeccd25c3b12bbbded2aa (patch)
tree860f0a9cfd3d83bf73837e2f3a0ccc1b0c75cf5b /lua/conf/plugins/mason-lspconfig.lua
parent8eaa615596be321a3be12378c5e7d65cc7e482b6 (diff)
downloadnvim-3094bf2a3983b375f4adeccd25c3b12bbbded2aa.tar.gz
nvim-3094bf2a3983b375f4adeccd25c3b12bbbded2aa.tar.bz2
nvim-3094bf2a3983b375f4adeccd25c3b12bbbded2aa.zip
a lot more stuff
Diffstat (limited to '')
-rw-r--r--lua/conf/plugins/mason-lspconfig.lua177
1 files changed, 95 insertions, 82 deletions
diff --git a/lua/conf/plugins/mason-lspconfig.lua b/lua/conf/plugins/mason-lspconfig.lua
index 65c5693..ceedb6c 100644
--- a/lua/conf/plugins/mason-lspconfig.lua
+++ b/lua/conf/plugins/mason-lspconfig.lua
@@ -1,18 +1,23 @@
local misc = require('core.misc')
local lsp = require('core.lsp.functions')
-local map, auto, augroup = misc.map, misc.auto, misc.augroup
+local map = misc.map
return { 'williamboman/mason-lspconfig.nvim',
requires = {
'williamboman/mason.nvim',
{ 'neovim/nvim-lspconfig',
- disable = vim.version().minor < 8,
+ disable = not vim.fn.has("nvim-0.8.0"),
function()
lsp.setup()
end
- }
+ },
+
+ -- these two update some lsp capabilities and therefore must be run first
+ -- 'hrsh7th/cmp-nvim-lsp',
+ -- 'kevinhwang91/nvim-ufo'
},
function()
+ local lspconfig = require('lspconfig')
local util = require('lspconfig.util')
-- setup language servers
@@ -27,97 +32,105 @@ return { 'williamboman/mason-lspconfig.nvim',
"bashls",
"zls"
-- "asm-lsp", -- seems to be broken
- }
- }
- require('mason-lspconfig').setup_handlers {
- function(server_name)
- require('lspconfig')[server_name].setup {
- on_attach = lsp.lsp_attach,
- capabilities = lsp.capabilities()
- }
- end,
+ },
+
+ -- setup all handlers
+ handlers = {
+ function(server_name)
+ lspconfig[server_name].setup {}
+ end,
- -- setup luals
- ["lua_ls"] = function(server_name)
- local root_files = { '.luarc.json', '.luarc.jsonc', '.luacheckrc',
- '.stylua.toml', 'stylua.toml', 'selene.toml', 'selene.yml',
- 'README.md'
- }
+ -- setup luals
+ ["lua_ls"] = function(server_name)
+ local root_files = { '.luarc.json', '.luarc.jsonc', '.luacheckrc',
+ '.stylua.toml', 'stylua.toml', 'selene.toml', 'selene.yml',
+ 'README.md'
+ }
- -- FIXME: luals seems to start up twice and sends back twice the
- -- completions (one configured with the below settings and one without)
- require('lspconfig')[server_name].setup {
- on_attach = lsp.attach,
- capabilities = lsp.capabilities(),
- settings = {
- Lua = {
- diagnostics = {
- globals = { "vim", 'mp' }
- },
- runtime = {
- version = 'LuaJIT'
- },
- format = {
- enable = false
- },
- workspace = {
- checkThirdParty = false,
- library = {
- vim.env.VIMRUNTIME
+ -- FIXME: luals seems to start up twice and sends back twice the
+ -- completions (one configured with the below settings and one without)
+ lspconfig[server_name].setup {
+ settings = {
+ Lua = {
+ diagnostics = {
+ globals = { "vim", 'mp' }
+ },
+ runtime = {
+ version = 'LuaJIT'
+ },
+ format = {
+ enable = false
+ },
+ workspace = {
+ checkThirdParty = false,
+ library = {
+ vim.env.VIMRUNTIME
+ }
}
}
- }
- },
+ },
- root_dir = function(fname)
- local root = util.root_pattern(unpack(root_files))(fname)
- if root and root ~= vim.env.HOME then
- return root
- end
+ root_dir = function(fname)
+ local root = util.root_pattern(unpack(root_files))(fname)
+ if root and root ~= vim.env.HOME then
+ return root
+ end
- root = util.root_pattern('lua/')(fname)
- if root then
- return root
+ root = util.root_pattern('lua/')(fname)
+ if root then
+ return root
+ end
+ return util.find_git_ancestor(fname)
end
- return util.find_git_ancestor(fname)
- end
- }
- end,
-
- -- setup clangd
- ["clangd"] = function(server_name)
- require('lspconfig')[server_name].setup {
- on_attach = function(client, bufnr)
- lsp.attach(client, bufnr)
+ }
+ end,
- -- add some clangd specific mappings
- local opts = { buffer = bufnr }
- map("n", "<leader>o", "<cmd>ClangdSwitchSourceHeader<CR>", opts)
- end,
- capabilities = lsp.capabilities(),
+ -- setup clangd
+ ["clangd"] = function(server_name)
+ lspconfig[server_name].setup {
+ on_attach = function(client, bufnr)
+ -- add some clangd specific mappings
+ local opts = { buffer = bufnr }
+ map("n", "<leader>o", "<cmd>ClangdSwitchSourceHeader<CR>", opts)
+ end,
- cmd = {
- "clangd",
- "--background-index",
- "--clang-tidy",
- "--header-insertion=iwyu",
- "--completion-style=detailed",
- "--function-arg-placeholders",
- "--fallback-style=llvm"
- },
- init_options = {
- usePlaceholders = true,
- clangdFileStatus = true,
- fallback_flags = {
- "-xc" -- makes clangd think we're using c instead of c++
+ cmd = {
+ "clangd",
+ "--background-index",
+ "--clang-tidy",
+ "--header-insertion=iwyu",
+ "--completion-style=detailed",
+ "--function-arg-placeholders",
+ "--fallback-style=llvm"
+ },
+ init_options = {
+ usePlaceholders = true,
+ clangdFileStatus = true,
+ fallback_flags = {
+ "-xc" -- makes clangd think we're using c instead of c++
+ }
}
}
- }
- end,
+ end,
- -- disable it, we start this using nvim-jdtls
- ["jdtls"] = function(_) end
- }
+ -- disable it, we start this using nvim-jdtls
+ ["jdtls"] = function(_) end,
+ -- setup basedpyright
+ ["basedpyright"] = function(server_name)
+ lspconfig[server_name].setup {
+ on_attach = function(client, bufnr)
+ -- add some basedpyright specific mappings
+ local opts = { buffer = bufnr }
+ map("n", "cri", "<cmd>PyrightOrganizeImports<CR>", opts)
+ end,
+ }
+ end
+ },
+
+ ["openscad_lsp"] = function(server_name)
+ lspconfig[server_name].setup {}
+ end
+ }
end
}