Files
2026-06-24 20:34:11 +02:00

40 lines
1.1 KiB
Lua

local function run_task(cmd)
local buf = vim.api.nvim_create_buf(true, true)
vim.api.nvim_buf_set_name(buf, "just://" .. cmd)
vim.notify("󰑮 Running: " .. cmd)
vim.api.nvim_buf_call(buf, function()
vim.fn.jobstart(cmd, {
term = true,
on_exit = function(_, code)
if code == 0 then
vim.notify("󰄬 " .. cmd .. " success")
vim.schedule(function()
pcall(vim.api.nvim_buf_delete, buf, { force = true })
end)
else
vim.notify("󰅚 " .. cmd .. " failed (" .. code .. ")", 4)
end
end,
})
end)
end
function pick_just_task()
local obj = vim.system({ "just", "--summary" }, { text = true }):wait()
if obj.code ~= 0 or not obj.stdout or obj.stdout == "" then
return vim.notify("No recipes or justfile found", 3)
end
local recipes = vim.split(vim.trim(obj.stdout), "%s+")
require("mini.pick").start({
source = {
items = recipes,
name = "󱁤 Just Tasks",
choose = function(choice)
run_task("just " .. choice)
end,
},
})
end