summaryrefslogtreecommitdiff
path: root/pkgs
diff options
context:
space:
mode:
authortriethyl <triethylammonium@pm.me>2025-11-05 20:38:53 -0500
committertriethyl <triethylammonium@pm.me>2025-11-05 20:38:53 -0500
commit0a7aa13d9e8a0e526353c6538d8cf2d365ade86b (patch)
treea320387bd5bd408f863ffc476e5ab18b90b175a0 /pkgs
parent56b150edeacbe30f1e19e5a7df03499c5dced06d (diff)
neovim: lots of new mini plugins and configs
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/custom-neovim/config/lua/keymaps.lua63
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/auto-session.lua13
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/fzf.lua51
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/luasnip.lua10
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-ai.lua8
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-bracketed.lua8
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-clue.lua18
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-completion.lua39
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-files.lua1
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-indentscope.lua11
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-jump.lua8
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-pairs.lua1
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-splitjoin.lua8
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/mini-surround.lua8
-rw-r--r--pkgs/custom-neovim/default.nix14
-rw-r--r--pkgs/custom-neovim/todo.md10
16 files changed, 199 insertions, 72 deletions
diff --git a/pkgs/custom-neovim/config/lua/keymaps.lua b/pkgs/custom-neovim/config/lua/keymaps.lua
index 86632ee..9c1d260 100644
--- a/pkgs/custom-neovim/config/lua/keymaps.lua
+++ b/pkgs/custom-neovim/config/lua/keymaps.lua
@@ -17,40 +17,8 @@ mapkey("n", "<leader>o", "Open old file picker", ":FzfLua oldfiles<cr>", "fzf-lu
mapkey("n", "<leader>/", "Open live grep picker", ":FzfLua live_grep<cr>", "fzf-lua")
mapkey("n", "<leader>k", "Open colorscheme picker", ":FzfLua colorschemes<cr>", "fzf-lua")
mapkey("n", "<leader>z", "Open zoxide picker", ":FzfLua zoxide<cr>", "fzf-lua")
-mapkey("n", "<leader>l", "Open tab directory picker", function ()
- local dirstr = vim.fn.system("fd -t d")
-
- local pos,dirtbl = 0,{}
- for st,sp in function() return string.find(dirstr, "\n", pos, true) end do
- table.insert(dirtbl, string.sub(dirstr, pos, st - 1))
- pos = sp + 1
- end
- table.insert(dirtbl, string.sub(dirstr, pos))
- vim.ui.select(
- dirtbl,
- {},
- function (choice)
- vim.cmd.tcd(choice)
- end
- )
-end, "fzf-lua")
-mapkey("n", "<leader>L", "Open directory picker", function ()
- local dirstr = vim.fn.system("fd -t d")
-
- local pos,dirtbl = 0,{}
- for st,sp in function() return string.find(dirstr, "\n", pos, true) end do
- table.insert(dirtbl, string.sub(dirstr, pos, st - 1))
- pos = sp + 1
- end
- table.insert(dirtbl, string.sub(dirstr, pos))
- vim.ui.select(
- dirtbl,
- {},
- function (choice)
- vim.cmd.cd(choice)
- end
- )
-end, "fzf-lua")
+mapkey("n", "<leader>L", "Open cd picker", ":lua Custom_pickers.fzf_dir_cd()<cr>", "fzf-lua")
+mapkey("n", "<leader>l", "Open tab cd picker", ":lua Custom_pickers.fzf_dir_tcd()<cr>", "fzf-lua")
-- File manager
mapkey("n", "<leader>e", "Open file manager", ":lua MiniFiles.open()<cr>", "mini.files")
@@ -61,7 +29,7 @@ mapkey("n", "<leader>ga", "Git add", ":Git add %:p<cr>", "mini-git")
mapkey("n", "<leader>gA", "Git add cwd", function() vim.cmd("Git add " .. vim.fn.getcwd() .. "/.") end, "mini-git")
mapkey("n", "<leader>gr", "Git remove", ":Git rm %:p<cr>", "mini-git")
mapkey("n", "<leader>gc", "Git commit", ":Git commit<cr>", "mini-git")
-mapkey("n", "<leader>gc", "Browse git commits", ":FzfLua git_commits<cr>", "fzf-lua")
+mapkey("n", "<leader>gC", "Browse git commits", ":FzfLua git_commits<cr>", "fzf-lua")
mapkey("n", "<leader>gb", "Browse git branches", ":FzfLua git_branches<cr>", "fzf-lua")
mapkey("n", "<leader>gB", "Browse git blame", ":FzfLua git_blame<cr>", "fzf-lua")
mapkey("n", "<leader>gg", "Git status", ":FzfLua git_status<cr>", "fzf-lua")
@@ -94,25 +62,14 @@ mapkey("n", "<leader>j", "Manage comment graphics", "")
mapkey("n", "<leader>jb", "Create comment box", ":CB")
-- Session
--- mapkey("n", "<leader>w", "Manage sessions", "")
--- mapkey("n", "<leader>ww", "Open a session", ":AutoSession search<cr>", "mini.pick")
--- mapkey("n", "<leader>wd", "Delete a session", ":AutoSession deletePicker<cr>", "mini.pick")
--- mapkey("n", "<leader>wD", "Delete current session", ":AutoSession delete<cr>", "mini.pick")
--- mapkey("n", "<leader>wr", "Restore last session", ":AutoSession restore<cr>")
--- mapkey("n", "<leader>wp", "Purge orphaned sessions", ":AutoSession purgeOrphaned<cr>")
--- mapkey("n", "<leader>ws", "Save session", ":AutoSession save<cr>")
-
-mapkey("n", "<leader>w", "Manage sessions", "", "mini.sessions")
-mapkey("n", "<leader>ww", "Open a session", ":lua MiniSessions.select('read')<cr>", "fzf-lua")
-mapkey("n", "<leader>wd", "Delete a session", ":lua MiniSessions.select('delete')<cr>", "fzf-lua")
-mapkey("n", "<leader>ws", "Save current session", ":lua MiniSessions.write()<cr>")
-mapkey("n", "<leader>wS", "Save as new session", function()
- local session_name = vim.fn.input("Session name: ")
- vim.cmd.lua("MiniSessions.write("..session_name..")")
-end)
-mapkey("n", "<leader>wn", "Create new session", function()
+mapkey("n", "<leader>w", "Manage sessions", "")
+mapkey("n", "<leader>ww", "Manage Sessions", ":AutoSession search<cr>", "fzf-lua")
+mapkey("n", "<leader>ws", "Save current session", ":AutoSession save<cr>")
+mapkey("n", "<leader>wr", "Open last session", ":AutoSession restore<cr>")
+mapkey("n", "<leader>wp", "Purge orphaned sessions", ":AutoSession purgeOrphaned<cr>")
+mapkey("n", "<leader>wl", "Leave current session", function()
vim.cmd.wa()
- vim.cmd.lua("MiniSessions.write()")
+ vim.cmd("AutoSession save")
vim.cmd.new()
vim.cmd([[.+,$bwipeout]])
vim.cmd.cd("~")
diff --git a/pkgs/custom-neovim/config/lua/plugins/auto-session.lua b/pkgs/custom-neovim/config/lua/plugins/auto-session.lua
new file mode 100644
index 0000000..deedd9a
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/auto-session.lua
@@ -0,0 +1,13 @@
+return {
+ "auto-session",
+ lazy = false,
+ after = function()
+ require("auto-session").setup {
+ auto_create = false,
+ legacy_cmds = false,
+ suppressed_dirs = {
+ "~/",
+ },
+ }
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/fzf.lua b/pkgs/custom-neovim/config/lua/plugins/fzf.lua
index 8af7284..1c1b9aa 100644
--- a/pkgs/custom-neovim/config/lua/plugins/fzf.lua
+++ b/pkgs/custom-neovim/config/lua/plugins/fzf.lua
@@ -2,8 +2,57 @@ return {
"fzf-lua",
cmd = "FzfLua",
after = function ()
- require("fzf-lua").setup {}
+ require("fzf-lua").setup {
+ "default-title",
+ files = {
+ cwd_prompt = false,
+ },
+ }
require("fzf-lua").register_ui_select()
+
+ Custom_pickers = {}
+
+ Custom_pickers.fzf_dir_cd = function()
+ local dirs = {}
+ for name, type in vim.fs.dir("./", {depth = 100}) do
+ if type == "directory" then
+ table.insert(dirs, name)
+ end
+ end
+
+ require("fzf-lua").fzf_exec( dirs, {
+ winopts = {
+ title = " Directories ",
+ },
+ prompt = "❯ ",
+ actions = {
+ ["enter"] = function(selected)
+ vim.cmd.cd(selected)
+ end
+ }
+ })
+ end
+
+ Custom_pickers.fzf_dir_tcd = function()
+ local dirs = {}
+ for name, type in vim.fs.dir("./", {depth = 100}) do
+ if type == "directory" then
+ table.insert(dirs, name)
+ end
+ end
+
+ require("fzf-lua").fzf_exec( dirs, {
+ winopts = {
+ title = " Directories ",
+ },
+ prompt = "❯ ",
+ actions = {
+ ["enter"] = function(selected)
+ vim.cmd.tcd(selected)
+ end
+ }
+ })
+ end
end,
}
diff --git a/pkgs/custom-neovim/config/lua/plugins/luasnip.lua b/pkgs/custom-neovim/config/lua/plugins/luasnip.lua
new file mode 100644
index 0000000..a981de1
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/luasnip.lua
@@ -0,0 +1,10 @@
+return {
+ "luasnip",
+ lazy = true,
+ before = function ()
+ vim.cmd.packadd("friendly-snippets")
+ end,
+ after = function ()
+ require("luasnip.loaders.from_vscode").lazy_load()
+ end,
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-ai.lua b/pkgs/custom-neovim/config/lua/plugins/mini-ai.lua
new file mode 100644
index 0000000..ad54e1a
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-ai.lua
@@ -0,0 +1,8 @@
+return {
+ "mini.ai",
+ -- enabled = false,
+ lazy = false,
+ after = function ()
+ require("mini.ai").setup()
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-bracketed.lua b/pkgs/custom-neovim/config/lua/plugins/mini-bracketed.lua
new file mode 100644
index 0000000..4ee3d3f
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-bracketed.lua
@@ -0,0 +1,8 @@
+return {
+ "mini.bracketed",
+ -- enabled = false,
+ lazy = false,
+ after = function ()
+ require("mini.bracketed").setup()
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-clue.lua b/pkgs/custom-neovim/config/lua/plugins/mini-clue.lua
index 25c0866..21217e5 100644
--- a/pkgs/custom-neovim/config/lua/plugins/mini-clue.lua
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-clue.lua
@@ -35,6 +35,20 @@ return {
-- `z` key
{ mode = 'n', keys = 'z' },
{ mode = 'x', keys = 'z' },
+
+ -- mini.surround
+ { mode = 'n', keys = 's' },
+ { mode = 'v', keys = 's' },
+
+ -- mini.bracketed
+ { mode = 'n', keys = '[' },
+ { mode = 'v', keys = '[' },
+ { mode = 'n', keys = ']' },
+ { mode = 'v', keys = ']' },
+
+ -- mini.ai
+ { mode = 'v', keys = 'a' },
+ { mode = 'v', keys = 'i' },
},
clues = {
@@ -45,6 +59,10 @@ return {
miniclue.gen_clues.registers(),
miniclue.gen_clues.windows(),
miniclue.gen_clues.z(),
+
+ { mode = {'n', 'v'}, keys = 's' },
+ miniclue.gen_clues.square_brackets(),
+ { mode = 'v', keys = {'a', 'i'}},
},
window = {
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-completion.lua b/pkgs/custom-neovim/config/lua/plugins/mini-completion.lua
new file mode 100644
index 0000000..7cc0fa6
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-completion.lua
@@ -0,0 +1,39 @@
+return {
+ "mini.completion",
+ enabled = true,
+ lazy = true,
+ event = "InsertEnter",
+ after = function()
+ require("mini.completion").setup {
+ window = {
+ info = {
+ border = "rounded",
+ },
+ signature = {
+ border = "rounded",
+ },
+ },
+ }
+ local imap_expr = function(lhs, rhs)
+ vim.keymap.set('i', lhs, rhs, { expr = true })
+ end
+ imap_expr('<Tab>', [[pumvisible() ? "\<C-n>" : "\<Tab>"]])
+ imap_expr('<S-Tab>', [[pumvisible() ? "\<C-p>" : "\<S-Tab>"]])
+
+ -- Disable arrow keys from navigating completion window.
+ -- I like to navigate inside insert mode and the window prevents that.
+
+ vim.keymap.set('i', '<Up>', function()
+ -- cancel completion popup
+ vim.fn.complete(vim.fn.col('.'), {})
+
+ vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<Up>', true, false, true), 'n', true)
+ end, { noremap = true, desc = 'Cancel completion and move cursor up' })
+
+ vim.keymap.set('i', '<Down>', function()
+ vim.fn.complete(vim.fn.col('.'), {})
+
+ vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<Down>', true, false, true), 'n', true)
+ end, { noremap = true, desc = 'Cancel completion and move cursor down' })
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-files.lua b/pkgs/custom-neovim/config/lua/plugins/mini-files.lua
index 0dc977a..9249a6c 100644
--- a/pkgs/custom-neovim/config/lua/plugins/mini-files.lua
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-files.lua
@@ -1,6 +1,5 @@
return {
"mini.files",
- -- enabled = false,
lazy = true,
after = function()
require("mini.files").setup {
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-indentscope.lua b/pkgs/custom-neovim/config/lua/plugins/mini-indentscope.lua
new file mode 100644
index 0000000..82397c1
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-indentscope.lua
@@ -0,0 +1,11 @@
+return {
+ "mini.indentscope",
+ lazy = false,
+ after = function()
+ require("mini.indentscope").setup {
+ options = {
+ try_as_border = true,
+ },
+ }
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-jump.lua b/pkgs/custom-neovim/config/lua/plugins/mini-jump.lua
new file mode 100644
index 0000000..b796e15
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-jump.lua
@@ -0,0 +1,8 @@
+return {
+ "mini.jump",
+ -- enabled = false,
+ lazy = false,
+ after = function ()
+ require("mini.jump").setup()
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-pairs.lua b/pkgs/custom-neovim/config/lua/plugins/mini-pairs.lua
index 38b36a0..e799c50 100644
--- a/pkgs/custom-neovim/config/lua/plugins/mini-pairs.lua
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-pairs.lua
@@ -1,6 +1,5 @@
return {
"mini.pairs",
- -- enabled = false,
lazy = true,
event = "InsertEnter",
after = function()
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-splitjoin.lua b/pkgs/custom-neovim/config/lua/plugins/mini-splitjoin.lua
new file mode 100644
index 0000000..7118a0a
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-splitjoin.lua
@@ -0,0 +1,8 @@
+return {
+ "mini.splitjoin",
+ -- enabled = false,
+ lazy = false,
+ after = function ()
+ require("mini.splitjoin").setup()
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/mini-surround.lua b/pkgs/custom-neovim/config/lua/plugins/mini-surround.lua
new file mode 100644
index 0000000..61ec7e8
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/mini-surround.lua
@@ -0,0 +1,8 @@
+return {
+ "mini.surround",
+ -- enabled = false,
+ lazy = false,
+ after = function ()
+ require("mini.surround").setup()
+ end
+}
diff --git a/pkgs/custom-neovim/default.nix b/pkgs/custom-neovim/default.nix
index 3938292..33fdd4a 100644
--- a/pkgs/custom-neovim/default.nix
+++ b/pkgs/custom-neovim/default.nix
@@ -32,23 +32,25 @@ in
fzf-lua
mini-clue
mini-files
- mini-extra
mini-icons
mini-base16
- mini-starter
- plenary-nvim # UI library
- actions-preview-nvim # Preview lsp actions
+ mini-indentscope
+ mini-completion
# Completion Plugins
- blink-cmp
luasnip
friendly-snippets
# Utility Plugins
mini-pairs
+ mini-bracketed
+ mini-jump
+ mini-ai
+ mini-splitjoin
+ mini-surround
vim-nix # Indentation for nix files
comment-box-nvim
- mini-sessions
+ auto-session
# Git Plugins
mini-git
diff --git a/pkgs/custom-neovim/todo.md b/pkgs/custom-neovim/todo.md
index 14cd935..2e60b16 100644
--- a/pkgs/custom-neovim/todo.md
+++ b/pkgs/custom-neovim/todo.md
@@ -1,12 +1,2 @@
# Todo
-- add image.nvim
-- add scope indicator
-- make session picker
-- integrate lazygit
-
-## Eventually if Possible
-
-- Make blink.cmp not work in comments.
-- Make statusline progress component work in neovide.
-- Make custom carbon colorscheme.