# Fix incorrect array merging in LSP initialization_options \(\#54950\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/d61edb0825ae9a8dcc06c4f30547f4a1348f4a8f)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: d61edb0825ae9a8dcc06c4f30547f4a1348f4a8f

Requested commit: d61edb0825ae9a8dcc06c4f30547f4a1348f4a8f

Commit: d61edb0825ae9a8dcc06c4f30547f4a1348f4a8f

Tree: 61266d7eb553515d0f6cc2718f6bf1e819805d6e

Author: Benjamin Ye

Committer: GitHub

## Message

```
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>
```

## Parents

- [3cee61d75f582e345faa43e2291e371534f223dd](https://git.cafe/gitcafe/zed/commit/3cee61d75f582e345faa43e2291e371534f223dd?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/d61edb0825ae9a8dcc06c4f30547f4a1348f4a8f?format=markdown)
