A stateful Neovim plugin for managing and running build system tasks with project-specific configuration.
Neovim Tasks is a Neovim plugin that provides a stateful, project-aware task system for managing build, run, and debug workflows. It integrates with build systems like CMake, Cargo, Bazel, Make, Zig, and NPM, allowing developers to define, configure, and execute tasks directly within Neovim with settings serialized per project for consistency.
Neovim users who work on projects using supported build systems (e.g., C/C++ with CMake, Rust with Cargo, JavaScript/TypeScript with NPM) and want to streamline their development workflow without leaving the editor.
Developers choose Neovim Tasks for its deep integration with multiple build systems, stateful project-specific configuration that persists across sessions, and features like task chaining, debugger support via nvim-dap, and output in Neovim's quickfix list for efficient navigation.
A statefull task manager focused on integration with build systems.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integrates with CMake, Cargo, Bazel, Make, Zig, and NPM via lazy-loaded modules, providing tailored tasks for each ecosystem as listed in the 'Available modules' section.
Serializes all task and module parameters per project in a neovim.json file, ensuring consistency across sessions, as highlighted in the features and configuration examples.
Tasks can run through nvim-dap with pre-configured settings for languages like C++ and Rust, enabling seamless debugging directly from Neovim, as detailed in the dependencies and usage sections.
Directs task output to Neovim's quickfix list for easy error navigation, a core feature mentioned in the README that streamlines workflow without terminal switching.
Only supports a handful of build systems out-of-the-box; projects using tools like SCons or custom scripts require writing Lua modules, which the README admits is necessary for extension.
Requires extensive Lua setup and understanding of module parameters, with verbose configuration examples that can be overwhelming for users not familiar with Neovim scripting.
Depends on plenary.nvim and optionally nvim-dap, adding installation steps and potential compatibility issues, as noted in the dependencies list.