mason compability

This commit is contained in:
thek4n 2025-05-28 11:27:21 +03:00
parent c8c0a2159e
commit 334085ab32

View File

@ -23,7 +23,7 @@ local function lsp_buf_rename(client_name)
vim.lsp.buf.rename(nil, { name = client_name }) vim.lsp.buf.rename(nil, { name = client_name })
end end
function lsp_buf_rename_use_any(fallback) function LSP_BUF_RENAME_USE_ANY(fallback)
local client_names = get_lsp_client_names(lsp_have_feature.rename) local client_names = get_lsp_client_names(lsp_have_feature.rename)
for _, client_name in ipairs(client_names) do for _, client_name in ipairs(client_names) do
lsp_buf_rename(client_name) lsp_buf_rename(client_name)
@ -35,13 +35,15 @@ function lsp_buf_rename_use_any(fallback)
end end
local on_attach = function(_, bufnr) return {
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end {
local function buf_set_option(...) vim.api.nvim_set_option_value(...) end 'mason-org/mason.nvim',
dependencies = {
-- Enable completion triggered by <c-x><c-o> 'neovim/nvim-lspconfig',
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc', {}) "mason-org/mason-lspconfig.nvim",
'nvim-telescope/telescope.nvim',
},
config = function()
-- Mappings. -- Mappings.
local opts = { noremap=true, silent=true } local opts = { noremap=true, silent=true }
@ -50,52 +52,29 @@ local on_attach = function(_, bufnr)
end end
-- Sections -- Sections
buf_set_keymap('n', '<space>w', '', {desc = "Workspace manage"}) vim.api.nvim_set_keymap('n', '<space>w', '', {desc = "Workspace manage"})
-- See `:help vim.lsp.*` for documentation on any of the below functions -- See `:help vim.lsp.*` for documentation on any of the below functions
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', desc("Go declaration")) vim.api.nvim_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', desc("Go declaration"))
buf_set_keymap('n', 'gd', '<cmd>Telescope lsp_definitions<CR>', desc("Go definition")) vim.api.nvim_set_keymap('n', 'gd', '<cmd>Telescope lsp_definitions<CR>', desc("Go definition"))
buf_set_keymap('n', 'gi', '<cmd>Telescope lsp_implementations<CR>', desc("Go implementation")) vim.api.nvim_set_keymap('n', 'gi', '<cmd>Telescope lsp_implementations<CR>', desc("Go implementation"))
buf_set_keymap('n', 'gr', '<cmd>Telescope lsp_references<CR>', desc("Go references")) vim.api.nvim_set_keymap('n', 'gr', '<cmd>Telescope lsp_references<CR>', desc("Go references"))
buf_set_keymap('n', 'gt', '<cmd>Telescope lsp_type_definitions<CR>', desc("Go type references")) vim.api.nvim_set_keymap('n', 'gt', '<cmd>Telescope lsp_type_definitions<CR>', desc("Go type references"))
buf_set_keymap('n', '<space>k', '<cmd>lua vim.lsp.buf.hover()<CR>', desc("Show help")) vim.api.nvim_set_keymap('n', '<space>k', '<cmd>lua vim.lsp.buf.hover()<CR>', desc("Show help"))
buf_set_keymap('n', '<space>K', '<cmd>lua vim.lsp.buf.signature_help()<CR>', desc("Show signature")) vim.api.nvim_set_keymap('n', '<space>K', '<cmd>lua vim.lsp.buf.signature_help()<CR>', desc("Show signature"))
buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', desc("Add workspace folder")) vim.api.nvim_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', desc("Add workspace folder"))
buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', desc("Remove workspace folder")) vim.api.nvim_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', desc("Remove workspace folder"))
buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', desc("Show workspace folders")) vim.api.nvim_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', desc("Show workspace folders"))
buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', desc("Show type")) vim.api.nvim_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', desc("Show type"))
buf_set_keymap('n', '<space>rn', "<cmd>lua lsp_buf_rename_use_any()<CR>", desc("Rename object")) vim.api.nvim_set_keymap('n', '<space>rn', "<cmd>lua LSP_BUF_RENAME_USE_ANY()<CR>", desc("Rename object"))
buf_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', desc("Show diagnostic")) vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', desc("Show diagnostic"))
buf_set_keymap('n', '<space>p', '<cmd>lua vim.diagnostic.goto_prev()<CR>', desc("Previous problem")) vim.api.nvim_set_keymap('n', '<space>p', '<cmd>lua vim.diagnostic.goto_prev()<CR>', desc("Previous problem"))
buf_set_keymap('n', '<space>n', '<cmd>lua vim.diagnostic.goto_next()<CR>', desc("Next problem")) vim.api.nvim_set_keymap('n', '<space>n', '<cmd>lua vim.diagnostic.goto_next()<CR>', desc("Next problem"))
buf_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts) vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.format()<CR>', desc("Format file")) vim.api.nvim_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.format()<CR>', desc("Format file"))
end
return {
{
'williamboman/mason.nvim',
dependencies = {
'neovim/nvim-lspconfig',
"williamboman/mason-lspconfig.nvim",
'nvim-telescope/telescope.nvim',
},
config = function()
require("mason").setup() require("mason").setup()
local mason_lspconfig = require("mason-lspconfig") require("mason-lspconfig").setup()
mason_lspconfig.setup()
mason_lspconfig.setup_handlers({
function (server_name)
require("lspconfig")[server_name].setup({
on_attach = on_attach,
flags = {
debounce_text_changes = 150,
}
})
end
})
end, end,
}, },
} }