aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home/.config/nvim/lua/plugins/runner.lua
diff options
context:
space:
mode:
authorLibravatar sommerfeld <[email protected]>2026-04-17 10:53:13 +0100
committerLibravatar sommerfeld <[email protected]>2026-04-17 10:53:13 +0100
commitc5fa38bd6da184b735be2cea5da477cc0913e9b3 (patch)
tree46ddc704578f05b7f032d14f347cae4f54a7011b /home/.config/nvim/lua/plugins/runner.lua
parent020ff5035d15b3dfee0da42e1e5d50be56bfcc19 (diff)
downloaddotfiles-c5fa38bd6da184b735be2cea5da477cc0913e9b3.tar.gz
dotfiles-c5fa38bd6da184b735be2cea5da477cc0913e9b3.tar.bz2
dotfiles-c5fa38bd6da184b735be2cea5da477cc0913e9b3.zip
refactor: extract overseer to plugins/runner.lua
Move the overseer task runner config (140 lines, 13 keymaps) from the plugins/init.lua junk drawer into a dedicated runner.lua file.
Diffstat (limited to 'home/.config/nvim/lua/plugins/runner.lua')
-rw-r--r--home/.config/nvim/lua/plugins/runner.lua144
1 files changed, 144 insertions, 0 deletions
diff --git a/home/.config/nvim/lua/plugins/runner.lua b/home/.config/nvim/lua/plugins/runner.lua
new file mode 100644
index 0000000..9e1af7b
--- /dev/null
+++ b/home/.config/nvim/lua/plugins/runner.lua
@@ -0,0 +1,144 @@
+return {
+ {
+ "stevearc/overseer.nvim",
+ version = "v1.6.0",
+ keys = {
+ {
+ "<leader>to",
+ function()
+ require("overseer").toggle()
+ end,
+ desc = "[T]oggle [O]verseer",
+ },
+ {
+ "<leader>ob",
+ function()
+ require("overseer").run_template({
+ name = "just build",
+ prompt = "never",
+ })
+ end,
+ desc = "[O]verseer [B]uild",
+ },
+ {
+ "<leader>oB",
+ function()
+ require("overseer").run_template({
+ name = "just build",
+ })
+ end,
+ desc = "[O]verseer [B]uild",
+ },
+ {
+ "<leader>ot",
+ function()
+ require("overseer").run_template({
+ name = "just test",
+ prompt = "never",
+ })
+ end,
+ desc = "[O]verseer [J]ust [T]est",
+ },
+ {
+ "<leader>oT",
+ function()
+ require("overseer").run_template({
+ name = "just test",
+ })
+ end,
+ desc = "[O]verseer [J]ust [T]est",
+ },
+ {
+ "<leader>of",
+ function()
+ require("overseer").run_template({
+ name = "just test",
+ prompt = "never",
+ params = { target = vim.fn.expand("%") },
+ })
+ end,
+ desc = "[O]verseer test [F]ile",
+ },
+ {
+ "<leader>oF",
+ function()
+ require("overseer").run_template({
+ name = "just test",
+ params = { target = vim.fn.expand("%") },
+ })
+ end,
+ desc = "[O]verseer test [F]ile",
+ },
+ {
+ "<leader>od",
+ function()
+ require("overseer").run_template({
+ name = "just debug=true test",
+ prompt = "never",
+ params = { target = vim.fn.expand("%") },
+ })
+ end,
+ desc = "[O]verseer [d]ebug test file",
+ },
+ {
+ "<leader>oD",
+ function()
+ require("overseer").run_template({
+ name = "just debug=true test",
+ params = { target = vim.fn.expand("%") },
+ })
+ end,
+ desc = "[O]verseer [D]ebug test file",
+ },
+ {
+ "<leader>oa",
+ function()
+ require("overseer").run_template({
+ name = "just test_autofix",
+ prompt = "never",
+ params = { target = vim.fn.expand("%") },
+ })
+ end,
+ desc = "[O]verseer [A]utofix",
+ },
+ {
+ "<leader>or",
+ function()
+ require("overseer").run_template()
+ end,
+ desc = "[O]verseer [R]un",
+ },
+ {
+ "<leader>os",
+ function()
+ require("overseer").run_template({ name = "shell" })
+ end,
+ desc = "[O]verseer [S]hell",
+ },
+ {
+ "<leader>ol",
+ function()
+ local tasks = require("overseer").list_tasks({ recent_first = true })
+ if vim.tbl_isempty(tasks) then
+ vim.notify("No tasks found", vim.log.levels.WARN)
+ else
+ require("overseer").run_action(tasks[1], "restart")
+ end
+ end,
+ desc = "[O]verseer run [L]ast",
+ },
+ },
+ config = function()
+ local overseer = require("overseer")
+ overseer.setup({})
+ overseer.add_template_hook({ name = ".*" }, function(task_defn, util)
+ util.add_component(task_defn, {
+ "open_output",
+ on_start = "never",
+ on_complete = "failure",
+ direction = "vertical",
+ })
+ end)
+ end,
+ },
+}