# lsp: Exclude dynamic settings from LanguageServerSeed identity \(\#47376\) · gitcafe/zed

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

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

Visibility: public

Requested revision: 2dd4897925782ed6ef538dd022402ef167a179eb

Requested commit: 2dd4897925782ed6ef538dd022402ef167a179eb

Commit: 2dd4897925782ed6ef538dd022402ef167a179eb

Tree: c33583cc1acd1658cf9f8c46468bc9db90dc57d4

Author: Shuhei Kadowaki

Committer: GitHub

## Message

```
lsp: Exclude dynamic settings from LanguageServerSeed identity (#47376)

`LanguageServerSeed` is used as a key to identify language servers.
Previously, it included the entire `LspSettings`, which meant that
changing `lsp.<server>.settings` (dynamic configuration) would cause the
server to restart unnecessarily.

Dynamic settings can be updated via LSP's
`workspace/didChangeConfiguration` notification without requiring a
server restart. Only `binary` and `initialization_options` should be
part of the server identity, as changes to these genuinely require
restarting the server.

This is a follow-up fix to #35270 which introduced `LanguageServerSeed`
but inadvertently included dynamic settings in the server identity
(although I remember that this dynamic settings reflection stopped
working pretty recently, so there might be other commits besides #35270
that changed the behavior of `LanguageServerSeed`)

Closes #ISSUE

Release Notes:

- Fixed language servers unnecessarily restarting when changing
`lsp.<server>.settings` configuration. Dynamic settings are now properly
updated via `workspace/didChangeConfiguration` without requiring a
server restart.
```

## Parents

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

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