Getting Started
Install
Section titled “Install”{ "0xveya/dogshitnorm.nvim", ft = { "c", "cpp", "make" }, opts = { cmd = { "uv", "tool", "run", "norminette" }, args = { "--no-colors" }, norminette_use_gitignore = true, active_dirs = { "~/coding/42" }, },}Set your 42 identity
Section titled “Set your 42 identity”dogshitnorm resolves header identity in this order:
opts.header_userandopts.header_emailvim.g.user42andvim.g.mail42- environment variables
Example:
vim.g.user42 = "sfurst"vim.g.mail42 = "sfurst@student.42vienna.com"Default workflow
Section titled “Default workflow”- Open a new
.c,.h,.cpp,.hpp, orMakefilebuffer inside an active 42 directory. - C-like files get the native 42 header automatically, even when the plugin was lazy-loaded on filetype after the new buffer was already opened.
- Python files and Python-project Makefiles do not get 42 headers or norminette runs.
- Saving refreshes the
Updated:line. :MakesynckeepsSRCSin sync withSRC_DIR.:NormFixand LSP code actions apply safe file-level fixes.
Python projects
Section titled “Python projects”Configure your external setup CLI once, then initialize projects with:
:PyprojectgenAn interactive prompt flow collects the CLI flags (package name, line length, toolchain, checks, debug) and runs the CLI, which creates the Makefile, pyproject.toml, and package. Auto-detection picks Python for projects with pyproject.toml, .python-version, uv.lock, top-level .py files, or matching folder globs.
See Python Projects for the CLI configuration and the full flow.
Replace older setup
Section titled “Replace older setup”If you previously used:
42Paris/42header0xveya/fancy-header.nvim- a manual
Stdheaderautocommand
you can remove them and keep only dogshitnorm.nvim.