less of a rewrite, more of a restructure

This commit is contained in:
2026-04-07 14:06:49 +01:00
parent 7eae05c8e2
commit cfc5baa8ad
26 changed files with 406 additions and 456 deletions

View File

@@ -0,0 +1,55 @@
return {
{
"okuuva/auto-save.nvim",
version = "^1.0.0", -- see https://devhints.io/semver, alternatively use '*' to use the latest tagged release
cmd = "ASToggle", -- optional for lazy loading on command
event = { "InsertLeave", "TextChanged" },
opts = {},
config = function(opts)
require("auto-save").setup({
enabled = true,
trigger_events = { -- See :h events
immediate_save = { "BufLeave", "FocusLost", "QuitPre", "VimSuspend" }, -- vim events that trigger an immediate save
defer_save = { "InsertLeave" }, -- vim events that trigger a deferred save (saves after `debounce_delay`)
cancel_deferred_save = { "InsertEnter" }, -- vim events that cancel a pending deferred save
},
debounce_delay = 1000,
noautocmd = true,
})
local group = vim.api.nvim_create_augroup("autosave", {})
vim.api.nvim_create_autocmd("User", {
pattern = "AutoSaveWritePre",
group = group,
callback = function(opts)
if opts.data.saved_buffer ~= nil then
local filename = vim.fn.expand("%:t")
print("Saved '" .. filename .. "' at " .. vim.fn.strftime("%H:%M:%S"))
end
end,
})
vim.api.nvim_create_autocmd("User", {
pattern = "AutoSaveEnable",
group = group,
callback = function(opts)
print("AutoSave enabled")
end,
})
vim.api.nvim_create_autocmd("User", {
pattern = "AutoSaveDisable",
group = group,
callback = function(opts)
print("AutoSave disabled")
end,
})
end,
},
{
"vladdoster/remember.nvim",
config = function()
require("remember").setup({})
end,
},
}

View File

@@ -0,0 +1,73 @@
return {
"echasnovski/mini.nvim",
version = "",
config = function()
require("mini.pairs").setup() -- Bracket pairs and stuff
require("mini.ai").setup() -- Around and In extension for visual mode
require("mini.cursorword").setup() -- Underline current word below cursor (makes it easier to c and d)
require("mini.indentscope").setup({ -- shows indents
symbol = "",
draw = {
delay = 10,
animation = require("mini.indentscope").gen_animation.linear({
duration = 15,
unit = "step",
easing = "out",
}),
},
})
require("mini.trailspace").setup() -- Shows useless spaces
require("mini.sessions").setup({ -- dir based session management
autoread = true,
autowrite = true,
file = ".session",
force = { read = false, write = true, delete = true },
})
require("mini.surround").setup() -- Suround selections with characters
require("mini.move").setup({ -- move selection in visual mode
mappings = {
down = "J",
up = "K",
},
})
require("mini.icons").setup() -- Icon provider
-- local animate = require("mini.animate") -- animations ovs
-- require("mini.animate").setup({
-- cursor = {
-- enable = false,
-- },
-- scroll = {
-- -- Animate for 200 milliseconds with linear easing
-- timing = animate.gen_timing.linear({ duration = 100, unit = "total" }),
-- -- Animate equally but with at most 120 steps instead of default 60
-- subscroll = animate.gen_subscroll.equal({ max_output_steps = 60 }),
-- },
-- open = {
-- -- Animate for 400 milliseconds with linear easing
-- timing = animate.gen_timing.linear({ duration = 100, unit = "total" }),
-- -- Animate with wiping from nearest edge instead of default static one
-- winconfig = animate.gen_winconfig.wipe({ direction = "from_edge" }),
-- -- Make bigger windows more transparent
-- winblend = animate.gen_winblend.linear({ from = 0, to = 0 }),
-- },
-- close = {
-- -- Animate for 400 milliseconds with linear easing
-- timing = animate.gen_timing.linear({ duration = 100, unit = "total" }),
-- -- Animate with wiping to nearest edge instead of default static one
-- winconfig = animate.gen_winconfig.wipe({ direction = "to_edge" }),
-- -- Make bigger windows more transparent
-- winblend = animate.gen_winblend.linear({ from = 0, to = 0 }),
-- },
-- })
end,
}

View File

@@ -0,0 +1,83 @@
return {
{
"nvim-telescope/telescope.nvim",
tag = "",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope-symbols.nvim",
"nvim-telescope/telescope-ui-select.nvim",
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
},
config = function()
require("telescope").setup({
defaults = {
file_ignore_patterns = { ".git", ".venv", ".node_modules" },
},
pickers = {
live_grep = {
additional_args = function(opts)
return { "--hidden" }
end,
},
},
extensions = {
file_browser = {
theme = "ivy",
hijack_netrw = true,
},
["ui-select"] = {
require("telescope.themes").get_dropdown({
-- even more opts
}),
},
},
})
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>ff", function()
builtin.find_files({ hidden = true })
end, { desc = "Telescope find files (current file dir)" })
vim.keymap.set("n", "<space>fn", function()
local full_path = vim.api.nvim_buf_get_name(0)
local dir = vim.fn.fnamemodify(full_path, ":h")
require("telescope").extensions.file_browser.file_browser({
path = dir,
})
end)
vim.keymap.set("n", "<space>fs", function() -- select sessions
MiniSessions.select()
end)
vim.keymap.set("n", "<space>fd", function() -- select sessions
MiniSessions.select("delete")
end)
vim.keymap.set("n", "<leader>fg", function()
builtin.live_grep({ hidden = true })
end, { desc = "Telescope live grep (current file dir)" })
vim.keymap.set("n", "<leader>fb", function()
builtin.buffers({ cwd = vim.fn.expand("%:p:h") }) -- buffers dont need cwd, but harmless
end, { desc = "Telescope buffers" })
require("telescope").load_extension("file_browser")
require("telescope").load_extension("ui-select")
require("telescope").load_extension("nerdy")
end,
},
{
"nvim-telescope/telescope-file-browser.nvim",
dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" },
},
{
"2kabhishek/nerdy.nvim",
cmd = "Nerdy",
opts = {
max_recents = 30, -- Configure recent icons limit
copy_to_clipboard = false, -- Copy glyph to clipboard instead of inserting
copy_register = "+", -- Register to use for copying (if `copy_to_clipboard` is true)
},
},
}