feat(plugins): add codediff, tv, vellum plugins and drop overseer support
This commit is contained in:
1 parent
e741a1564d
commit
b4e53d160a
6 files changed
+79
-27
No files matched your search
@@ -375,10 +375,6 @@ return {
|
|||||||
function() require("config.templates").pick() end,
|
function() require("config.templates").pick() end,
|
||||||
desc = "Find templates",
|
desc = "Find templates",
|
||||||
},
|
},
|
||||||
-- NOTE: <C-m> and <CR> are likewise the same key, so Enter in normal
|
|
||||||
-- mode runs overseer. Buffers with their own <CR> (quickfix, help,
|
|
||||||
-- neo-tree, overseer's task list) keep theirs via buffer-local maps.
|
|
||||||
["<C-m>"] = { "<Cmd>OverseerRun<CR>", desc = "Run overseer task" },
|
|
||||||
["<C-f>w"] = {
|
["<C-f>w"] = {
|
||||||
function() require("fff").live_grep() end,
|
function() require("fff").live_grep() end,
|
||||||
desc = "Live grep",
|
desc = "Live grep",
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
--- codediff.nvim: VSCode-style diff review workspace (explorer + side-by-side)
|
||||||
|
--- `:CodeDiff` reviews the working tree; `q` closes the review tab.
|
||||||
|
--- @module plugins.codediff
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
"esmuellert/codediff.nvim",
|
||||||
|
cmd = "CodeDiff",
|
||||||
|
keys = {
|
||||||
|
{ "<C-g><C-d>", "<Cmd>CodeDiff<CR>", desc = "Review changes (CodeDiff)" },
|
||||||
|
},
|
||||||
|
opts = {},
|
||||||
|
}
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
--- overseer.nvim: task output in a Snacks bottom window
|
|
||||||
---
|
|
||||||
--- The astrocommunity pack (community.lua) owns the plugin spec and the
|
|
||||||
--- <Leader>M* maps; this layers the `snacks_output` component
|
|
||||||
--- (lua/overseer/component/snacks_output.lua) onto the default component
|
|
||||||
--- set so every task shows its terminal buffer in a 24-row window docked at
|
|
||||||
--- the bottom. <C-m> / Enter runs a task, see plugins/astrocore.lua.
|
|
||||||
--- @module plugins.overseer
|
|
||||||
|
|
||||||
return {
|
|
||||||
"stevearc/overseer.nvim",
|
|
||||||
---@type overseer.SetupOpts
|
|
||||||
opts = {
|
|
||||||
component_aliases = {
|
|
||||||
default = {
|
|
||||||
"on_exit_set_status",
|
|
||||||
"on_complete_notify",
|
|
||||||
{ "on_complete_dispose", require_view = { "SUCCESS", "FAILURE" } },
|
|
||||||
{ "snacks_output", height = 24 },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -20,9 +20,11 @@ return {
|
|||||||
"AstroNvim/astrocore",
|
"AstroNvim/astrocore",
|
||||||
opts = function(_, opts)
|
opts = function(_, opts)
|
||||||
local maps = opts.mappings
|
local maps = opts.mappings
|
||||||
|
maps.x = maps.x or {}
|
||||||
for key, dir in pairs(moves) do
|
for key, dir in pairs(moves) do
|
||||||
local desc = ("Move %s a split (%s aware)"):format(dir, nav.env())
|
local desc = ("Move %s a split (%s aware)"):format(dir, nav.env())
|
||||||
maps.n[key] = { function() nav.navigate(dir) end, desc = desc }
|
maps.n[key] = { function() nav.navigate(dir) end, desc = desc }
|
||||||
|
maps.x[key] = maps.n[key]
|
||||||
maps.t[key] = { nav.terminal(dir), desc = desc }
|
maps.t[key] = { nav.terminal(dir), desc = desc }
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
--- tv.nvim: television channels in a floating terminal
|
||||||
|
--- <C-t> picks from the file/editor cable channels in the dotfiles
|
||||||
|
--- (~/.config/television/cable) only. Their cable `enter` actions would spawn
|
||||||
|
--- an editor inside the float, so each gets Neovim-side handlers: tv.nvim
|
||||||
|
--- passes handler keys as `--expect`, which wins over cable keybindings.
|
||||||
|
--- `:Tv <channel>` still reaches any channel.
|
||||||
|
--- @module plugins.tv
|
||||||
|
|
||||||
|
local OPEN = { "files", "git-files", "recent-files", "dotfiles", "git-diff" }
|
||||||
|
local GREP = { "text", "todo-comments" }
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
"alexpasmantier/tv.nvim",
|
||||||
|
cmd = "Tv",
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<C-t>",
|
||||||
|
function()
|
||||||
|
vim.ui.select(vim.list_extend(vim.list_extend({}, OPEN), GREP), { prompt = "Television" }, function(choice)
|
||||||
|
if choice then require("tv").tv_channel(choice) end
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
desc = "Television file channels",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
local h = require("tv").handlers
|
||||||
|
local channels = {}
|
||||||
|
-- no <C-s>/<C-x>: tv uses them for cycle_sources / the action picker
|
||||||
|
for _, name in ipairs(OPEN) do
|
||||||
|
channels[name] = {
|
||||||
|
handlers = { ["<CR>"] = h.open_as_files, ["<C-q>"] = h.send_to_quickfix, ["<C-v>"] = h.open_in_vsplit },
|
||||||
|
}
|
||||||
|
end
|
||||||
|
for _, name in ipairs(GREP) do
|
||||||
|
channels[name] = { handlers = { ["<CR>"] = h.open_at_line, ["<C-q>"] = h.send_to_quickfix } }
|
||||||
|
end
|
||||||
|
|
||||||
|
require("tv").setup {
|
||||||
|
global_keybindings = { channels = false }, -- <C-t> lives in `keys` above
|
||||||
|
channels = channels,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
--- vellum.nvim: live GitHub-markdown preview in a split, mermaid/math as images
|
||||||
|
--- `:Vellum` toggles it, `:Vellum export [file.pdf|file.html]` exports.
|
||||||
|
---
|
||||||
|
--- Runs from the prdlk fork's `mdx` branch until blackhat-7/vellum.nvim#4
|
||||||
|
--- merges: upstream only accepts filetype `markdown`, so `markdown.mdx`
|
||||||
|
--- buffers could not export, take over the preview or be followed by links,
|
||||||
|
--- and their import/export lines and {/* comments */} rendered as text.
|
||||||
|
--- @module plugins.vellum
|
||||||
|
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
"prdlk/vellum.nvim",
|
||||||
|
branch = "mdx",
|
||||||
|
-- `markdown.mdx` is the mdx pack's filetype; a dotted filetype only matches
|
||||||
|
-- a pattern that spells it out
|
||||||
|
ft = { "markdown", "markdown.mdx" },
|
||||||
|
cmd = "Vellum",
|
||||||
|
opts = {},
|
||||||
|
}
|
||||||
Reference in new issue
Block a user