Compare commits
2 commits
2f6af67f85
...
fc70aa6d49
| Author | SHA1 | Date | |
|---|---|---|---|
| fc70aa6d49 | |||
| a8136d4297 |
10 changed files with 58 additions and 48 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"LuaSnip": { "branch": "master", "commit": "3732756842a2f7e0e76a7b0487e9692072857277" },
|
"LuaSnip": { "branch": "master", "commit": "5a1e39223db9a0498024a77b8441169d260c8c25" },
|
||||||
"catppuccin": { "branch": "main", "commit": "ce8d176faa4643e026e597ae3c31db59b63cef09" },
|
"catppuccin": { "branch": "main", "commit": "ce8d176faa4643e026e597ae3c31db59b63cef09" },
|
||||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "bf77caa5da671f5bab16e4792711d5aa288e8db0" },
|
"gitsigns.nvim": { "branch": "main", "commit": "bf77caa5da671f5bab16e4792711d5aa288e8db0" },
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
"lsp-zero.nvim": { "branch": "v3.x", "commit": "77550f2f6cbf0959ef1583d845661af075f3442b" },
|
|
||||||
"lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
|
"lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||||
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
my_servers = {
|
my_servers = {
|
||||||
bashls = {},
|
bashls = {},
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
my_servers = {
|
my_servers = {
|
||||||
clangd = {
|
clangd = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
my_servers = {
|
my_servers = {
|
||||||
gopls = {},
|
gopls = {},
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
my_servers = {
|
my_servers = {
|
||||||
pylsp = {},
|
pylsp = {},
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
my_servers = {
|
my_servers = {
|
||||||
racket_langserver = {},
|
racket_langserver = {},
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
my_servers = {
|
my_servers = {
|
||||||
rust_analyzer = {
|
rust_analyzer = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
my_servers = {
|
my_servers = {
|
||||||
texlab = {},
|
texlab = {},
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
opts = {
|
opts = {
|
||||||
my_servers = {
|
my_servers = {
|
||||||
tinymist = {
|
tinymist = {
|
||||||
|
|
|
||||||
|
|
@ -1,54 +1,60 @@
|
||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"VonHeikemen/lsp-zero.nvim",
|
"neovim/nvim-lspconfig",
|
||||||
branch = "v3.x",
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
"SmiteshP/nvim-navic",
|
"SmiteshP/nvim-navic",
|
||||||
},
|
},
|
||||||
opts = {
|
opts = {
|
||||||
-- Servers configured in my_servers will automatically have
|
-- Servers configured in my_servers will be automatically configured
|
||||||
-- require("lspconfig")[server].setup(server_opts) called on them
|
|
||||||
my_servers = {},
|
my_servers = {},
|
||||||
},
|
},
|
||||||
config = function(_, opts)
|
config = function(_, opts)
|
||||||
local lsp_zero = require("lsp-zero")
|
local lspconfig = require("lspconfig")
|
||||||
|
|
||||||
-- enable lsp-zero
|
-- configure keybinds + navic at attach time
|
||||||
lsp_zero.on_attach(function(client, buffnr)
|
vim.api.nvim_create_autocmd("LspAttach", {
|
||||||
-- set lsp keybinds
|
callback = function(args)
|
||||||
-- NOTE: this check is needed since crates.nvim will overwrite "K"
|
local client = assert(vim.lsp.get_client_by_id(args.data.client_id))
|
||||||
if not vim.fn.mapcheck("K", "n") then
|
|
||||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Show documentation" })
|
|
||||||
end
|
|
||||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" })
|
|
||||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Go to declaration" })
|
|
||||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { desc = "Go to implementation" })
|
|
||||||
vim.keymap.set("n", "<leader>r", vim.lsp.buf.rename, { desc = "Rename symbol under cursor" })
|
|
||||||
vim.keymap.set("n", "<F2>", vim.lsp.buf.rename, { desc = "Rename symbol under cursor" })
|
|
||||||
vim.keymap.set("n", "<leader>a", vim.lsp.buf.code_action, { desc = "Open code actions" })
|
|
||||||
vim.keymap.set("n", "<leader>m", vim.lsp.buf.format, { desc = "Format current file" })
|
|
||||||
|
|
||||||
-- use telescope for LSP references, etc
|
-- set lsp keybinds
|
||||||
vim.keymap.set("n", "gr", "<cmd>Telescope lsp_references<cr>", { buffer = buffnr, desc = "Go to references" })
|
-- NOTE: this check is needed since crates.nvim will overwrite "K"
|
||||||
vim.keymap.set("n", "go", "<cmd>Telescope lsp_type_definitions<cr>", { desc = "Go to object type definition" })
|
if not vim.fn.mapcheck("K", "n") then
|
||||||
vim.keymap.set("n", "<leader>d", "<cmd>Telescope diagnostics bufnr=0<cr>", { desc = "Open file diagnostic list" })
|
vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Show documentation" })
|
||||||
vim.keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics<cr>", { desc = "Open workspace diagnostic list" })
|
end
|
||||||
vim.keymap.set("n", "<leader>s", "<cmd>Telescope lsp_document_symbols<cr>", { desc = "Open file symbols list" })
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" })
|
||||||
vim.keymap.set("n", "<leader>S", "<cmd>Telescope lsp_dynamic_workspace_symbols<cr>", { desc = "Open all workspaces symbols list" })
|
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Go to declaration" })
|
||||||
|
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, { desc = "Go to implementation" })
|
||||||
|
vim.keymap.set("n", "<leader>r", vim.lsp.buf.rename, { desc = "Rename symbol under cursor" })
|
||||||
|
vim.keymap.set("n", "<F2>", vim.lsp.buf.rename, { desc = "Rename symbol under cursor" })
|
||||||
|
vim.keymap.set("n", "<leader>a", vim.lsp.buf.code_action, { desc = "Open code actions" })
|
||||||
|
vim.keymap.set("n", "<leader>m", vim.lsp.buf.format, { desc = "Format current file" })
|
||||||
|
|
||||||
-- Use navic for context hints
|
-- use telescope for LSP references, etc
|
||||||
if client.supports_method("textDocument/documentSymbol") then
|
vim.keymap.set("n", "gr", "<cmd>Telescope lsp_references<cr>", { buffer = buffnr, desc = "Go to references" })
|
||||||
require("nvim-navic").attach(client, buffnr)
|
vim.keymap.set("n", "go", "<cmd>Telescope lsp_type_definitions<cr>", { desc = "Go to object type definition" })
|
||||||
end
|
vim.keymap.set("n", "<leader>d", "<cmd>Telescope diagnostics bufnr=0<cr>", { desc = "Open file diagnostic list" })
|
||||||
end)
|
vim.keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics<cr>", { desc = "Open workspace diagnostic list" })
|
||||||
|
vim.keymap.set("n", "<leader>s", "<cmd>Telescope lsp_document_symbols<cr>", { desc = "Open file symbols list" })
|
||||||
|
vim.keymap.set("n", "<leader>S", "<cmd>Telescope lsp_dynamic_workspace_symbols<cr>", { desc = "Open all workspaces symbols list" })
|
||||||
|
|
||||||
|
-- Use navic for context hints
|
||||||
|
if client.supports_method("textDocument/documentSymbol") then
|
||||||
|
require("nvim-navic").attach(client, args.buf)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
-- use pretty icons instead of 'W', 'E', ...
|
-- use pretty icons instead of 'W', 'E', ...
|
||||||
lsp_zero.set_sign_icons({
|
vim.diagnostic.config({
|
||||||
error = '✘',
|
signs = {
|
||||||
warn = '▲',
|
text = {
|
||||||
hint = '⚑',
|
[vim.diagnostic.severity.ERROR] = '✘',
|
||||||
info = '»'
|
[vim.diagnostic.severity.WARN] = '▲',
|
||||||
|
[vim.diagnostic.severity.HINT] = '⚑',
|
||||||
|
[vim.diagnostic.severity.INFO] = '»',
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- disable LSP logging
|
-- disable LSP logging
|
||||||
|
|
@ -58,7 +64,7 @@ return {
|
||||||
local servers = opts.my_servers
|
local servers = opts.my_servers
|
||||||
for server, server_opts in pairs(servers) do
|
for server, server_opts in pairs(servers) do
|
||||||
vim.lsp.config(server, server_opts)
|
vim.lsp.config(server, server_opts)
|
||||||
vim.lsp.enable({ server })
|
vim.lsp.enable(server)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
@ -122,6 +128,8 @@ return {
|
||||||
{ name = "buffer" },
|
{ name = "buffer" },
|
||||||
}),
|
}),
|
||||||
mapping = {
|
mapping = {
|
||||||
|
["<Up>"] = cmp.mapping.select_prev_item({}, {'i'}),
|
||||||
|
["<Down>"] = cmp.mapping.select_next_item({}, {'i'}),
|
||||||
-- Use "Enter" for auto completion
|
-- Use "Enter" for auto completion
|
||||||
["<cr>"] = cmp.mapping.confirm({select = false}),
|
["<cr>"] = cmp.mapping.confirm({select = false}),
|
||||||
["<Tab>"] = tab_mapping,
|
["<Tab>"] = tab_mapping,
|
||||||
|
|
@ -156,6 +164,9 @@ return {
|
||||||
event = "LspAttach",
|
event = "LspAttach",
|
||||||
opts = {
|
opts = {
|
||||||
scope = "line",
|
scope = "line",
|
||||||
|
|
||||||
|
-- don't show diagnostics in insert mode
|
||||||
|
toggle_event = { "InsertEnter" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue