nvim: use vim.pack
This commit is contained in:
@@ -6,11 +6,7 @@ set("n", "<M-j>", "<C-w>j")
|
||||
set("n", "<M-l>", "<C-w>l")
|
||||
|
||||
set("n", "<Esc>", "<cmd>nohlsearch<cr>")
|
||||
set("n", "<leader>k", "<cmd>cp<cr>")
|
||||
set("n", "<leader>j", "<cmd>cn<cr>")
|
||||
set("n", "<leader>K", "<cmd>cp<cr>")
|
||||
set("n", "<leader>J", "<cmd>cn<cr>")
|
||||
set("n", "<leader>x", "<cmd>copen<cr>")
|
||||
set("n", "<leader>X", "<cmd>cclose<cr>")
|
||||
|
||||
set("n", "<leader>a", "<cmd>AutoSession search<cr>")
|
||||
|
||||
require("config.remap.snacks")
|
||||
|
||||
@@ -1,204 +0,0 @@
|
||||
local set = vim.keymap.set
|
||||
|
||||
set("n", "<leader><space>", function()
|
||||
Snacks.picker.smart()
|
||||
end, { desc = "Smart Find Files" })
|
||||
|
||||
set("n", "<leader>b", function()
|
||||
Snacks.picker.buffers()
|
||||
end, { desc = "Buffers" })
|
||||
|
||||
set("n", "<leader>e", function()
|
||||
Snacks.explorer()
|
||||
end, { desc = "File Explorer" })
|
||||
|
||||
set("n", "<leader>r", function()
|
||||
Snacks.picker.recent()
|
||||
end, { desc = "Recent files" })
|
||||
|
||||
set("n", "<leader>R", function()
|
||||
Snacks.picker.resume()
|
||||
end, { desc = "Resume" })
|
||||
|
||||
set("n", "<leader>p", function()
|
||||
Snacks.picker.projects()
|
||||
end, { desc = "Projects" })
|
||||
|
||||
set("n", "<leader>l", function()
|
||||
Snacks.picker.lines()
|
||||
end, { desc = "Buffer lines" })
|
||||
|
||||
set("n", "<leader>L", function()
|
||||
Snacks.picker.grep_buffers()
|
||||
end, { desc = "Grep Open Buffers" })
|
||||
|
||||
set("n", "<leader>F", function()
|
||||
Snacks.picker.files()
|
||||
end, { desc = "Find Files" })
|
||||
|
||||
set("n", "<leader>S", function()
|
||||
Snacks.picker.grep()
|
||||
end, { desc = "Grep" })
|
||||
|
||||
set("n", "<leader>B", function()
|
||||
Snacks.picker.git_branches()
|
||||
end, { desc = "Git Branches" })
|
||||
|
||||
set({ "n", "v" }, "<leader>xB", function()
|
||||
Snacks.gitbrowse()
|
||||
end, { desc = "Git Browse" })
|
||||
|
||||
set("n", "<leader>i", function()
|
||||
Snacks.picker.git_log_line()
|
||||
end, { desc = "Git Log Line" })
|
||||
|
||||
set("n", "<leader>I", function()
|
||||
Snacks.picker.git_log()
|
||||
end, { desc = "Git Log" })
|
||||
|
||||
set("n", "<leader>t", function()
|
||||
Snacks.picker.git_status()
|
||||
end, { desc = "Git Status" })
|
||||
|
||||
set("n", "<leader>H", function()
|
||||
Snacks.picker.git_diff()
|
||||
end, { desc = "Git Diff (Hunks)" })
|
||||
|
||||
set("n", "<leader>xS", function()
|
||||
Snacks.picker.git_stash()
|
||||
end, { desc = "Git Stash" })
|
||||
|
||||
set("n", "<leader>f", function()
|
||||
Snacks.picker.git_files()
|
||||
end, { desc = "Find Git Files" })
|
||||
|
||||
set("n", "<leader>s", function()
|
||||
Snacks.picker.git_grep()
|
||||
end, { desc = "Git Grep" })
|
||||
|
||||
set({ "n", "v" }, "<leader>o", function()
|
||||
Snacks.picker.grep_word()
|
||||
end, { desc = "Grep Visual Selection or Word" })
|
||||
|
||||
set("n", "<leader>g", function()
|
||||
Snacks.lazygit()
|
||||
end, { desc = "Lazygit" })
|
||||
|
||||
set("n", "<leader>G", function()
|
||||
Snacks.lazygit.log_file()
|
||||
end, { desc = "Git Log File" })
|
||||
|
||||
set("n", "<leader>m", function()
|
||||
Snacks.picker.marks()
|
||||
end, { desc = "Marks" })
|
||||
|
||||
set("n", "<leader>M", function()
|
||||
Snacks.picker.man()
|
||||
end, { desc = "Man pages" })
|
||||
|
||||
set("n", "<leader>U", function()
|
||||
Snacks.picker.undo()
|
||||
end, { desc = "Undo History" })
|
||||
|
||||
set("n", "<leader>q", function()
|
||||
Snacks.picker.qflist()
|
||||
end, { desc = "Quickfix list" })
|
||||
|
||||
set("n", "<leader>Q", function()
|
||||
Snacks.picker.loclist()
|
||||
end, { desc = "Location List" })
|
||||
|
||||
set("n", "<leader>xs", function()
|
||||
Snacks.picker.colorschemes()
|
||||
end, { desc = "Colorschemes" })
|
||||
|
||||
set("n", "<leader>n", function()
|
||||
Snacks.notifier.show_history()
|
||||
end, { desc = "Notification History" })
|
||||
|
||||
set("n", "<leader>N", function()
|
||||
Snacks.picker.notifications()
|
||||
end, { desc = "Notifications" })
|
||||
|
||||
set("n", "<leader>xC", function()
|
||||
Snacks.picker.commands()
|
||||
end, { desc = "Commands" })
|
||||
|
||||
set("n", "<leader>h", function()
|
||||
Snacks.picker.keymaps()
|
||||
end, { desc = "Keymaps" })
|
||||
|
||||
set("n", "<leader>xh", function()
|
||||
Snacks.picker.highlights()
|
||||
end, { desc = "Hightlights" })
|
||||
|
||||
set("n", "<leader>xc", function()
|
||||
Snacks.picker.command_history()
|
||||
end, { desc = "Command History" })
|
||||
|
||||
set("n", '<leader>"', function()
|
||||
Snacks.picker.registers()
|
||||
end, { desc = "Registers" })
|
||||
|
||||
set("n", "<leader>$", function()
|
||||
Snacks.rename.rename_file()
|
||||
end, { desc = "Rename File" })
|
||||
|
||||
set("n", "<leader>z", function()
|
||||
Snacks.zen.zoom()
|
||||
end, { desc = "Toggle Zoom" })
|
||||
|
||||
set("n", "<leader>.", function()
|
||||
Snacks.scratch()
|
||||
end, { desc = "Toggle Scratch Buffer" })
|
||||
|
||||
set("n", "<leader>x.", function()
|
||||
Snacks.scratch.select()
|
||||
end, { desc = "Select Scratch Buffer" })
|
||||
|
||||
-- LSP
|
||||
|
||||
set("n", "gd", function()
|
||||
Snacks.picker.lsp_definitions()
|
||||
end, { desc = "Goto Definition" })
|
||||
|
||||
set("n", "gD", function()
|
||||
Snacks.picker.lsp_declarations()
|
||||
end, { desc = "Goto Declaration" })
|
||||
|
||||
set("n", "grr", function()
|
||||
Snacks.picker.lsp_references()
|
||||
end, { desc = "References" })
|
||||
|
||||
set("n", "gI", function()
|
||||
Snacks.picker.lsp_implementations()
|
||||
end, { desc = "Goto Implementation" })
|
||||
|
||||
set("n", "gy", function()
|
||||
Snacks.picker.lsp_type_definitions()
|
||||
end, { desc = "Goto T[y]pe Definition" })
|
||||
|
||||
set("n", "<leader>w", function()
|
||||
Snacks.picker.lsp_symbols()
|
||||
end, { desc = "LSP Symbols" })
|
||||
|
||||
set("n", "<leader>d", function()
|
||||
Snacks.picker.diagnostics_buffer()
|
||||
end, { desc = "Buffer Diagnostics" })
|
||||
|
||||
set("n", "<leader>D", function()
|
||||
Snacks.picker.diagnostics()
|
||||
end, { desc = "Diagnostics" })
|
||||
|
||||
set("n", "<leader>W", function()
|
||||
Snacks.picker.lsp_workspace_symbols()
|
||||
end, { desc = "LSP Workspace Symbols" })
|
||||
-- Terminal
|
||||
|
||||
set({ "n", "t" }, "<c-/>", function()
|
||||
Snacks.terminal()
|
||||
end, { desc = "Toggle Terminal" })
|
||||
|
||||
set({ "n", "t" }, "<c-_>", function()
|
||||
Snacks.terminal()
|
||||
end, { desc = "which_key_ignore" })
|
||||
@@ -1,7 +1,12 @@
|
||||
return {
|
||||
opts = {
|
||||
vim.pack.add({ "https://github.com/otavioschwanck/arrow.nvim" })
|
||||
|
||||
local ok, arrow = pcall(require, "arrow")
|
||||
if ok then
|
||||
arrow.setup({
|
||||
show_icons = false,
|
||||
leader_key = "_",
|
||||
buffer_leader_key = " m",
|
||||
},
|
||||
}
|
||||
})
|
||||
else
|
||||
print("plugin arrow missing")
|
||||
end
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
return {
|
||||
opts = {
|
||||
vim.pack.add({ "https://github.com/rmagatti/auto-session" })
|
||||
|
||||
vim.keymap.set("n", "<leader>a", "<cmd>AutoSession search<cr>")
|
||||
|
||||
local ok, sess = pcall(require, "auto-session")
|
||||
if ok then
|
||||
sess.setup({
|
||||
suppressed_dirs = { "~/", "~/src", "~/Downloads", "/" },
|
||||
},
|
||||
}
|
||||
})
|
||||
else
|
||||
print("plugin auto-session missing")
|
||||
end
|
||||
|
||||
@@ -1,16 +1,5 @@
|
||||
return {
|
||||
opts = {
|
||||
specs = {
|
||||
all = {
|
||||
syntax = {
|
||||
operator = "#bf8040",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
local cs = require("config.colorscheme")
|
||||
cs.set_colorschemes("gruvbox", "gruvbox")
|
||||
cs.update_colorscheme()
|
||||
end,
|
||||
}
|
||||
vim.pack.add({ "https://github.com/ellisonleao/gruvbox.nvim" })
|
||||
|
||||
local cs = require("config.colorscheme")
|
||||
cs.set_colorschemes("gruvbox", "gruvbox")
|
||||
cs.update_colorscheme()
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
return {
|
||||
opts = {
|
||||
vim.pack.add({ "https://github.com/stevearc/conform.nvim" })
|
||||
|
||||
local ok, conform = pcall(require, "conform")
|
||||
if ok then
|
||||
conform.setup({
|
||||
formatters_by_ft = {
|
||||
lua = { "stylua" },
|
||||
},
|
||||
@@ -7,5 +10,7 @@ return {
|
||||
timeout_ms = 500,
|
||||
lsp_format = "fallback",
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
else
|
||||
print("plugin conform missing")
|
||||
end
|
||||
|
||||
@@ -1,24 +1,30 @@
|
||||
return {
|
||||
opts = {
|
||||
vim.pack.add({ "https://github.com/folke/flash.nvim" })
|
||||
|
||||
local ok, flash = pcall(require, "flash")
|
||||
|
||||
if ok then
|
||||
flash.setup({
|
||||
modes = {
|
||||
char = {
|
||||
enabled = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
local set = vim.keymap.set
|
||||
set({ "n", "x", "o" }, "\\", function()
|
||||
require("flash").jump()
|
||||
end, { desc = "Flash" })
|
||||
set({ "n", "x", "o" }, "=", function()
|
||||
require("flash").treesitter()
|
||||
end, { desc = "Flash Treesitter" })
|
||||
set({ "o" }, "r", function()
|
||||
require("flash").remote()
|
||||
end, { desc = "Remote Flash" })
|
||||
set({ "n", "x", "o" }, " t", function()
|
||||
require("flash").treesitter_search()
|
||||
end, { desc = "Treesitter Search" })
|
||||
end,
|
||||
}
|
||||
})
|
||||
|
||||
local set = vim.keymap.set
|
||||
|
||||
set({ "n", "x", "o" }, "\\", function()
|
||||
require("flash").jump()
|
||||
end, { desc = "Flash" })
|
||||
set({ "n", "x", "o" }, "=", function()
|
||||
require("flash").treesitter()
|
||||
end, { desc = "Flash Treesitter" })
|
||||
set({ "o" }, "r", function()
|
||||
require("flash").remote()
|
||||
end, { desc = "Remote Flash" })
|
||||
set({ "n", "x", "o" }, " t", function()
|
||||
require("flash").treesitter_search()
|
||||
end, { desc = "Treesitter Search" })
|
||||
else
|
||||
print("plugin flash missing")
|
||||
end
|
||||
|
||||
@@ -1,71 +1,76 @@
|
||||
return {
|
||||
init = function(mc)
|
||||
local set = vim.keymap.set
|
||||
vim.pack.add({ { src = "https://github.com/jake-stewart/multicursor.nvim", version = "1.0" } })
|
||||
|
||||
-- Add or skip cursor above/below the main cursor.
|
||||
set({ "n", "x" }, "<c-k>", function()
|
||||
mc.lineAddCursor(-1)
|
||||
end)
|
||||
set({ "n", "x" }, "<c-j>", function()
|
||||
mc.lineAddCursor(1)
|
||||
end)
|
||||
set({ "n", "x" }, "<leader><c-k>", function()
|
||||
mc.lineSkipCursor(-1)
|
||||
end)
|
||||
set({ "n", "x" }, "<leader><c-j>", function()
|
||||
mc.lineSkipCursor(1)
|
||||
end)
|
||||
local ok, mc = pcall(require, "multicursor-nvim")
|
||||
if ok then
|
||||
mc.setup()
|
||||
|
||||
-- Add or skip adding a new cursor by matching word/selection
|
||||
set({ "n", "x" }, "<c-n>", function()
|
||||
mc.matchAddCursor(1)
|
||||
end)
|
||||
set({ "n", "x" }, "<leader><c-n>", function()
|
||||
mc.matchSkipCursor(1)
|
||||
end)
|
||||
set({ "n", "x" }, "<c-p>", function()
|
||||
mc.matchAddCursor(-1)
|
||||
end)
|
||||
set({ "n", "x" }, "<leader><c-p>", function()
|
||||
mc.matchSkipCursor(-1)
|
||||
local set = vim.keymap.set
|
||||
|
||||
-- Add or skip cursor above/below the main cursor.
|
||||
set({ "n", "x" }, "<c-k>", function()
|
||||
mc.lineAddCursor(-1)
|
||||
end)
|
||||
set({ "n", "x" }, "<c-j>", function()
|
||||
mc.lineAddCursor(1)
|
||||
end)
|
||||
set({ "n", "x" }, "<leader><c-k>", function()
|
||||
mc.lineSkipCursor(-1)
|
||||
end)
|
||||
set({ "n", "x" }, "<leader><c-j>", function()
|
||||
mc.lineSkipCursor(1)
|
||||
end)
|
||||
|
||||
-- Add or skip adding a new cursor by matching word/selection
|
||||
set({ "n", "x" }, "<c-n>", function()
|
||||
mc.matchAddCursor(1)
|
||||
end)
|
||||
set({ "n", "x" }, "<leader><c-n>", function()
|
||||
mc.matchSkipCursor(1)
|
||||
end)
|
||||
set({ "n", "x" }, "<c-p>", function()
|
||||
mc.matchAddCursor(-1)
|
||||
end)
|
||||
set({ "n", "x" }, "<leader><c-p>", function()
|
||||
mc.matchSkipCursor(-1)
|
||||
end)
|
||||
|
||||
-- Add and remove cursors with control + left click.
|
||||
set("n", "<c-leftmouse>", mc.handleMouse)
|
||||
set("n", "<c-leftdrag>", mc.handleMouseDrag)
|
||||
set("n", "<c-leftrelease>", mc.handleMouseRelease)
|
||||
|
||||
-- Disable and enable cursors.
|
||||
set({ "n", "x" }, "<leader><c-q>", mc.toggleCursor)
|
||||
|
||||
-- Mappings defined in a keymap layer only apply when there are
|
||||
-- multiple cursors. This lets you have overlapping mappings.
|
||||
mc.addKeymapLayer(function(layerSet)
|
||||
-- Select a different cursor as the main one.
|
||||
layerSet({ "n", "x" }, "<left>", mc.prevCursor)
|
||||
layerSet({ "n", "x" }, "<right>", mc.nextCursor)
|
||||
|
||||
-- Delete the main cursor.
|
||||
layerSet({ "n", "x" }, "<leader>x", mc.deleteCursor)
|
||||
|
||||
-- Enable and clear cursors using escape.
|
||||
layerSet("n", "<esc>", function()
|
||||
if not mc.cursorsEnabled() then
|
||||
mc.enableCursors()
|
||||
else
|
||||
mc.clearCursors()
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
-- Add and remove cursors with control + left click.
|
||||
set("n", "<c-leftmouse>", mc.handleMouse)
|
||||
set("n", "<c-leftdrag>", mc.handleMouseDrag)
|
||||
set("n", "<c-leftrelease>", mc.handleMouseRelease)
|
||||
|
||||
-- Disable and enable cursors.
|
||||
set({ "n", "x" }, "<leader><c-q>", mc.toggleCursor)
|
||||
|
||||
-- Mappings defined in a keymap layer only apply when there are
|
||||
-- multiple cursors. This lets you have overlapping mappings.
|
||||
mc.addKeymapLayer(function(layerSet)
|
||||
-- Select a different cursor as the main one.
|
||||
layerSet({ "n", "x" }, "<left>", mc.prevCursor)
|
||||
layerSet({ "n", "x" }, "<right>", mc.nextCursor)
|
||||
|
||||
-- Delete the main cursor.
|
||||
layerSet({ "n", "x" }, "<leader>x", mc.deleteCursor)
|
||||
|
||||
-- Enable and clear cursors using escape.
|
||||
layerSet("n", "<esc>", function()
|
||||
if not mc.cursorsEnabled() then
|
||||
mc.enableCursors()
|
||||
else
|
||||
mc.clearCursors()
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
-- Customize how cursors look.
|
||||
local hl = vim.api.nvim_set_hl
|
||||
hl(0, "MultiCursorCursor", { reverse = true })
|
||||
hl(0, "MultiCursorVisual", { link = "Visual" })
|
||||
hl(0, "MultiCursorSign", { link = "SignColumn" })
|
||||
hl(0, "MultiCursorMatchPreview", { link = "Search" })
|
||||
hl(0, "MultiCursorDisabledCursor", { reverse = true })
|
||||
hl(0, "MultiCursorDisabledVisual", { link = "Visual" })
|
||||
hl(0, "MultiCursorDisabledSign", { link = "SignColumn" })
|
||||
end,
|
||||
}
|
||||
-- Customize how cursors look.
|
||||
local hl = vim.api.nvim_set_hl
|
||||
hl(0, "MultiCursorCursor", { reverse = true })
|
||||
hl(0, "MultiCursorVisual", { link = "Visual" })
|
||||
hl(0, "MultiCursorSign", { link = "SignColumn" })
|
||||
hl(0, "MultiCursorMatchPreview", { link = "Search" })
|
||||
hl(0, "MultiCursorDisabledCursor", { reverse = true })
|
||||
hl(0, "MultiCursorDisabledVisual", { link = "Visual" })
|
||||
hl(0, "MultiCursorDisabledSign", { link = "SignColumn" })
|
||||
else
|
||||
print("plugin multicursor-nvim missing")
|
||||
end
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
return {
|
||||
init = function()
|
||||
vim.keymap.set("n", "<leader>-", "<cmd>Oil<cr>", { desc = "Oil file manager" })
|
||||
end,
|
||||
}
|
||||
vim.pack.add({ "https://github.com/stevearc/oil.nvim" })
|
||||
|
||||
local ok, oil = pcall(require, "oil")
|
||||
if ok then
|
||||
oil.setup()
|
||||
else
|
||||
print("plugin oil missing")
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<leader>-", "<cmd>Oil<cr>", { desc = "Oil file manager" })
|
||||
|
||||
@@ -1,41 +1,252 @@
|
||||
return {
|
||||
init = function()
|
||||
vim.api.nvim_create_autocmd("VimEnter", {
|
||||
callback = function()
|
||||
-- Setup some globals for debugging (lazy-loaded)
|
||||
_G.dd = function(...)
|
||||
Snacks.debug.inspect(...)
|
||||
end
|
||||
_G.bt = function()
|
||||
Snacks.debug.backtrace()
|
||||
end
|
||||
vim.pack.add({ "https://github.com/folke/snacks.nvim" })
|
||||
|
||||
-- Override print to use snacks for `:=` command
|
||||
if vim.fn.has("nvim-0.11") == 1 then
|
||||
vim._print = function(_, ...)
|
||||
dd(...)
|
||||
end
|
||||
else
|
||||
vim.print = _G.dd
|
||||
end
|
||||
local ok, snacks = pcall(require, "snacks")
|
||||
if ok then
|
||||
snacks.setup({
|
||||
picker = { enabled = true },
|
||||
})
|
||||
else
|
||||
print("plugin snacks missing")
|
||||
end
|
||||
|
||||
-- Create some toggle mappings
|
||||
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
|
||||
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
|
||||
Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("<leader>uL")
|
||||
Snacks.toggle.diagnostics():map("<leader>ud")
|
||||
Snacks.toggle.line_number():map("<leader>ul")
|
||||
Snacks.toggle
|
||||
.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 })
|
||||
:map("<leader>uc")
|
||||
Snacks.toggle.treesitter():map("<leader>uT")
|
||||
Snacks.toggle
|
||||
.option("background", { off = "light", on = "dark", name = "Dark Background" })
|
||||
:map("<leader>ub")
|
||||
Snacks.toggle.inlay_hints():map("<leader>uh")
|
||||
Snacks.toggle.indent():map("<leader>ug")
|
||||
Snacks.toggle.dim():map("<leader>uD")
|
||||
end,
|
||||
})
|
||||
local set = vim.keymap.set
|
||||
|
||||
set("n", "<leader><space>", function()
|
||||
Snacks.picker.smart()
|
||||
end, { desc = "Smart Find Files" })
|
||||
|
||||
set("n", "<leader>b", function()
|
||||
Snacks.picker.buffers()
|
||||
end, { desc = "Buffers" })
|
||||
|
||||
set("n", "<leader>e", function()
|
||||
Snacks.explorer()
|
||||
end, { desc = "File Explorer" })
|
||||
|
||||
set("n", "<leader>r", function()
|
||||
Snacks.picker.recent()
|
||||
end, { desc = "Recent files" })
|
||||
|
||||
set("n", "<leader>R", function()
|
||||
Snacks.picker.resume()
|
||||
end, { desc = "Resume" })
|
||||
|
||||
set("n", "<leader>p", function()
|
||||
Snacks.picker.projects()
|
||||
end, { desc = "Projects" })
|
||||
|
||||
set("n", "<leader>l", function()
|
||||
Snacks.picker.lines()
|
||||
end, { desc = "Buffer lines" })
|
||||
|
||||
set("n", "<leader>L", function()
|
||||
Snacks.picker.grep_buffers()
|
||||
end, { desc = "Grep Open Buffers" })
|
||||
|
||||
set("n", "<leader>F", function()
|
||||
Snacks.picker.files()
|
||||
end, { desc = "Find Files" })
|
||||
|
||||
set("n", "<leader>S", function()
|
||||
Snacks.picker.grep()
|
||||
end, { desc = "Grep" })
|
||||
|
||||
set("n", "<leader>B", function()
|
||||
Snacks.picker.git_branches()
|
||||
end, { desc = "Git Branches" })
|
||||
|
||||
set({ "n", "v" }, "<leader>xB", function()
|
||||
Snacks.gitbrowse()
|
||||
end, { desc = "Git Browse" })
|
||||
|
||||
set("n", "<leader>i", function()
|
||||
Snacks.picker.git_log_line()
|
||||
end, { desc = "Git Log Line" })
|
||||
|
||||
set("n", "<leader>I", function()
|
||||
Snacks.picker.git_log()
|
||||
end, { desc = "Git Log" })
|
||||
|
||||
set("n", "<leader>t", function()
|
||||
Snacks.picker.git_status()
|
||||
end, { desc = "Git Status" })
|
||||
|
||||
set("n", "<leader>H", function()
|
||||
Snacks.picker.git_diff()
|
||||
end, { desc = "Git Diff (Hunks)" })
|
||||
|
||||
set("n", "<leader>xS", function()
|
||||
Snacks.picker.git_stash()
|
||||
end, { desc = "Git Stash" })
|
||||
|
||||
set("n", "<leader>f", function()
|
||||
Snacks.picker.git_files()
|
||||
end, { desc = "Find Git Files" })
|
||||
|
||||
set("n", "<leader>s", function()
|
||||
Snacks.picker.git_grep()
|
||||
end, { desc = "Git Grep" })
|
||||
|
||||
set({ "n", "v" }, "<leader>o", function()
|
||||
Snacks.picker.grep_word()
|
||||
end, { desc = "Grep Visual Selection or Word" })
|
||||
|
||||
set("n", "<leader>g", function()
|
||||
Snacks.lazygit()
|
||||
end, { desc = "Lazygit" })
|
||||
|
||||
set("n", "<leader>G", function()
|
||||
Snacks.lazygit.log_file()
|
||||
end, { desc = "Git Log File" })
|
||||
|
||||
set("n", "<leader>m", function()
|
||||
Snacks.picker.marks()
|
||||
end, { desc = "Marks" })
|
||||
|
||||
set("n", "<leader>M", function()
|
||||
Snacks.picker.man()
|
||||
end, { desc = "Man pages" })
|
||||
|
||||
set("n", "<leader>U", function()
|
||||
Snacks.picker.undo()
|
||||
end, { desc = "Undo History" })
|
||||
|
||||
set("n", "<leader>q", function()
|
||||
Snacks.picker.qflist()
|
||||
end, { desc = "Quickfix list" })
|
||||
|
||||
set("n", "<leader>Q", function()
|
||||
Snacks.picker.loclist()
|
||||
end, { desc = "Location List" })
|
||||
|
||||
set("n", "<leader>xs", function()
|
||||
Snacks.picker.colorschemes()
|
||||
end, { desc = "Colorschemes" })
|
||||
|
||||
set("n", "<leader>n", function()
|
||||
Snacks.notifier.show_history()
|
||||
end, { desc = "Notification History" })
|
||||
|
||||
set("n", "<leader>N", function()
|
||||
Snacks.picker.notifications()
|
||||
end, { desc = "Notifications" })
|
||||
|
||||
set("n", "<leader>xC", function()
|
||||
Snacks.picker.commands()
|
||||
end, { desc = "Commands" })
|
||||
|
||||
set("n", "<leader>h", function()
|
||||
Snacks.picker.keymaps()
|
||||
end, { desc = "Keymaps" })
|
||||
|
||||
set("n", "<leader>xh", function()
|
||||
Snacks.picker.highlights()
|
||||
end, { desc = "Hightlights" })
|
||||
|
||||
set("n", "<leader>xc", function()
|
||||
Snacks.picker.command_history()
|
||||
end, { desc = "Command History" })
|
||||
|
||||
set("n", '<leader>"', function()
|
||||
Snacks.picker.registers()
|
||||
end, { desc = "Registers" })
|
||||
|
||||
set("n", "<leader>$", function()
|
||||
Snacks.rename.rename_file()
|
||||
end, { desc = "Rename File" })
|
||||
|
||||
set("n", "<leader>z", function()
|
||||
Snacks.zen.zoom()
|
||||
end, { desc = "Toggle Zoom" })
|
||||
|
||||
set("n", "<leader>.", function()
|
||||
Snacks.scratch()
|
||||
end, { desc = "Toggle Scratch Buffer" })
|
||||
|
||||
set("n", "<leader>x.", function()
|
||||
Snacks.scratch.select()
|
||||
end, { desc = "Select Scratch Buffer" })
|
||||
|
||||
-- LSP
|
||||
|
||||
set("n", "gd", function()
|
||||
Snacks.picker.lsp_definitions()
|
||||
end, { desc = "Goto Definition" })
|
||||
|
||||
set("n", "gD", function()
|
||||
Snacks.picker.lsp_declarations()
|
||||
end, { desc = "Goto Declaration" })
|
||||
|
||||
set("n", "grr", function()
|
||||
Snacks.picker.lsp_references()
|
||||
end, { desc = "References" })
|
||||
|
||||
set("n", "gI", function()
|
||||
Snacks.picker.lsp_implementations()
|
||||
end, { desc = "Goto Implementation" })
|
||||
|
||||
set("n", "gy", function()
|
||||
Snacks.picker.lsp_type_definitions()
|
||||
end, { desc = "Goto T[y]pe Definition" })
|
||||
|
||||
set("n", "<leader>w", function()
|
||||
Snacks.picker.lsp_symbols()
|
||||
end, { desc = "LSP Symbols" })
|
||||
|
||||
set("n", "<leader>d", function()
|
||||
Snacks.picker.diagnostics_buffer()
|
||||
end, { desc = "Buffer Diagnostics" })
|
||||
|
||||
set("n", "<leader>D", function()
|
||||
Snacks.picker.diagnostics()
|
||||
end, { desc = "Diagnostics" })
|
||||
|
||||
set("n", "<leader>W", function()
|
||||
Snacks.picker.lsp_workspace_symbols()
|
||||
end, { desc = "LSP Workspace Symbols" })
|
||||
|
||||
-- Terminal
|
||||
|
||||
set({ "n", "t" }, "<c-/>", function()
|
||||
Snacks.terminal()
|
||||
end, { desc = "Toggle Terminal" })
|
||||
|
||||
set({ "n", "t" }, "<c-_>", function()
|
||||
Snacks.terminal()
|
||||
end, { desc = "which_key_ignore" })
|
||||
|
||||
vim.api.nvim_create_autocmd("VimEnter", {
|
||||
callback = function()
|
||||
-- Setup some globals for debugging (lazy-loaded)
|
||||
_G.dd = function(...)
|
||||
Snacks.debug.inspect(...)
|
||||
end
|
||||
_G.bt = function()
|
||||
Snacks.debug.backtrace()
|
||||
end
|
||||
|
||||
-- Override print to use snacks for `:=` command
|
||||
if vim.fn.has("nvim-0.11") == 1 then
|
||||
vim._print = function(_, ...)
|
||||
dd(...)
|
||||
end
|
||||
else
|
||||
vim.print = _G.dd
|
||||
end
|
||||
|
||||
-- Create some toggle mappings
|
||||
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
|
||||
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
|
||||
Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("<leader>uL")
|
||||
Snacks.toggle.diagnostics():map("<leader>ud")
|
||||
Snacks.toggle.line_number():map("<leader>ul")
|
||||
Snacks.toggle
|
||||
.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 })
|
||||
:map("<leader>uc")
|
||||
Snacks.toggle.treesitter():map("<leader>uT")
|
||||
Snacks.toggle.option("background", { off = "light", on = "dark", name = "Dark Background" }):map("<leader>ub")
|
||||
Snacks.toggle.inlay_hints():map("<leader>uh")
|
||||
Snacks.toggle.indent():map("<leader>ug")
|
||||
Snacks.toggle.dim():map("<leader>uD")
|
||||
end,
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,6 +1,26 @@
|
||||
return {
|
||||
main = "nvim-treesitter.configs",
|
||||
opts = {
|
||||
-- run ":TSUpdate" after plugin update
|
||||
-- If hooks need to run on install, run this before `vim.pack.add()`
|
||||
vim.api.nvim_create_autocmd("PackChanged", {
|
||||
group = vim.api.nvim_create_augroup("nvim-treesitter-update", { clear = true }),
|
||||
callback = function(ev)
|
||||
local name, kind = ev.data.spec.name, ev.data.kind
|
||||
if name == "nvim-treesitter" and kind == "update" then
|
||||
if not ev.data.active then
|
||||
vim.cmd.packadd("nvim-treesitter")
|
||||
end
|
||||
vim.cmd("TSUpdate")
|
||||
print("TSUpdate done.")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
vim.pack.add({
|
||||
{ src = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects", version = "master" },
|
||||
{ src = "https://github.com/nvim-treesitter/nvim-treesitter", version = "master" },
|
||||
})
|
||||
local ok, configs = pcall(require, "nvim-treesitter.configs")
|
||||
if ok then
|
||||
configs.setup({
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
@@ -58,5 +78,7 @@ return {
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
else
|
||||
print("plugin nvim-treesitter.configs missing")
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user