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" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||
|
|
@ -9,7 +9,6 @@
|
|||
"gitsigns.nvim": { "branch": "main", "commit": "bf77caa5da671f5bab16e4792711d5aa288e8db0" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"lsp-zero.nvim": { "branch": "v3.x", "commit": "77550f2f6cbf0959ef1583d845661af075f3442b" },
|
||||
"lspkind.nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
my_servers = {
|
||||
bashls = {},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
my_servers = {
|
||||
clangd = {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
my_servers = {
|
||||
gopls = {},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
my_servers = {
|
||||
pylsp = {},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
my_servers = {
|
||||
racket_langserver = {},
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
my_servers = {
|
||||
rust_analyzer = {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
my_servers = {
|
||||
texlab = {},
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ vim.api.nvim_create_autocmd("FileType", {
|
|||
|
||||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
my_servers = {
|
||||
tinymist = {
|
||||
|
|
|
|||
|
|
@ -1,54 +1,60 @@
|
|||
return {
|
||||
{
|
||||
"VonHeikemen/lsp-zero.nvim",
|
||||
branch = "v3.x",
|
||||
"neovim/nvim-lspconfig",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
"neovim/nvim-lspconfig",
|
||||
"SmiteshP/nvim-navic",
|
||||
},
|
||||
opts = {
|
||||
-- Servers configured in my_servers will automatically have
|
||||
-- require("lspconfig")[server].setup(server_opts) called on them
|
||||
-- Servers configured in my_servers will be automatically configured
|
||||
my_servers = {},
|
||||
},
|
||||
config = function(_, opts)
|
||||
local lsp_zero = require("lsp-zero")
|
||||
local lspconfig = require("lspconfig")
|
||||
|
||||
-- enable lsp-zero
|
||||
lsp_zero.on_attach(function(client, buffnr)
|
||||
-- set lsp keybinds
|
||||
-- NOTE: this check is needed since crates.nvim will overwrite "K"
|
||||
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" })
|
||||
-- configure keybinds + navic at attach time
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
callback = function(args)
|
||||
local client = assert(vim.lsp.get_client_by_id(args.data.client_id))
|
||||
|
||||
-- use telescope for LSP references, etc
|
||||
vim.keymap.set("n", "gr", "<cmd>Telescope lsp_references<cr>", { buffer = buffnr, desc = "Go to references" })
|
||||
vim.keymap.set("n", "go", "<cmd>Telescope lsp_type_definitions<cr>", { desc = "Go to object type definition" })
|
||||
vim.keymap.set("n", "<leader>d", "<cmd>Telescope diagnostics bufnr=0<cr>", { desc = "Open file diagnostic list" })
|
||||
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" })
|
||||
-- set lsp keybinds
|
||||
-- NOTE: this check is needed since crates.nvim will overwrite "K"
|
||||
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 navic for context hints
|
||||
if client.supports_method("textDocument/documentSymbol") then
|
||||
require("nvim-navic").attach(client, buffnr)
|
||||
end
|
||||
end)
|
||||
-- use telescope for LSP references, etc
|
||||
vim.keymap.set("n", "gr", "<cmd>Telescope lsp_references<cr>", { buffer = buffnr, desc = "Go to references" })
|
||||
vim.keymap.set("n", "go", "<cmd>Telescope lsp_type_definitions<cr>", { desc = "Go to object type definition" })
|
||||
vim.keymap.set("n", "<leader>d", "<cmd>Telescope diagnostics bufnr=0<cr>", { desc = "Open file diagnostic list" })
|
||||
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', ...
|
||||
lsp_zero.set_sign_icons({
|
||||
error = '✘',
|
||||
warn = '▲',
|
||||
hint = '⚑',
|
||||
info = '»'
|
||||
vim.diagnostic.config({
|
||||
signs = {
|
||||
text = {
|
||||
[vim.diagnostic.severity.ERROR] = '✘',
|
||||
[vim.diagnostic.severity.WARN] = '▲',
|
||||
[vim.diagnostic.severity.HINT] = '⚑',
|
||||
[vim.diagnostic.severity.INFO] = '»',
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- disable LSP logging
|
||||
|
|
@ -58,7 +64,7 @@ return {
|
|||
local servers = opts.my_servers
|
||||
for server, server_opts in pairs(servers) do
|
||||
vim.lsp.config(server, server_opts)
|
||||
vim.lsp.enable({ server })
|
||||
vim.lsp.enable(server)
|
||||
end
|
||||
end,
|
||||
},
|
||||
|
|
@ -122,6 +128,8 @@ return {
|
|||
{ name = "buffer" },
|
||||
}),
|
||||
mapping = {
|
||||
["<Up>"] = cmp.mapping.select_prev_item({}, {'i'}),
|
||||
["<Down>"] = cmp.mapping.select_next_item({}, {'i'}),
|
||||
-- Use "Enter" for auto completion
|
||||
["<cr>"] = cmp.mapping.confirm({select = false}),
|
||||
["<Tab>"] = tab_mapping,
|
||||
|
|
@ -156,6 +164,9 @@ return {
|
|||
event = "LspAttach",
|
||||
opts = {
|
||||
scope = "line",
|
||||
|
||||
-- don't show diagnostics in insert mode
|
||||
toggle_event = { "InsertEnter" },
|
||||
},
|
||||
},
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue