overseer.nvim
overseer.nvim copied to clipboard
A task runner and job management plugin for Neovim
overseer.nvim
A task runner and job management plugin for Neovim
- Features
- Requirements
- Installation
- Quick start
- Tutorials
- Build a C++ file
- Run a file on save
- Guides
- Custom tasks
- Actions
- Custom components
- Customizing built-in tasks
- Parsing output
- Running tasks sequentially
- VS Code tasks
- Explanation
- Architecture
- Task list
- Task editor
- Alternatives
- FAQ
- Third-party integrations
- Lualine
- Neotest
- DAP
- Session managers
- Recipes
- Restart last task
- Run shell scripts in the current directory
- Directory-local tasks with nvim-config-local
- :Make similar to vim-dispatch
- Reference
- Setup options
- Commands
- Highlight groups
- Lua API
- Components
- Parameters
- Screenshots
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
preLaunchTaskwhen used with nvim-dap
Requirements
- Neovim 0.7+
- (optional) patches for
vim.ui(e.g. dressing.nvim). Provides nicer UI for input and selection. - (optional) telescope.nvim. When used with dressing.nvim provides best selection UI.
- (optional) nvim-notify a nice UI for
vim.notify
Installation
overseer supports all the usual plugin managers
Packer
require('packer').startup(function()
use {
'stevearc/overseer.nvim',
config = function() require('overseer').setup() end
}
end)
Paq
require "paq" {
{'stevearc/overseer.nvim'};
}
vim-plug
Plug 'stevearc/overseer.nvim'
dein
call dein#add('stevearc/overseer.nvim')
Pathogen
git clone --depth=1 https://github.com/stevearc/overseer.nvim.git ~/.vim/bundle/
Neovim native package
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
- Build a C++ file
- Run a file on save
Guides
- Custom tasks
- Template definition
- Template providers
- Actions
- Custom components
- Task result
- Customizing built-in tasks
- Parsing output
- Running tasks sequentially
- VS Code tasks
Explanation
- Architecture
- Tasks
- Components
- Templates
- Task list
- Task editor
- Alternatives
- FAQ
Third-party integrations
- Lualine
- Neotest
- DAP
- Session managers
- resession.nvim
- Other session managers
Recipes
- Restart last task
- Run shell scripts in the current directory
- Directory-local tasks with nvim-config-local
- :Make similar to vim-dispatch
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)
- Components
- Parameters
Screenshots
https://user-images.githubusercontent.com/506791/180620617-2b1bb0a8-5f39-4936-97c2-04c92f1e2974.mp4