From a897cc17a5ee9a3bf9a22eb105b15d2c162f7176 Mon Sep 17 00:00:00 2001 From: skewb1k Date: Sun, 14 Sep 2025 07:17:07 +0300 Subject: feat(json): vim.json.encode() sort_keys #35574 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. --- runtime/lua/vim/_meta/json.lua | 2 ++ 1 file changed, 2 insertions(+) (limited to 'runtime/lua/vim/_meta/json.lua') diff --git a/runtime/lua/vim/_meta/json.lua b/runtime/lua/vim/_meta/json.lua index 8d3e054833..a149d24dec 100644 --- a/runtime/lua/vim/_meta/json.lua +++ b/runtime/lua/vim/_meta/json.lua @@ -56,5 +56,7 @@ function vim.json.decode(str, opts) end --- characters "/" in string values. --- - indent: (string) (default "") String used for indentation at each nesting level. --- If non-empty enables newlines and a space after colons. +--- - sort_keys: (boolean) (default false) Sort object +--- keys in alphabetical order. ---@return string function vim.json.encode(obj, opts) end -- cgit