render-markdown.nvim is a Neovim plugin that enhances the display of Markdown files within the editor.
The plugin addresses the challenge of reading Markdown in a text editor by applying visual enhancements directly inside Neovim without spawning external windows. It uses Neovim's virtual text and treesitter capabilities to render Markdown components with custom styling, including icons, colors, borders, and padding. The tool operates in two modes: a rendered view that displays enhanced formatting, and a raw view that shows the original Markdown syntax. It intelligently switches between these modes based on whether the cursor is in normal or insert mode, and hides its virtual text on the line containing the cursor to preserve editing functionality.
The plugin suits developers and writers who spend significant time editing Markdown files in Neovim and want improved visual presentation without leaving the editor. It works with Markdown embedded in any file type, not just dedicated Markdown files, and can be configured to load automatically with lazy.nvim. The tool renders headings, code blocks, inline code, horizontal breaks, list bullets, checkboxes, block quotes, callouts, tables, links, and LaTeX formulas. Performance is handled through viewport-aware rendering that only processes visible content, with an option to disable rendering entirely for files exceeding a specified size. All visual components—icons, colors, borders, and padding—are fully customizable, and the plugin provides extension points for users to add custom rendering logic.
The project shows consistent refinement of its rendering capabilities across Markdown components. Development maintains responsiveness to user-reported issues and feature requests. The codebase demonstrates attention to performance optimization and compatibility across different Neovim versions, with certain features gated behind version requirements where necessary.