Run shell commands(tasks) in dedicated terminal windows.
- neovim required
- install using your favorite plugin manager
{
"eumis/tasks.nvim"
}add({
source = "eumis/tasks.nvim"
})use {
"eumis/tasks.nvim"
}local tasks = require "tasks"
-- Add tasks
tasks.add("test all", "nvim --no-plugin --headless -c 'PlenaryBustedDirectory lua/tests'")
tasks.add("test current file", function(bufnr) return "nvim --headless -c 'PlenaryBustedFile " .. vim.fn.expand("#" .. bufnr) .. "'" end)
-- Run tasks
tasks.run("test all")
tasks.run_last()
-- Open task
tasks.open("test all")
tasks.open_last()
-- Open/close list of tasks
tasks.toggle_list()
-- Open list of tasks in telescope
require("telescope").extensions.tasks.all():TasksRun test all
:TasksRunLast
:TasksOpen test current file
:TasksOpenLast
:TasksOpenList
:TasksCloseList
:TasksToggleList-- default values
require "tasks".setup {
run_keys = { "r", "<cr>" }, -- keys to run task from tasks list
open_keys = { "o" }, -- keys to open task buffer from tasks list
get_list_win_config = get_float_win_config, -- returns config for vim.api.nvim_open_win for list window
get_task_win_config = get_float_win_config, -- returns config for vim.api.nvim_open_win for task window
sort = "order", -- "order" - tasks in added order, "recent" - tasks run most recently are first
}