- Add init.lua entry point - Add lua/ modules: options, keymaps, autocmds, usercmds, pack, treesitter, lsp - Add .gitignore - Add nvim-pack-lock.json for plugin version locking Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
92 lines
2.8 KiB
Lua
92 lines
2.8 KiB
Lua
vim.pack.add({
|
|
"https://github.com/nvim-mini/mini.nvim",
|
|
"https://github.com/rafamadriz/friendly-snippets",
|
|
{ src = "https://github.com/nvim-treesitter/nvim-treesitter", branch = "main" },
|
|
"https://github.com/neovim/nvim-lspconfig",
|
|
"https://github.com/mason-org/mason.nvim",
|
|
"https://github.com/tpope/vim-fugitive",
|
|
})
|
|
|
|
-- mini files ----
|
|
local MiniFiles = require("mini.files")
|
|
MiniFiles.setup({
|
|
mappings = {
|
|
go_in = "<CR>",
|
|
go_in_plus = "L",
|
|
go_out = "_",
|
|
go_out_plus = "H",
|
|
},
|
|
})
|
|
|
|
vim.keymap.set("n", "<leader>-", "<cmd>lua MiniFiles.open()<CR>", { desc = "Toggle mini file explorer" })
|
|
vim.keymap.set("n", "-", function()
|
|
MiniFiles.open(vim.api.nvim_buf_get_name(0), false)
|
|
MiniFiles.reveal_cwd()
|
|
end, { desc = "Toggle into currently opened file" })
|
|
|
|
---- mini notify ----
|
|
require("mini.notify").setup({
|
|
-- only show messages
|
|
content = {
|
|
format = function(notif)
|
|
return notif.msg
|
|
end,
|
|
},
|
|
})
|
|
|
|
--- mini cmdline completion ---
|
|
require("mini.cmdline").setup({
|
|
autocorrect = { enable = false }
|
|
})
|
|
|
|
--- mini surround ---
|
|
require("mini.surround").setup()
|
|
-- Default Keymaps
|
|
-- | `sa` | Add surrounding or Direct with 'saiw' |
|
|
-- | `sd` | Delete surrounding |
|
|
-- | `sr` | Replace surrounding |
|
|
-- | `sf` | Find surrounding (right) |
|
|
-- | `sF` | Find surrounding (left) |
|
|
-- | `sh` | Highlight surrounding |
|
|
-- | `sn` | Update n_lines |
|
|
-- | `l` / `n` | as suffix for prev/next |
|
|
|
|
--- mini picker ---
|
|
local MiniPick = require("mini.pick")
|
|
local MiniExtra = require("mini.extra")
|
|
MiniPick.setup()
|
|
MiniExtra.setup()
|
|
|
|
-- keymaps
|
|
vim.keymap.set("n", "<leader>ff", function() MiniPick.builtin.files() end, { desc = "Mini File Picker" })
|
|
vim.keymap.set("n", "<leader>fw", function() MiniPick.builtin.grep({ pattern = vim.fn.expand("<cword>") }) end, { desc = "Grep word/Search word" })
|
|
vim.keymap.set("n", "<leader>vh", function() MiniPick.builtin.help() end, { desc = "Mini Help" })
|
|
|
|
vim.keymap.set("n", "<leader>ds", function() MiniExtra.pickers.diagnostic() end, { desc = "Mini Picker Diagnostics" })
|
|
vim.keymap.set("n", "<leader>sk", function() MiniExtra.pickers.keymaps() end, { desc = 'Search keymaps' })
|
|
|
|
--- mini completions ---
|
|
require("mini.completion").setup({
|
|
lsp_completion = {
|
|
auto_setup = true,
|
|
}
|
|
})
|
|
|
|
--- mini snippets ---
|
|
local MiniSnippets = require("mini.snippets")
|
|
MiniSnippets.setup({
|
|
snippets = {
|
|
MiniSnippets.gen_loader.from_lang(), -- loads friendly-snippets
|
|
},
|
|
})
|
|
MiniSnippets.start_lsp_server({ match = false })
|
|
|
|
--- mini diff and fugitive ---
|
|
local MiniDiff = require("mini.diff")
|
|
MiniDiff.setup({
|
|
source = MiniDiff.gen_source.git({ index = false }),
|
|
})
|
|
|
|
vim.keymap.set("n", "<leader>gg", "<cmd>tabnew | Git | only<cr>", { desc = "Fugitive Full Page New Tab" })
|
|
vim.keymap.set("n", "<leader>gd", "<cmd>Gvdiffsplit<CR>", { desc = "Git diff split", })
|