Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. cmake-tools.nvim

cmake-tools.nvim

GPL-3.0Lua

A pure Lua Neovim plugin providing comprehensive CMake project integration with build, test, and debug workflows.

GitHubGitHub
541 stars107 forks0 contributors

What is cmake-tools.nvim?

CMake Tools for Neovim is a plugin that integrates CMake project management directly into the Neovim editor. It provides commands and workflows for configuring, building, running, testing, and debugging CMake-based projects, aiming to match the feature set of IDE extensions like VS Code's CMake Tools. It solves the problem of fragmented or manual CMake workflows in terminal-based editors.

Target Audience

C/C++ developers using Neovim who work with CMake-based projects and want a unified, IDE-like build and debug experience without leaving their editor.

Value Proposition

Developers choose this plugin because it offers a comprehensive, pure-Lua implementation of CMake tools specifically for Neovim, with deep integration into the editor's ecosystem, extensive configurability, and a workflow comparable to popular IDE extensions.

Overview

CMake integration in Neovim

Use Cases

Best For

  • Managing complex CMake projects entirely within Neovim
  • Debugging C/C++ applications with integrated DAP configuration
  • Running and visualizing CTest unit tests from the editor
  • Automating build workflows with different presets and variants
  • Integrating CMake compile commands with Neovim LSP servers
  • Switching between build types (Debug, Release) quickly during development

Not Ideal For

  • Projects using non-CMake build systems like Bazel or Meson
  • Developers who prefer minimal Neovim setups without complex plugin dependencies
  • Teams relying on advanced GUI debugging tools not fully supported in Neovim's DAP

Pros & Cons

Pros

Comprehensive CMake Integration

Provides a full IDE-like workflow for configuring, building, testing, and debugging CMake projects directly in Neovim, with support for presets, kits, and variants as outlined in the key features.

Extensible Architecture

Offers flexible configuration for build directories, executors, and runners, with optional integration with plugins like overseer and toggleterm, allowing customization to fit various workflows.

Automatic LSP Support

Handles compile_commands.json automatically via soft linking or copying, ensuring seamless integration with Neovim's LSP servers for improved code intelligence without manual setup.

Session Persistence

Maintains project-specific settings across sessions, reducing repetitive configuration for frequently accessed projects, though this can lead to inconsistencies if not managed carefully.

Cons

Configuration Complexity

The setup requires extensive configuration with many options, which can be overwhelming for users new to CMake or Neovim plugin management, as seen in the lengthy configuration example.

Session Management Quirks

Project sessions override global settings and may not reflect config changes without manual refresh, leading to potential confusion, as explicitly warned in the README.

Dependency on Optional Plugins

Full functionality relies on installing and configuring external plugins like overseer or toggleterm, adding to the initial setup burden and potential compatibility issues.

Open Source Alternative To

cmake-tools.nvim is an open-source alternative to the following products:

v
vscode-cmake-tools

CMake Tools is a Visual Studio Code extension that provides integration with CMake, assisting with configuration, building, testing, and debugging of CMake-based projects.

Frequently Asked Questions

Quick Stats

Stars541
Forks107
Contributors0
Open Issues12
Last commit1 month ago
CreatedSince 2022

Tags

#developer-tools#test-runner#neovim-plugin#cmake#c-plus-plus#build-system#neovim-plugins#code-editor#neovim#lua#nvim#debugging

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 1 day ago

Related Projects

overseer.nvimoverseer.nvim

A task runner and job management plugin for Neovim

Stars1,883
Forks98
Last commit7 days ago
sniprunsniprun

A neovim plugin to run lines/blocs of code (independently of the rest of the file), supporting multiples languages

Stars1,702
Forks51
Last commit1 month ago
iron.nvimiron.nvim

Interactive Repl Over Neovim

Stars1,345
Forks109
Last commit3 months ago
molten-nvimmolten-nvim

A neovim plugin for interactively running code with the jupyter kernel. Fork of magma-nvim with improvements in image rendering, performance, and more

Stars1,176
Forks62
Last commit3 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub