overseer.nvim
A task runner and job management plugin for Neovim
Features
- Built-in support for many task frameworks (make, npm, cargo,
.vscode/tasks.json
, etc)
- Simple integration with vim.diagnostics and quickfix
- UI for viewing and managing tasks
- Quick controls for common actions (restart task, rerun on save, or user-defined functions)
- Extreme customizability. Very easy to attach custom logic to tasks
- Define and run complex multi-stage workflows
- Support for
preLaunchTask
when used with nvim-dap
Requirements
Installation
overseer supports all the usual plugin managers
lazy.nvim
```lua
{
'stevearc/overseer.nvim',
opts = {},
}
```
Packer
```lua
require('packer').startup(function()
use {
'stevearc/overseer.nvim',
config = function() require('overseer').setup() end
}
end)
```
Paq
```lua
require "paq" {
{'stevearc/overseer.nvim'};
}
```
vim-plug
```vim
Plug 'stevearc/overseer.nvim'
```
dein
```vim
call dein#add('stevearc/overseer.nvim')
```
Pathogen
```sh
git clone --depth=1 https://github.com/stevearc/overseer.nvim.git ~/.vim/bundle/
```
Neovim native package
```sh
git clone --depth=1 https://github.com/stevearc/overseer.nvim.git \
"${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/pack/overseer/start/overseer.nvim
```
Quick start
Add the following to your init.lua
require('overseer').setup()
To get started, all you need to know is :OverseerRun
to select and start a task, and :OverseerToggle
to open the task list.
https://user-images.githubusercontent.com/506791/189036898-05edcd62-42e7-4bbb-ace2-746b7c8c567b.mp4
If you don't see any tasks from :OverseerRun
, it might mean that your task runner is not yet supported. There is currently support for VS Code tasks, make, npm, cargo, and some others. If yours is not supported, (request support here).
If you want to define custom tasks for your project, I'd recommend starting with the tutorials.
Tutorials
Guides
Explanation
Third-party integrations
Recipes
Reference
- Setup options
- Commands
- Highlight groups
- Lua API
- setup(opts)
- on_setup(callback)
- new_task(opts)
- toggle(opts)
- open(opts)
- close()
- list_task_bundles()
- load_task_bundle(name, opts)
- save_task_bundle(name, tasks, opts)
- delete_task_bundle(name)
- list_tasks(opts)
- run_template(opts, callback)
- preload_task_cache(opts, cb)
- clear_task_cache(opts)
- run_action(task, name)
- wrap_template(base, override, default_params)
- add_template_hook(opts, hook)
- remove_template_hook(opts, hook)
- register_template(defn)
- load_template(name)
- debug_parser()
- register_alias(name, components)
- Components
- Strategies
- Parsers
- Parameters
Screenshots
https://user-images.githubusercontent.com/506791/180620617-2b1bb0a8-5f39-4936-97c2-04c92f1e2974.mp4