Skip to content
Snippets Groups Projects
Commit b33e41c1 authored by codecraft's avatar codecraft :crocodile:
Browse files

Formatting some files, adding `rd` keybind for RustDebugables

parent 228d55b4
No related branches found
No related tags found
No related merge requests found
...@@ -72,6 +72,7 @@ local servers = { ...@@ -72,6 +72,7 @@ local servers = {
buildScripts = { buildScripts = {
enable = true, enable = true,
}, },
all_features = true,
}, },
procMacro = { procMacro = {
enable = true, enable = true,
......
local null_ls = require('null-ls') local null_ls = require("null-ls")
local mason_null_ls = require('mason-null-ls') local mason_null_ls = require("mason-null-ls")
local formatting = null_ls.builtins.formatting local formatting = null_ls.builtins.formatting
local diagnostics = null_ls.builtins.diagnostics local diagnostics = null_ls.builtins.diagnostics
...@@ -7,38 +7,38 @@ local diagnostics = null_ls.builtins.diagnostics ...@@ -7,38 +7,38 @@ local diagnostics = null_ls.builtins.diagnostics
local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
local formatters_linters = { local formatters_linters = {
prettier = {}, prettier = {},
rustfmt = {}, rustfmt = {},
black = {}, black = {},
stylua = {}, stylua = {},
} }
mason_null_ls.setup({ mason_null_ls.setup({
ensure_installed = vim.tbl_keys(formatters_linters) ensure_installed = vim.tbl_keys(formatters_linters),
}) })
null_ls.setup ({ null_ls.setup({
sources = { sources = {
formatting.prettier, formatting.prettier,
formatting.rustfmt, formatting.rustfmt,
formatting.black, formatting.black,
formatting.stylua, formatting.stylua,
}, },
on_attach = function(current_client, bufnr) on_attach = function(current_client, bufnr)
if current_client.supports_method("textDocument/formatting") then if current_client.supports_method("textDocument/formatting") then
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
vim.api.nvim_create_autocmd("BufWritePre", { vim.api.nvim_create_autocmd("BufWritePre", {
group = augroup, group = augroup,
buffer = bufnr, buffer = bufnr,
callback = function() callback = function()
vim.lsp.buf.format({ vim.lsp.buf.format({
filter = function(client) filter = function(client)
-- only use null-ls for formatting instead of lsp server -- only use null-ls for formatting instead of lsp server
return client.name == "null-ls" return client.name == "null-ls"
end, end,
bufnr = bufnr, bufnr = bufnr,
}) })
end, end,
}) })
end end
end, end,
}) })
...@@ -7,62 +7,62 @@ local codelldb_path = extension_path .. "adapter/codelldb" ...@@ -7,62 +7,62 @@ local codelldb_path = extension_path .. "adapter/codelldb"
local liblldb_path = extension_path .. "lldb/lib/liblldb.so" local liblldb_path = extension_path .. "lldb/lib/liblldb.so"
rt.setup({ rt.setup({
server = { server = {
on_attach = function(_, bufnr) on_attach = function(_, bufnr)
-- Hover actions -- Hover actions
vim.keymap.set("n", "<leader>h", rt.hover_actions.hover_actions, { buffer = bufnr }) vim.keymap.set("n", "<leader>h", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups -- Code action groups
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr }) vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
vim.keymap.set("n", "<leader>rd", "<CMD>RustDebuggables<CR>", { buffer = bufnr })
local nmap = function(keys, func, desc)
if desc then
desc = "LSP: " .. desc
end
local nmap = function(keys, func, desc) vim.keymap.set("n", keys, func, { buffer = bufnr, desc = desc })
if desc then end
desc = 'LSP: ' .. desc
end
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) if _.server_capabilities.documentSymbolProvider then
end require("nvim-navic").attach(_, bufnr)
end
if _.server_capabilities.documentSymbolProvider then nmap("<leader>rn", vim.lsp.buf.rename, "[R]e[n]ame")
require('nvim-navic').attach(_, bufnr) nmap("<leader>ca", vim.lsp.buf.code_action, "[C]ode [A]ction")
end nmap("<leader>di", vim.diagnostic.open_float, "[D]iagnostic [I]nfo")
nmap("<leader>dv", "<cmd>Telescope diagnostics<CR>", "[D]iagnostic [V]iew")
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame') nmap("gd", vim.lsp.buf.definition, "[G]oto [D]efinition")
nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction') nmap("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
nmap('<leader>di', vim.diagnostic.open_float, '[D]iagnostic [I]nfo') nmap("gI", vim.lsp.buf.implementation, "[G]oto [I]mplementation")
nmap('<leader>dv', '<cmd>Telescope diagnostics<CR>', '[D]iagnostic [V]iew') nmap("<leader>D", vim.lsp.buf.type_definition, "Type [D]efinition")
nmap("<leader>ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols")
nmap("<leader>ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols")
nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition') -- See `:help K` for why this keymap
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') nmap("<leader>K", vim.lsp.buf.hover, "Hover Documentation")
nmap('gI', vim.lsp.buf.implementation, '[G]oto [I]mplementation') nmap("<leader>k", vim.lsp.buf.signature_help, "Signature Documentation")
nmap('<leader>D', vim.lsp.buf.type_definition, 'Type [D]efinition')
nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
-- See `:help K` for why this keymap -- Lesser used LSP functionality
nmap('<leader>K', vim.lsp.buf.hover, 'Hover Documentation') nmap("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration")
nmap('<leader>k', vim.lsp.buf.signature_help, 'Signature Documentation') nmap("<leader>wa", vim.lsp.buf.add_workspace_folder, "[W]orkspace [A]dd Folder")
nmap("<leader>wr", vim.lsp.buf.remove_workspace_folder, "[W]orkspace [R]emove Folder")
nmap("<leader>wl", function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, "[W]orkspace [L]ist Folders")
-- Lesser used LSP functionality -- Create a command `:Format` local to the LSP buffer
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') vim.api.nvim_buf_create_user_command(bufnr, "Format", function(_)
nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder') vim.lsp.buf.format()
nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder') end, { desc = "Format current buffer with LSP" })
nmap('<leader>wl', function() end,
print(vim.inspect(vim.lsp.buf.list_workspace_folders())) },
end, '[W]orkspace [L]ist Folders') tools = {
hover_actions = {
-- Create a command `:Format` local to the LSP buffer auto_focus = true,
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) },
vim.lsp.buf.format() },
end, { desc = 'Format current buffer with LSP' }) dap = {
end, adapter = require("rust-tools.dap").get_codelldb_adapter(codelldb_path, liblldb_path),
}, },
tools = {
hover_actions = {
auto_focus = true,
}
},
dap = {
adapter = require("rust-tools.dap").get_codelldb_adapter(codelldb_path, liblldb_path),
},
}) })
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment