Many improvements.

This commit is contained in:
Drew 2025-04-27 20:57:49 -07:00
parent bcb5556f7c
commit 30e94f86f0
10 changed files with 247 additions and 7 deletions

View file

@ -1,18 +1,75 @@
require("which-key").add({
{ "<leader>b", group = "buffer" },
{ "<leader>bd", ":bd<CR>", name = "delete current" },
{ "<leader>c", group = "code" },
{ "<leader>ca", vim.lsp.buf.code_action, name = "code action" },
{ "<leader>cd", vim.diagnostic.open_float, name = "diagnostic" },
{ "<leader>e", Snacks.explorer.open, name = "explorer" },
{ "<leader>f", group = "find" },
{ "<leader>fb", Snacks.picker.buffers, name = "buffers" },
{ "<leader>ff", Snacks.picker.files, name = "files" },
{ "<leader>fg", Snacks.picker.grep, name = "grep" },
{ "<leader>g", group = "git" },
{ "<leader>gb", group = "blame" },
{ "<leader>gbf", ":Gitsigns blame<CR>", name = "file" },
{ "<leader>gbh", ":Gitsigns blame_line<CR>", name = "hover" },
{ "<leader>gbl", ":Gitsigns toggle_current_line_blame<CR>", name = "virtual text" },
{ "<leader>gh", group = "hunk" },
{ "<leader>ghr", ":Gitsigns reset_hunk<CR>", name = "reset hunk" },
{ "<leader>ghp", ":Gitsigns preview_hunk<CR>", name = "reset hunk" },
{ "<leader>s", group = "search" },
{ "<leader>ss", Snacks.picker.lsp_workspace_symbols, name = "symbols" },
{ "<leader>sg", Snacks.picker.grep, name = "grep" },
{ "<leader>u", group = "ui" },
{ "<leader>ut", Snacks.picker.colorschemes, name = "colorschemes" },
{
"<leader>ul",
function()
local ll = vim.diagnostic.config().virtual_lines
if ll == false then
ll = { current_line = true }
else
ll = false
end
vim.diagnostic.config({ virtual_lines = ll })
end,
name = "toggle lsp lines",
},
{ "<leader>w", group = "window" },
{ "<leader>wh", "<C-w>h", name = "left" },
{ "<leader>wj", "<C-w>j", name = "down" },
{ "<leader>wk", "<C-w>k", name = "right" },
{ "<leader>wl", "<C-w>l", name = "up" },
{ "<leader>wq", ":q<CR>", name = "quit" },
{ "g", group = "goto" },
{ "gd", vim.lsp.buf.definition, name = "definition" },
{ "gr", Snacks.picker.lsp_references, nowait = true, name = "references" },
{ "H", ":bprev<CR>", name = "previous buffer" },
{ "L", ":bnext<CR>", name = "next buffer" },
{
"[h",
function()
require("gitsigns").nav_hunk("prev")
end,
name = "Next Hunk",
},
{
"]h",
function()
require("gitsigns").nav_hunk("next")
end,
name = "Next Hunk",
},
})
Snacks.toggle.diagnostics():map("<leader>ud")

View file

@ -31,5 +31,8 @@ require("lazy").setup({
-- colorscheme that will be used when installing plugins.
install = {},
-- automatically check for plugin updates
checker = { enabled = true },
checker = {
enabled = true,
notify = false,
},
})

View file

@ -1,5 +1,7 @@
require("lspconfig").basedpyright.setup({})
require("lspconfig").ruff.setup({})
local capabilities = require("blink.cmp").get_lsp_capabilities()
require("lspconfig").basedpyright.setup({ capabilities = capabilities })
require("lspconfig").ruff.setup({ capabilities = capabilities })
require("lspconfig").lua_ls.setup({
on_init = function(client)
@ -31,4 +33,73 @@ require("lspconfig").lua_ls.setup({
settings = {
Lua = {},
},
capabilities = capabilities,
})
vim.g.rustaceanvim = {
-- Plugin configuration
-- tools = {
-- },
-- LSP configuration
server = {
-- on_attach = function(client, bufnr)
-- -- you can also put keymaps in here
--end,
default_settings = {
-- rust-analyzer language server configuration
["rust-analyzer"] = {
cargoWatch = true,
cargo = {
allFeatures = true,
allTargets = false,
loadOutDirsFromCheck = true,
buildScripts = {
enable = true,
},
},
checkOnSave = {
allFeatures = true,
allTargets = false,
},
diagnostics = {
enable = true,
},
procMacro = {
enable = true,
ignored = {
["async-trait"] = { "async_trait" },
["napi-derive"] = { "napi" },
["async-recursion"] = { "async_recursion" },
},
},
files = {
excludeDirs = {
".direnv",
".git",
".github",
".gitlab",
"bin",
"node_modules",
"target",
"venv",
".venv",
},
},
},
},
},
-- DAP configuration
dap = {},
}
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("lsp", { clear = true }),
callback = function(args)
vim.api.nvim_create_autocmd("BufWritePre", {
buffer = args.buf,
callback = function()
vim.lsp.buf.format({ async = false, id = args.data.client_id })
end,
})
end,
})

View file

@ -1,9 +1,22 @@
vim.opt.termguicolors = true
vim.cmd("colorscheme tokyonight")
vim.wo.number = true
vim.wo.relativenumber = true
vim.diagnostic.config({
virtual_text = true,
virtual_lines = {
current_line = true,
},
update_in_insert = true,
signs = true,
})
vim.api.nvim_create_autocmd("TextYankPost", {
desc = "Highlight when yanking (copying) text",
group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }),
callback = function()
vim.highlight.on_yank()
end,
})