move to backup

This commit is contained in:
Dennis 2026-03-03 10:46:08 +01:00
parent 294dc66380
commit a0e3d792a9
182 changed files with 156 additions and 103 deletions

View file

@ -0,0 +1,49 @@
return {
"saghen/blink.cmp",
dependencies = { "rafamadriz/friendly-snippets" },
version = "1.*",
---@module 'blink.cmp'
---@type blink.cmp.Config
opts = {
keymap = {
preset = "enter",
["<Tab>"] = { "select_next", "fallback" },
["<S-Tab>"] = { "select_prev", "fallback" },
["<C-k>"] = { "show_documentation", "hide_documentation" },
},
appearance = {
nerd_font_variant = "mono",
},
completion = {
documentation = {
auto_show = false,
},
list = {
selection = {
preselect = false,
auto_insert = true,
},
},
},
signature = {
enabled = true,
},
sources = {
default = { "lsp", "path", "snippets", "buffer" },
per_filetype = {
sql = { "dadbod" },
mysql = { "dadbod" },
plsql = { "dadbod" },
codecompanion = { "codecompanion" },
},
providers = {
dadbod = { module = "vim_dadbod_completion.blink" },
},
},
fuzzy = { implementation = "prefer_rust_with_warning" },
cmdline = {
completion = { menu = { auto_show = true } },
},
},
opts_extend = { "sources.default" },
}

View file

@ -0,0 +1,26 @@
return {
"olimorris/codecompanion.nvim",
config = function()
require("codecompanion").setup({
strategies = {
chat = {
adapter = "anthropic",
},
inline = {
adapter = "anthropic",
},
},
})
vim.cmd([[cab cc CodeCompanion]])
end,
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
keys = {
{ "<leader>cc", "<cmd>CodeCompanionChat Toggle<cr>", desc = "Open companion chat", mode = "n" },
{ "<leader>ca", "<cmd>CodeCompanionActions<cr>", desc = "Open companion actions", mode = "n" },
{ "ga", "<cmd>CodeCompanionChat Add<cr>", desc = "Add selection", mode = "v" },
},
}

View file

@ -0,0 +1,28 @@
return {
"stevearc/conform.nvim",
opts = {
formatters_by_ft = {
typescriptreact = { "biome-check", "prettierd", stop_after_first = true },
astro = { "prettierd" },
typescript = { "biome-check", "prettierd", stop_after_first = true },
javascript = { "biome-check", "prettierd", stop_after_first = true },
javascriptreact = { "biome-check", "prettierd", stop_after_first = true },
html = { "prettierd" },
htmlangular = { "prettierd" },
css = { "biome-check", "prettierd", stop_after_first = true },
yaml = { "prettierd" },
markdown = { "prettierd" },
json = { "biome-check", "prettierd", stop_after_first = true },
lua = { "stylua" },
go = { "goimports" },
gomod = { "goimports" },
gowork = { "goimports" },
gotmpl = { "goimports" },
},
format_on_save = {
-- These options will be passed to conform.format()
timeout_ms = 500,
lsp_format = "fallback",
},
},
}

View file

@ -0,0 +1,3 @@
return {
"tpope/vim-dispatch",
}

View file

@ -0,0 +1,25 @@
return {
"folke/flash.nvim",
event = "VeryLazy",
opts = {},
config = function()
vim.api.nvim_create_autocmd("BufReadPost", {
pattern = "quickfix",
callback = function()
vim.keymap.set("n", "<CR>", "<CR>", { buffer = true })
end,
})
end,
keys = {
{
"<CR>",
mode = { "n", "x", "o" },
function()
if vim.bo.filetype ~= "qf" then
require("flash").jump()
end
end,
desc = "Flash",
},
},
}

View file

@ -0,0 +1,24 @@
return {
"trevorhauter/gitportal.nvim",
opts = {
always_include_current_line = true,
switch_branch_or_commit_upon_ingestion = "ask_first",
},
keys = {
{
"<leader>gll",
"<cmd>GitPortal<cr>",
desc = "Browse file at git remote",
},
{
"<leader>gly",
"<cmd>GitPortal copy_link_to_clipboard<cr>",
desc = "Yank git link to clipboard",
},
{
"<leader>glo",
"<cmd>GitPortal open_link<cr>",
desc = "Browse file at git remote",
},
},
}

View file

@ -0,0 +1,4 @@
return {
"romainl/vim-cool",
"tpope/vim-sleuth",
}

View file

@ -0,0 +1,78 @@
local palette = require("dnsc.palette")
local modus_vivendi_tinted = {
normal = {
a = { bg = palette.magenta, fg = palette.bg, gui = "bold" },
b = { bg = palette.bg_secondary, fg = palette.magenta },
c = { bg = palette.bg_secondary, fg = palette.magenta },
},
insert = {
a = { bg = palette.cyan_bright, fg = palette.bg, gui = "bold" },
b = { bg = palette.bg_secondary, fg = palette.cyan_bright },
c = { bg = palette.bg_secondary, fg = palette.cyan_bright },
},
visual = {
a = { bg = palette.blue_bright, fg = palette.bg, gui = "bold" },
b = { bg = palette.bg_secondary, fg = palette.blue_bright },
c = { bg = palette.bg_secondary, fg = palette.blue_bright },
},
replace = {
a = { bg = palette.red_bright, fg = palette.bg, gui = "bold" },
b = { bg = palette.bg_secondary, fg = palette.red_bright },
c = { bg = palette.bg_secondary, fg = palette.red_bright },
},
command = {
a = { bg = palette.green_bright, fg = palette.bg, gui = "bold" },
b = { bg = palette.bg_secondary, fg = palette.green_bright },
c = { bg = palette.bg_secondary, fg = palette.green_bright },
},
inactive = {
a = { bg = palette.bg_secondary, fg = palette.fg_dim },
b = { bg = palette.bg_secondary, fg = palette.fg_dim },
c = { bg = palette.bg_secondary, fg = palette.fg_dim },
},
}
return {
"nvim-lualine/lualine.nvim",
opts = {
options = {
theme = modus_vivendi_tinted,
icons_enabled = false,
-- globalstatus = true
component_separators = { left = "|", right = "|" },
section_separators = { left = "", right = "" },
},
winbar = {},
sections = {
lualine_a = {
{
"mode",
fmt = function(str)
return str:sub(1, 1)
end,
},
},
lualine_b = {
{
"filename",
file_status = true,
newfile_status = false,
path = 1,
shorting_target = 120,
symbols = {
modified = "[+]", -- Text to show when the file is modified.
readonly = "[-]", -- Text to show when the file is non-modifiable or readonly.
unnamed = "[No Name]", -- Text to show for unnamed buffers.
newfile = "[New]", -- Text to show for newly created file before first write
},
},
"encoding",
},
lualine_c = {},
lualine_x = {},
lualine_y = { "branch", "diff", "diagnostics" },
lualine_z = { "progress" },
},
},
}

View file

@ -0,0 +1,7 @@
return {
"jghauser/follow-md-links.nvim",
ft = { "markdown" },
config = function()
vim.keymap.set("n", "<bs>", ":edit #<cr>", { silent = true })
end,
}

View file

@ -0,0 +1,4 @@
return {
"echasnovski/mini.pairs",
opts = {},
}

View file

@ -0,0 +1,6 @@
return {
"kylechui/nvim-surround",
version = "*", -- Use for stability; omit to use `main` branch for the latest features
event = "VeryLazy",
opts = {},
}

View file

@ -0,0 +1,19 @@
return {
"stevearc/oil.nvim",
opts = {
keymaps = {
["q"] = "actions.close",
},
columns = {
"icon",
"permissions",
"size",
"mtime",
},
},
-- stylua: ignore
keys = {
{ "<leader>n", "<cmd>Oil<cr>", desc = "Open file browser", mode = "n" },
}
,
}

View file

@ -0,0 +1,3 @@
return {
'b0o/schemastore.nvim'
}

View file

@ -0,0 +1,217 @@
---@module 'snacks'
local filter_lsp_definitions = function(item)
if item.file:match("/react/ts5.0/") or item.file:match("react.d.ts") then
return false
end
return true
end
return {
"folke/snacks.nvim",
priority = 1000,
lazy = false,
opts = {
bigfile = { enabled = true },
bufdelete = { enabled = true },
git = { enabled = true },
-- TODO: Integrate GH and see how that works out
-- gh = {
-- enabled = true
-- }
indent = {
enabled = true,
},
input = { enabled = true },
lazygit = {
enabled = true,
},
notifier = { enabled = true },
picker = {
enabled = true,
prompt = "λ ",
},
statuscolumn = { enabled = true },
zen = { enabled = true },
},
keys = {
-- Git
{
"<leader>gg",
function()
Snacks.lazygit()
end,
desc = "Lazygit",
},
{
"<leader>gb",
function()
Snacks.git.blame_line()
end,
desc = "Show git blame for current line",
},
-- Zen Mode
{
"<leader>z",
function()
Snacks.zen()
end,
desc = "Toggle Zen Mode",
},
-- Picker
{
"<leader>.",
function()
Snacks.picker.files({ hidden = true })
end,
desc = "Files",
},
{
"<leader>a",
function()
Snacks.picker.files({ hidden = true, ignored = true })
end,
desc = "All files",
},
{
"<leader><leader>",
function()
Snacks.picker.git_files()
end,
desc = "Git files",
},
-- Find
{
"<leader>fr",
function()
Snacks.picker.recent()
end,
desc = "Recent",
},
{
"<leader>fp",
function()
Snacks.picker.projects()
end,
desc = "Projects",
},
{
"<leader>bb",
function()
Snacks.picker.buffers()
end,
desc = "List buffers",
},
{
"<leader>bd",
function()
Snacks.bufdelete()
end,
desc = "Buffers",
},
{
"<leader>bD",
function()
Snacks.bufdelete.all()
end,
desc = "Buffers",
},
{
"<leader>bo",
function()
Snacks.bufdelete.other()
end,
desc = "Buffers",
},
-- Search
{
"<leader>ss",
function()
Snacks.picker.grep()
end,
desc = "Grep",
},
{
"<leader>sw",
function()
Snacks.picker.grep_word()
end,
desc = "Visual selection or word",
mode = { "n", "x" },
},
{
"<leader>su",
function()
Snacks.picker.undo()
end,
desc = "Undo History",
},
-- Diagnostics
{
"<leader>td",
function()
Snacks.picker.diagnostics_buffer()
end,
desc = "Buffer Diagnostics",
},
{
"<leader>ta",
function()
Snacks.picker.diagnostics()
end,
desc = "Diagnostics",
},
-- LSP
{
"gd",
function()
Snacks.picker.lsp_definitions({ filter = { filter = filter_lsp_definitions } })
end,
desc = "Goto Definition",
},
{
"gD",
function()
Snacks.picker.lsp_declarations()
end,
desc = "Goto Declaration",
},
{
"grr",
function()
Snacks.picker.lsp_references()
end,
nowait = true,
desc = "References",
},
{
"gI",
function()
Snacks.picker.lsp_implementations()
end,
desc = "Goto Implementation",
},
{
"gy",
function()
Snacks.picker.lsp_type_definitions()
end,
desc = "Goto T[y]pe Definition",
},
{
"<leader>on",
function()
Snacks.notifier.show_history()
end,
desc = "Open notification history",
},
{
"<leader>oh",
function()
Snacks.picker.highlights()
end,
desc = "List highlights",
},
},
}

View file

@ -0,0 +1,13 @@
return {
"gbprod/substitute.nvim",
config = function()
local sub = require("substitute")
sub.setup()
vim.keymap.set("n", "s", sub.operator, { noremap = true })
vim.keymap.set("n", "ss", sub.line, { noremap = true })
vim.keymap.set("n", "S", sub.eol, { noremap = true })
vim.keymap.set("x", "s", sub.visual, { noremap = true })
end,
}

View file

@ -0,0 +1,100 @@
return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
opts = {
ensure_installed = {
"angular",
"bash",
"c",
"css",
"diff",
"html",
"javascript",
"jsdoc",
"json",
"jsonc",
"lua",
"luadoc",
"luap",
"markdown",
"markdown_inline",
"odin",
"go",
"goctl",
"gowork",
"gomod",
"gosum",
"gotmpl",
"printf",
"python",
"query",
"regex",
"toml",
"tsx",
"typescript",
"vim",
"vimdoc",
"xml",
"yaml",
},
auto_install = true,
sync_install = false,
ignore_install = {},
modules = {},
highlight = { enable = true },
indent = { enable = true },
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<c-space>",
node_incremental = "<c-space>",
scope_incremental = "<c-s>",
node_decremental = "<M-space>",
},
},
textobjects = {
select = {
enable = true,
lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
keymaps = {
-- You can use the capture groups defined in textobjects.scm
["aa"] = "@parameter.outer",
["ia"] = "@parameter.inner",
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
},
},
move = {
enable = true,
set_jumps = true, -- whether to set jumps in the jumplist
goto_next_start = {
["]m"] = "@function.outer",
["]]"] = "@class.outer",
},
goto_next_end = {
["]M"] = "@function.outer",
["]["] = "@class.outer",
},
goto_previous_start = {
["[m"] = "@function.outer",
["[["] = "@class.outer",
},
goto_previous_end = {
["[M"] = "@function.outer",
["[]"] = "@class.outer",
},
},
swap = {
enable = true,
swap_next = {
["<leader>a"] = "@parameter.inner",
},
swap_previous = {
["<leader>A"] = "@parameter.inner",
},
},
},
},
}

View file

@ -0,0 +1,153 @@
local utils = require("dnsc.utils")
return {
"folke/which-key.nvim",
event = "VeryLazy",
config = function()
local wk = require("which-key")
---@class wk.Opts
local opts = {
icons = { mappings = false },
win = { border = "rounded" },
}
wk.setup(opts)
wk.add({
{ "<leader>o", group = "+open", mode = "n" },
{
"<leader>od",
"<cmd>vsplit | lua vim.lsp.buf.definition()<cr>",
desc = "Go to definition in other window",
mode = "n",
},
{ "<leader>b", group = "+buffer", mode = "n" },
{
"<leader>bn",
"<Cmd>bn<CR>",
desc = "Move to next buffer",
mode = "n",
},
{
"<leader>bp",
"<Cmd>bp<CR>",
desc = "Move to previous buffer",
mode = "n",
},
{
"<leader>bk",
"<Cmd>bn<CR>",
desc = "Kill buffer and window",
mode = "n",
},
{ "<leader>c", group = "+code", mode = "n" },
{
"<leader>cr",
function()
utils.compile_project()
end,
desc = "Compile project",
mode = "n",
},
{ "<leader>f", group = "+file", mode = "n" },
{
"<leader>fn",
"<cmd>enew<cr>",
desc = "Create a new file",
mode = "n",
},
{
"<leader>fs",
"<cmd>w<cr>",
desc = "Save currently opened file",
mode = "n",
},
{ "<leader>qq", "<cmd>qa!<cr>", desc = "Leave neovim", mode = "n" },
{ "<leader>s", group = "+search", mode = "n" },
{ "<leader>g", group = "+git", mode = "n" },
{ "<leader>t", group = "+diagnostics", mode = "n" },
{ "<leader>ta", "<cmd>TodoQuickFix<cr>", desc = "Show all todo comments", mode = "n" },
{ "<leader>w", group = "+window", mode = "n" },
{
"<leader>w+",
":vertical resize +4<CR>",
desc = "Increase window size",
mode = "n",
},
{
"<leader>w-",
":vertical resize -4<CR>",
desc = "Decrease window size",
mode = "n",
},
{
"<leader>wx",
"<C-W>q",
desc = "Close active window",
mode = "n",
},
{
"<leader>wx",
":bd<CR>",
desc = "Kill active window and buffer",
mode = "n",
},
{
"<leader>wh",
"<C-W>h",
desc = "Move to window on left",
mode = "n",
},
{
"<leader>wj",
"<C-W>j",
desc = "Move to window on bottom",
mode = "n",
},
{
"<leader>wk",
"<C-W>k",
desc = "Move to window on top",
mode = "n",
},
{
"<leader>wl",
"<C-W>l",
desc = "Move to window on right",
mode = "n",
},
{
"<leader>ws",
"<cmd>sp<cr>",
desc = "Split windows horizontally",
mode = "n",
},
{
"<leader>wv",
"<cmd>vsp<cr>",
desc = "Split windows vertically",
mode = "n",
},
{
"<leader>wd",
"<cmd>close<cr>",
desc = "Delete window only",
mode = "n",
},
{ "<leader>x", group = "+config", mode = "n" },
{
"<leader>xn",
"<cmd>set number relativenumber<cr>",
desc = "Show relative numbers",
mode = "n",
},
{ "<leader>xr", "<cmd>source $MYVIMRC<cr>", desc = "Reload config", mode = "n" },
})
end,
}