data.nvim
Format and filter structured data (JSON, YAML, XML) in place, in the buffer or a visual selection — pretty, compact (JSON/XML), lines to flatten nested keys onto one path: value per line, keys for just the paths.
- status
- beta — Beta stage — active development. This repository is past its first shape and in active use, but the surface is not frozen: breaking changes are still possible. Pin a commit or tag if you depend on it.
- category
- Editing
- neovim
- 0.9+
- repo
- github.com/StefanBartl/data.nvim
- commits
- 44
- help
- :help data
demo
demos/data.tape in a clean Neovim — re-recorded weekly
what is shown when
- :JSON - pretty-print in place
- :JSON sort - sorted keys
- :JSON lines - one path per leaf
- :JSON to yaml
install
{
"StefanBartl/data.nvim",
opts = {},
} docs/
- BINDINGS.md
- CONTRIBUTING.md
- README.md
- architecture.md
- commands.md
- configuration.md
- health.md
- installation.md
- integrations.md
- quickstart.md
- requirements.md
- scope.md
- what-you-get.md
git log
- docs fix DEAD commands.md link (duplicated docs/ prefix)
- docs link back to the wkd family site
- ci bump leafo/gh-actions-lua and gh-actions-luarocks off Node 20
- ci bump JohnnyMorganz/stylua-action to v5 (Node-20 deprecation)
- ci bump the failure-log upload to actions/upload-artifact@v7 (Node 24)
- ci add job timeouts, failure log artifacts, swap/shada-free nvim runs, pinned deps
- fix filter: detect a content change during the preview confirm dialog
- fix config: deep-copy setup()'s merge result, not just the load-time default
- fix filter: detect a content change on the scope mid-prompt (ERR-30)
- fix config: deep-copy DEFAULTS instead of aliasing it (ERR-51)
- fix filter: guard against a vanished tracking mark before reading (ERR-02)
- fix scope,detect: pcall color_my_ascii's block_at at the fence boundary (ERR-01)