kitchen sink now don't support any version lower than 0.11.0 for lsp
- dap now works for java and c
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
local misc = require("core.misc")
|
||||
local map, include = misc.map, misc.include
|
||||
local map, auto = misc.map, misc.auto
|
||||
|
||||
local M = {}
|
||||
|
||||
@ -34,6 +34,11 @@ local list_opts = {
|
||||
---@diagnostic disable-next-line: assign-type-mismatch
|
||||
local location_opts = vim.tbl_deep_extend("force", list_opts, {})
|
||||
|
||||
-- disable the default keybinds (they're bad)
|
||||
for _, bind in ipairs({ "grn", "gra", "gri", "grr" }) do
|
||||
pcall(vim.keymap.del, "n", bind)
|
||||
end
|
||||
|
||||
--- setup basic options on lsp attach
|
||||
---@param bufnr number buffer number
|
||||
local function attach(bufnr)
|
||||
@ -55,27 +60,18 @@ local function attach(bufnr)
|
||||
|
||||
-- Diagnostics
|
||||
map("n", "[d", function()
|
||||
if not vim.fn.has("nvim-0.11") then
|
||||
vim.diagnostic.goto_prev()
|
||||
else
|
||||
vim.diagnostic.jump({ count = -1 })
|
||||
end
|
||||
vim.diagnostic.jump({ count = -1 })
|
||||
end, opts)
|
||||
map("n", "]d", function()
|
||||
if not vim.fn.has("nvim-0.11") then
|
||||
vim.diagnostic.goto_next()
|
||||
else
|
||||
vim.diagnostic.jump({ count = 1 })
|
||||
end
|
||||
vim.diagnostic.jump({ count = 1 })
|
||||
end, opts)
|
||||
-- map("n", "qD", vim.diagnostic.setqflist, opts)
|
||||
end
|
||||
|
||||
function M.setup()
|
||||
vim.diagnostic.config {
|
||||
virtual_text = false,
|
||||
virtual_lines = {
|
||||
only_current_line = true,
|
||||
only_current_line = true
|
||||
},
|
||||
update_in_insert = false,
|
||||
underline = true,
|
||||
@ -90,38 +86,17 @@ function M.setup()
|
||||
}
|
||||
}
|
||||
|
||||
if not vim.fn.has("nvim-0.11") then
|
||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
|
||||
vim.lsp.handlers.hover, { border = vim.g.border_style })
|
||||
-- set default capabilities and attach function
|
||||
vim.lsp.config['*'] = {
|
||||
capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
}
|
||||
|
||||
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(
|
||||
vim.lsp.handlers.signature_help, { border = vim.g.border_style })
|
||||
end
|
||||
|
||||
-- set default capabilities
|
||||
include("lspconfig.util").default_config.capabilities = M.capabilities
|
||||
|
||||
-- run whenever a client attaches
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
-- make my attach function always run
|
||||
auto("LspAttach", {
|
||||
callback = function(event)
|
||||
-- map keybinds
|
||||
attach(event.buf)
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
-- FIXME: I don"t like this way of doing things, there has to be a better way
|
||||
|
||||
--- capabilities that are to be used in lsp servers, for those setup through
|
||||
--- lspconfig, this is already set as the default. Incase there is a server
|
||||
--- not setup through lspconfig this function may be called to receive the
|
||||
--- proper capabilities data.
|
||||
M.capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
|
||||
--- add capabilities to the default capabilities string
|
||||
---@param new_capabilities lsp.ClientCapabilities
|
||||
function M.add_capabilities(new_capabilities)
|
||||
vim.tbl_deep_extend("force", M.capabilities, new_capabilities)
|
||||
end
|
||||
|
||||
return M
|
||||
|
Reference in New Issue
Block a user