summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua/vim/_meta/json.lua
AgeCommit message (Collapse)AuthorFiles
2026-04-14fix(lua): not obvious which _meta/ files are generated #39035Justin M. Keyes1
Problem: - Not obvious which _meta/ are generated and which should be edited manually. - The require guard (`error('Cannot require a meta file')`) is not consistently present in all meta files. Solution: - Update headers. - Add require() guard to all meta files. - Rename generated meta files with `.gen.lua`. (cherry picked from commit 65b40e69acbcb28c0e7ef9228f731c444a788e93)
2026-03-28docs: news #38464Justin M. Keyes1
2026-02-11feat(stdlib): vim.json.decode() can allow comments #37795skewb1k1
Problem: `vim.json.decode()` could not parse JSONC (JSON with Comments) extension, which is commonly used in configuration files. Solution: Introduce an `skip_comments` option, which is disabled by default. When enabled, allows JavaScript-style comments within JSON data.
2025-09-28docs: json, tests, lsp #35754Justin M. Keyes1
Close #35926 Close #35818 Co-authored-by: skewb1k <skewb1kunix@gmail.com> Co-authored-by: glepnir <glephunter@gmail.com>
2025-09-13feat(json): vim.json.encode() sort_keys #35574skewb1k1
Problem: There is no way to ensure a stable key order when encoding a JSON string, which can be useful for comparisons and producing cleaner diffs. Solution: Introduce a `sort_keys` option for `vim.json.encode()`,which is disabled by default. When enabled, object keys are sorted in alphabetical order.
2025-09-13docs: manpage, keycodes, jsonJustin M. Keyes1
2025-09-07feat(json): pretty-format (indent) with vim.json.encode() #35424skewb1k1
Problem: There is no straightforward way to pretty-print objects as JSON. The existing `vim.inspect` outputs LON. Solution: Introduce an `indent` option for `vim.json.encode()` which enables human-readable output with configurable indentation. Adapts PR to upstream: openresty/lua-cjson#114
2025-01-01docs: misc #31479Justin M. Keyes1
2024-12-06feat(stdlib): vim.json.encode(...,{escape_slash:boolean}) #30561Bartłomiej Maryńczak1
Problem: vim.json.encode escapes every slash in string values (for example in file paths), and is not optional. Use-case is for preventing HTML injections (eg. injecting `</script>` closing tag); in the context of Nvim this is rarely useful. Solution: - Add a `escape_slash` flag to `vim.json.encode`. - Defaults to `false`. (This is a "breaking" change, but more like a bug fix.)
2024-02-27feat(docs): replace lua2dox.luaLewis Russell1
Problem: The documentation flow (`gen_vimdoc.py`) has several issues: - it's not very versatile - depends on doxygen - doesn't work well with Lua code as it requires an awkward filter script to convert it into pseudo-C. - The intermediate XML files and filters makes it too much like a rube goldberg machine. Solution: Re-implement the flow using Lua, LPEG and treesitter. - `gen_vimdoc.py` is now replaced with `gen_vimdoc.lua` and replicates a portion of the logic. - `lua2dox.lua` is gone! - No more XML files. - Doxygen is now longer used and instead we now use: - LPEG for comment parsing (see `scripts/luacats_grammar.lua` and `scripts/cdoc_grammar.lua`). - LPEG for C parsing (see `scripts/cdoc_parser.lua`) - Lua patterns for Lua parsing (see `scripts/luacats_parser.lua`). - Treesitter for Markdown parsing (see `scripts/text_utils.lua`). - The generated `runtime/doc/*.mpack` files have been removed. - `scripts/gen_eval_files.lua` now instead uses `scripts/cdoc_parser.lua` directly. - Text wrapping is implemented in `scripts/text_utils.lua` and appears to produce more consistent results (the main contributer to the diff of this change).
2023-09-22fix(meta): include vim.jsonMaria José Solano1
2023-09-14docs: replace <pre> with ``` (#25136)Gregory Anders1
2023-07-17fix: luacheckLewis Russell1
2023-07-17docs(lua): change *lua-foo* -> *vim.foo*Lewis Russell1
2023-07-17docs(lua): move function docs to lua filesLewis Russell1