aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/nvim/lua/plugins/runner.lua
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-04-21 01:23:18 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-04-21 01:23:18 +0100
commitd00bf2cb2d5087164fa509a4f20a2be62a519044 (patch)
treee788986ca341fa7a9d7327b48c58d2e0c0c43115 /dot_config/nvim/lua/plugins/runner.lua
parent9b2af4dd6c73ea57cc921f41120db7a2700e806d (diff)
downloaddotfiles-d00bf2cb2d5087164fa509a4f20a2be62a519044.tar.gz
dotfiles-d00bf2cb2d5087164fa509a4f20a2be62a519044.tar.bz2
dotfiles-d00bf2cb2d5087164fa509a4f20a2be62a519044.zip
refactor: restructure to chezmoi source state
Rename home/ contents to chezmoi naming conventions: - dot_ prefix for dotfiles and dot-dirs - private_dot_ for .gnupg and .ssh directories - private_ for 0600 files (nym.pub) - executable_ for scripts in .local/bin and display-toggle.sh - symlink_ for mimeapps.list symlink
Diffstat (limited to 'dot_config/nvim/lua/plugins/runner.lua')
-rw-r--r--dot_config/nvim/lua/plugins/runner.lua77
1 files changed, 77 insertions, 0 deletions
diff --git a/dot_config/nvim/lua/plugins/runner.lua b/dot_config/nvim/lua/plugins/runner.lua
new file mode 100644
index 0000000..28e4e5f
--- /dev/null
+++ b/dot_config/nvim/lua/plugins/runner.lua
@@ -0,0 +1,77 @@
+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)
+
+vim.keymap.set("n", "<leader>to", function()
+ overseer.toggle()
+end, { desc = "[T]oggle [O]verseer" })
+vim.keymap.set("n", "<leader>ob", function()
+ overseer.run_task({ name = "just build", disallow_prompt = true })
+end, { desc = "[O]verseer [B]uild" })
+vim.keymap.set("n", "<leader>oB", function()
+ overseer.run_task({ name = "just build" })
+end, { desc = "[O]verseer [B]uild" })
+vim.keymap.set("n", "<leader>ot", function()
+ overseer.run_task({ name = "just test", disallow_prompt = true })
+end, { desc = "[O]verseer [J]ust [T]est" })
+vim.keymap.set("n", "<leader>oT", function()
+ overseer.run_task({ name = "just test" })
+end, { desc = "[O]verseer [J]ust [T]est" })
+vim.keymap.set("n", "<leader>of", function()
+ overseer.run_task({
+ name = "just test",
+ disallow_prompt = true,
+ params = { target = vim.fn.expand("%") },
+ })
+end, { desc = "[O]verseer test [F]ile" })
+vim.keymap.set("n", "<leader>oF", function()
+ overseer.run_task({
+ name = "just test",
+ params = { target = vim.fn.expand("%") },
+ })
+end, { desc = "[O]verseer test [F]ile" })
+vim.keymap.set("n", "<leader>od", function()
+ overseer.run_task({
+ name = "just debug=true test",
+ disallow_prompt = true,
+ params = { target = vim.fn.expand("%") },
+ })
+end, { desc = "[O]verseer [d]ebug test file" })
+vim.keymap.set("n", "<leader>oD", function()
+ overseer.run_task({
+ name = "just debug=true test",
+ params = { target = vim.fn.expand("%") },
+ })
+end, { desc = "[O]verseer [D]ebug test file" })
+vim.keymap.set("n", "<leader>oa", function()
+ overseer.run_task({
+ name = "just test_autofix",
+ disallow_prompt = true,
+ params = { target = vim.fn.expand("%") },
+ })
+end, { desc = "[O]verseer [A]utofix" })
+vim.keymap.set("n", "<leader>or", function()
+ overseer.run_task()
+end, { desc = "[O]verseer [R]un" })
+vim.keymap.set("n", "<leader>os", function()
+ vim.cmd("OverseerShell")
+end, { desc = "[O]verseer [S]hell" })
+vim.keymap.set("n", "<leader>ol", function()
+ local tasks = overseer.list_tasks({
+ sort = function(a, b)
+ return a.id > b.id
+ end,
+ })
+ if vim.tbl_isempty(tasks) then
+ vim.notify("No tasks found", vim.log.levels.WARN)
+ else
+ overseer.run_action(tasks[1], "restart")
+ end
+end, { desc = "[O]verseer run [L]ast" })