Compare commits
No commits in common. "2be3cef4ec665673eaccfa46ff02611af4e93d1a" and "61d3cbfa2886e14d2cc4b8a51c47dffc84544da1" have entirely different histories.
2be3cef4ec
...
61d3cbfa28
@ -92,7 +92,6 @@ opt.undoreload = 1000
|
|||||||
|
|
||||||
local prefix = vim.fn.expand("~/.local/state/nvim")
|
local prefix = vim.fn.expand("~/.local/state/nvim")
|
||||||
|
|
||||||
|
|
||||||
opt.undodir = { prefix .. "/undo//" }
|
opt.undodir = { prefix .. "/undo//" }
|
||||||
opt.backupdir = { prefix .. "/backup//" }
|
opt.backupdir = { prefix .. "/backup//" }
|
||||||
opt.directory = { prefix .. "/swap//" }
|
opt.directory = { prefix .. "/swap//" }
|
||||||
@ -174,4 +173,3 @@ vim.api.nvim_create_autocmd("BufWinEnter", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
vim.opt.foldcolumn = "1"
|
vim.opt.foldcolumn = "1"
|
||||||
vim.diagnostic.config({ virtual_text = true })
|
|
||||||
|
|||||||
@ -130,6 +130,13 @@ return {
|
|||||||
},
|
},
|
||||||
config = setup_cmp,
|
config = setup_cmp,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = function()
|
||||||
|
vim.diagnostic.config({ virtual_text = true })
|
||||||
|
end,
|
||||||
|
},
|
||||||
-- {
|
-- {
|
||||||
-- 'zbirenbaum/copilot.lua',
|
-- 'zbirenbaum/copilot.lua',
|
||||||
-- cmd = "Copilot",
|
-- cmd = "Copilot",
|
||||||
|
|||||||
@ -1,39 +1,3 @@
|
|||||||
|
|
||||||
local lsp_have_feature = {
|
|
||||||
rename = function(client)
|
|
||||||
return client.supports_method "textDocument/rename"
|
|
||||||
end,
|
|
||||||
inlay_hint = function(client)
|
|
||||||
return client.supports_method "textDocument/inlayHint"
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
||||||
local function get_lsp_client_names(have_feature)
|
|
||||||
local client_names = {}
|
|
||||||
local attached_clients = vim.lsp.get_clients { bufnr = 0 }
|
|
||||||
for _, client in ipairs(attached_clients) do
|
|
||||||
if have_feature(client) then
|
|
||||||
table.insert(client_names, client.name)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return client_names
|
|
||||||
end
|
|
||||||
|
|
||||||
local function lsp_buf_rename(client_name)
|
|
||||||
vim.lsp.buf.rename(nil, { name = client_name })
|
|
||||||
end
|
|
||||||
|
|
||||||
function LSP_BUF_RENAME_USE_ANY(fallback)
|
|
||||||
local client_names = get_lsp_client_names(lsp_have_feature.rename)
|
|
||||||
for _, client_name in ipairs(client_names) do
|
|
||||||
lsp_buf_rename(client_name)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if fallback then
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"ellisonleao/dotenv.nvim",
|
"ellisonleao/dotenv.nvim",
|
||||||
@ -221,62 +185,4 @@ return {
|
|||||||
vim.keymap.set("n", "<space>ca", require("actions-preview").code_actions, {desc = "Code action"})
|
vim.keymap.set("n", "<space>ca", require("actions-preview").code_actions, {desc = "Code action"})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
dependencies = {
|
|
||||||
"mason-org/mason.nvim",
|
|
||||||
"mason-org/mason-lspconfig.nvim",
|
|
||||||
'nvim-telescope/telescope.nvim',
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local opts = { noremap=true, silent=true }
|
|
||||||
|
|
||||||
local function desc(description)
|
|
||||||
return vim.tbl_extend("keep", opts, {desc = description})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Sections
|
|
||||||
vim.api.nvim_set_keymap('n', '<space>w', '', {desc = "Workspace manage"})
|
|
||||||
|
|
||||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
|
||||||
vim.api.nvim_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', desc("Go declaration"))
|
|
||||||
vim.api.nvim_set_keymap('n', 'gd', '<cmd>Telescope lsp_definitions<CR>', desc("Go definition"))
|
|
||||||
vim.api.nvim_set_keymap('n', 'gi', '<cmd>Telescope lsp_implementations<CR>', desc("Go implementation"))
|
|
||||||
vim.api.nvim_set_keymap('n', 'gr', '<cmd>Telescope lsp_references<CR>', desc("Go references"))
|
|
||||||
vim.api.nvim_set_keymap('n', 'gt', '<cmd>Telescope lsp_type_definitions<CR>', desc("Go type references"))
|
|
||||||
vim.api.nvim_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.signature_help()<CR>', desc("Show signature"))
|
|
||||||
vim.api.nvim_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>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', desc("Remove workspace folder"))
|
|
||||||
vim.api.nvim_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>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', desc("Show type"))
|
|
||||||
vim.api.nvim_set_keymap('n', '<space>rn', "<cmd>lua LSP_BUF_RENAME_USE_ANY()<CR>", desc("Rename object"))
|
|
||||||
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', desc("Show diagnostic"))
|
|
||||||
vim.api.nvim_set_keymap('n', '<space>p', '<cmd>lua vim.diagnostic.goto_prev()<CR>', desc("Previous problem"))
|
|
||||||
vim.api.nvim_set_keymap('n', '<space>n', '<cmd>lua vim.diagnostic.goto_next()<CR>', desc("Next problem"))
|
|
||||||
vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
|
||||||
vim.api.nvim_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.format()<CR>', desc("Format file"))
|
|
||||||
|
|
||||||
-- Mason настройки
|
|
||||||
require("mason").setup()
|
|
||||||
|
|
||||||
require("mason-lspconfig").setup({
|
|
||||||
ensure_installed = {
|
|
||||||
"lua_ls",
|
|
||||||
"pyright",
|
|
||||||
"gopls",
|
|
||||||
"rust_analyzer",
|
|
||||||
"ts_ls",
|
|
||||||
},
|
|
||||||
handlers = {
|
|
||||||
function(server_name)
|
|
||||||
local config = vim.deepcopy(require('lspconfig')[server_name].config)
|
|
||||||
config.capabilities = vim.lsp.protocol.make_client_capabilities()
|
|
||||||
vim.lsp.config(server_name, config)
|
|
||||||
vim.lsp.enable(server_name)
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
end
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|||||||
80
home/user/.config/nvim/lua/plugins/lsp_manager.lua
Normal file
80
home/user/.config/nvim/lua/plugins/lsp_manager.lua
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
|
||||||
|
local lsp_have_feature = {
|
||||||
|
rename = function(client)
|
||||||
|
return client.supports_method "textDocument/rename"
|
||||||
|
end,
|
||||||
|
inlay_hint = function(client)
|
||||||
|
return client.supports_method "textDocument/inlayHint"
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
local function get_lsp_client_names(have_feature)
|
||||||
|
local client_names = {}
|
||||||
|
local attached_clients = vim.lsp.get_clients { bufnr = 0 }
|
||||||
|
for _, client in ipairs(attached_clients) do
|
||||||
|
if have_feature(client) then
|
||||||
|
table.insert(client_names, client.name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return client_names
|
||||||
|
end
|
||||||
|
|
||||||
|
local function lsp_buf_rename(client_name)
|
||||||
|
vim.lsp.buf.rename(nil, { name = client_name })
|
||||||
|
end
|
||||||
|
|
||||||
|
function LSP_BUF_RENAME_USE_ANY(fallback)
|
||||||
|
local client_names = get_lsp_client_names(lsp_have_feature.rename)
|
||||||
|
for _, client_name in ipairs(client_names) do
|
||||||
|
lsp_buf_rename(client_name)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if fallback then
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
'mason-org/mason.nvim',
|
||||||
|
dependencies = {
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
"mason-org/mason-lspconfig.nvim",
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
-- Mappings.
|
||||||
|
local opts = { noremap=true, silent=true }
|
||||||
|
|
||||||
|
local function desc(description)
|
||||||
|
return vim.tbl_extend("keep", opts, {desc = description})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Sections
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>w', '', {desc = "Workspace manage"})
|
||||||
|
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
vim.api.nvim_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', desc("Go declaration"))
|
||||||
|
vim.api.nvim_set_keymap('n', 'gd', '<cmd>Telescope lsp_definitions<CR>', desc("Go definition"))
|
||||||
|
vim.api.nvim_set_keymap('n', 'gi', '<cmd>Telescope lsp_implementations<CR>', desc("Go implementation"))
|
||||||
|
vim.api.nvim_set_keymap('n', 'gr', '<cmd>Telescope lsp_references<CR>', desc("Go references"))
|
||||||
|
vim.api.nvim_set_keymap('n', 'gt', '<cmd>Telescope lsp_type_definitions<CR>', desc("Go type references"))
|
||||||
|
vim.api.nvim_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.signature_help()<CR>', desc("Show signature"))
|
||||||
|
vim.api.nvim_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>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', desc("Remove workspace folder"))
|
||||||
|
vim.api.nvim_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>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', desc("Show type"))
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>rn', "<cmd>lua LSP_BUF_RENAME_USE_ANY()<CR>", desc("Rename object"))
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', desc("Show diagnostic"))
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>p', '<cmd>lua vim.diagnostic.goto_prev()<CR>', desc("Previous problem"))
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>n', '<cmd>lua vim.diagnostic.goto_next()<CR>', desc("Next problem"))
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.format()<CR>', desc("Format file"))
|
||||||
|
|
||||||
|
require("mason").setup()
|
||||||
|
require("mason-lspconfig").setup()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@ -25,24 +25,9 @@ return {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"romus204/tree-sitter-manager.nvim",
|
"romus204/tree-sitter-manager.nvim",
|
||||||
priority = 1,
|
|
||||||
config = function()
|
config = function()
|
||||||
require("tree-sitter-manager").setup({
|
require("tree-sitter-manager").setup({
|
||||||
ensure_installed = {
|
-- ensure_installed = {"python", "lua", "vim", "html", "rust", "markdown", "markdown_inline", "regex"},
|
||||||
"python", "lua", "vim", "rust", "go", "c", "cpp",
|
|
||||||
"html", "markdown", "markdown_inline", "css", "scss", "javascript", "jsx",
|
|
||||||
"mermaid",
|
|
||||||
"nginx",
|
|
||||||
"gomod", "gosum",
|
|
||||||
"regex", "kconfig",
|
|
||||||
"yaml", "proto",
|
|
||||||
"just", "make",
|
|
||||||
"zsh", "bash",
|
|
||||||
"devicetree",
|
|
||||||
"ssh_config",
|
|
||||||
"diff", "dockerfile", "editorconfig",
|
|
||||||
"git_config", "gitattributes", "gitcommit", "gitignore",
|
|
||||||
},
|
|
||||||
auto_install = true,
|
auto_install = true,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user