A NeoVim plugin for printf-style debugging that inserts debug statements with file, line, and variable info across 40+ languages.
debugprint.nvim is a NeoVim plugin that simplifies printf-style debugging by inserting contextual trace statements directly into code. It supports over 40 programming languages and provides features like variable inspection, line highlighting, and batch operations to streamline the debugging workflow.
NeoVim users who prefer a low-tech, print-based debugging approach over complex debuggers like nvim-dap, particularly developers working in multiple languages who need quick, contextual trace statements.
Developers choose debugprint.nvim for its extensive language support, persistent contextual information (like file names and counters), and practical features like batch insertion and line management, offering a focused alternative to heavier debugging tools.
Debugging in NeoVim the print() way!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports over 40 filetypes including Python, JavaScript, and more out-of-the-box, with extensible templates as detailed in the feature comparison table.
Inserts debug lines with file names, line numbers, persistent counters, and code snippets for easy cross-referencing, customizable per filetype as shown in the README.
Uses Treesitter to detect variables under the cursor or prompts for expressions, even supporting embedded languages like JavaScript-in-HTML.
Provides keymaps for normal, insert, visual, and operator-pending modes with dot-repeat and surround insertion, as outlined in the keymappings table.
Includes commands to delete, comment, search, and add debug lines to the quickfix list, enhancing workflow with tools like fzf-lua or telescope.nvim integration.
Cannot handle debug lines that have been split by code formatters, making deletion commands unreliable after formatting, as admitted in the Known Limitations section.
Requires mini.nvim or mini.hipatterns for line highlighting, adding setup complexity and potential plugin conflicts beyond the core functionality.
Has experienced breaking changes like version 2.0.0 deprecating old mapping methods, requiring migration efforts and monitoring of GitHub issues for updates.
Lacks completely customizable log templates compared to alternatives like timber.nvim, as noted in the feature comparison where it scores :x: for that feature.