Fix incorrect array merging in LSP initialization_options (#54950)
In lsp_store, user's lsp initialization_options are merged into the
adapter's
defaults using `merge_json_value_into`; this merges by concatenating
arrays,
which can produce duplicate entries.
Adds merge_json_value_into_replacing_arrays, a variant that replaces
arrays instead of merging; uses it for LSP initialization options.
`merge_json_value_into` is kept since some callers intentionally
use array concatenation (extending rust-analyzer's
experimental.commands.commands list).
Closes #54892
Release Notes:
- Fixed duplicated or extra array values in LSP `initialization_options`
when user settings override LSP defaults with an array
---------
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
d61edb0825Benjamin Ye committed on 7/23/2026, 7:53:27 AM· committed by GitHubparent3cee61d