Updated config
This commit is contained in:
103
.config/nvim/lua/disabled/lsp.lua
Normal file
103
.config/nvim/lua/disabled/lsp.lua
Normal file
@ -0,0 +1,103 @@
|
||||
return {
|
||||
"neovim/nvim-lspconfig",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
opts = {
|
||||
servers = {
|
||||
clangd = {},
|
||||
gdscript = {},
|
||||
gopls = {},
|
||||
lua_ls = {
|
||||
settings = {
|
||||
Lua = {
|
||||
completion = {
|
||||
callSnippet = "Replace",
|
||||
},
|
||||
runtime = {
|
||||
version = "LuaJIT",
|
||||
},
|
||||
workspace = {
|
||||
checkThirdParty = false,
|
||||
library = {
|
||||
"${3rd}/luv/library",
|
||||
unpack(vim.api.nvim_get_runtime_file("", true)),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
rust_analyzer = {
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
imports = {
|
||||
granularity = {
|
||||
group = "module",
|
||||
},
|
||||
prefix = "self",
|
||||
},
|
||||
cargo = {
|
||||
buildScripts = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
procMacro = {
|
||||
enable = true
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
-- Servers
|
||||
local servers = opts.servers
|
||||
|
||||
for server, server_opts in pairs(servers) do
|
||||
require("lspconfig")[server].setup(server_opts)
|
||||
end
|
||||
|
||||
-- Icons
|
||||
local icons = {
|
||||
Error = " ",
|
||||
Warn = " ",
|
||||
Hint = " ",
|
||||
Info = " ",
|
||||
}
|
||||
|
||||
for name, icon in pairs(icons) do
|
||||
name = "DiagnosticSign" .. name
|
||||
vim.fn.sign_define(name, { text = icon, texthl = name, numhl = "" })
|
||||
end
|
||||
|
||||
-- Runs when the LSP is attached
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
group = vim.api.nvim_create_augroup("lsp-attach", { clear = true }),
|
||||
callback = function(event)
|
||||
local function map(mode, lhs, rhs, info)
|
||||
vim.keymap.set(mode, lhs, rhs, { buffer = event.buf, desc = "LSP: " .. info })
|
||||
end
|
||||
|
||||
map("n", "gr", require("telescope.builtin").lsp_references, "References")
|
||||
map("n", "gd", require("telescope.builtin").lsp_definitions, "Definition")
|
||||
map({ "n", "i" }, "<f1>", vim.lsp.buf.hover, "Hover")
|
||||
map({ "n", "i" }, "<f2>", vim.lsp.buf.rename, "Rename")
|
||||
map({ "n", "i" }, "<C-f>", vim.lsp.buf.format, "Format")
|
||||
map("n", "<leader>ca", vim.lsp.buf.code_action, "Code action")
|
||||
|
||||
-- Highlight the word your cursor is on
|
||||
-- local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||
--
|
||||
-- if client and client.server_capabilities.documentHighlightProvider then
|
||||
-- vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, {
|
||||
-- buffer = event.buf,
|
||||
-- callback = vim.lsp.buf.document_highlight,
|
||||
-- })
|
||||
--
|
||||
-- vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, {
|
||||
-- buffer = event.buf,
|
||||
-- callback = vim.lsp.buf.clear_references,
|
||||
-- })
|
||||
-- end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
Reference in New Issue
Block a user