explaingit

gasparvardanyan/diactions.nvim

Analysis updated 2026-05-18

10LuaAudience · developerComplexity · 2/5Setup · easy

TLDR

A Neovim plugin that turns C and C++ linter warnings into quick, automatic code fixes.

Mindmap

mindmap
  root((diactions.nvim))
    What it does
      Extra code actions
      From linter diagnostics
      Fixes not in LSP
    Tech stack
      Lua
      Neovim
      none-ls
    Use cases
      Fix clang-tidy warnings
      Fix cppcheck warnings
      Extend code action menu
    Audience
      Developers
      C++ programmers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Get one click fixes in Neovim for clang-tidy warnings in a C++ project.

USE CASE 2

Turn cppcheck diagnostics into applyable code actions instead of manual edits.

USE CASE 3

Add the plugin as a none-ls source to extend Neovim's built in code action menu.

What is it built with?

LuaNeovimnone-ls

How does it compare?

gasparvardanyan/diactions.nvimatcold/torch-torch7-toolsm2zmforever/atlas
Stars101012
LanguageLuaLuaLua
Last pushed2014-05-29
MaintenanceDormant
Setup difficultyeasymoderatemoderate
Complexity2/52/52/5
Audiencedeveloperresearchergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires the none-ls.nvim plugin as a dependency.

In plain English

diactions.nvim is a small plugin for the Neovim text editor that adds extra code actions based on warnings from linters, tools that scan your code for problems and style issues. Code actions are quick fixes an editor can offer you, like changing a line automatically instead of you typing the fix by hand. The author's problem is that Neovim already gets code actions from language servers, the tools that understand a programming language and offer suggestions as you type. But linters like clang-tidy and cppcheck, which are commonly used for C and C++ code, often flag issues that do not come with a ready made fix from the language server. This plugin closes that gap by turning specific linter warnings into their own custom code actions. Right now the plugin relies on another tool called none-ls to plug into Neovim's code action system, since Neovim's built in support already expects that kind of source. The author explains that in the future this dependency might become optional if support is added for other selection tools, such as fzf-lua, a fuzzy finder plugin. Only a limited set of code actions for clang-tidy and cppcheck are implemented so far, since the author personally works with C++ tools like clang-tidy, cppcheck, and clazy and plans to keep adding more over time. That said, the plugin itself is not limited to C++, and the author is open to it eventually supporting linters and diagnostics from other programming languages too. Setup is simple: you add the plugin as a dependency of none-ls in your Neovim plugin manager, then register its provided source inside your none-ls configuration. The author also notes that contributions from other developers are welcome.

Copy-paste prompts

Prompt 1
Show me how to install diactions.nvim as a dependency of none-ls in my Neovim config.
Prompt 2
Explain what code actions diactions.nvim currently supports for clang-tidy and cppcheck.
Prompt 3
Help me understand why diactions.nvim needs none-ls instead of using Neovim's LSP support directly.
Prompt 4
Walk me through adding a new custom code action to diactions.nvim for a different linter.

Frequently asked questions

What is diactions.nvim?

A Neovim plugin that turns C and C++ linter warnings into quick, automatic code fixes.

What language is diactions.nvim written in?

Mainly Lua. The stack also includes Lua, Neovim, none-ls.

How hard is diactions.nvim to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is diactions.nvim for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.