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.
fix(install): only install "tee" on Windows #36629
Problem:
AUR does not want a web-scale implementation of "tee".
Solution:
- Only install "tee" on Windows.
- The build will still produce ./build/bin/tee on all platforms, to
have more coverage and avoid special-cases in tests.
build(windows): vendor xxd.c #36746
Problem:
Currently we fetch a prebuilt xxd.exe from neovim/deps for Windows,
which is not ideal in terms of obviousness, misses updates, and is
clumsy to update.
Solution:
Similar to tee.c (#36363), vendor xxd.c from Vim and build it as part
of the Neovim build process. This makes the source obvious, enables
analyzer checks, and simplifies updates.
Fixes #36664
refactor: rename "process" => "proc" #30387
Problem:
- "process" is often used as a verb (multiqueue_process_events), which
is ambiguous for cases where it's used as a topic.
- The documented naming convention for processes is "proc".
- :help dev-name-common
- Shorter is better, when it doesn't harm readability or
discoverability.
Solution:
Rename "process" => "proc" in all C symbols and module names.
fix(clint.py): replace deprecated codecs.open #36593
Remove codecs import and use open(..., encoding='utf-8', errors='replace', newline=None) in clint.py to avoid Python 3.14 DeprecationWarning; preserve existing CR handling.