project: Register dynamic capabilities even when registerOptions doesn't exist (#36554)

Closes #36482

Looks like we accidentally referenced
[common/formatting.ts#L67-L70](d90a87f955/client/src/common/formatting.ts (L67-L70))
instead of
[common/client.ts#L2133](d90a87f955/client/src/common/client.ts (L2133)).

Release Notes:

- Fixed code not formatting on save in language servers like Biome.
(Preview Only)
This commit is contained in:
Smit Barmase 2025-08-20 12:20:09 +05:30
parent 27156279bb
commit e22c7592d9

View file

@ -12062,16 +12062,15 @@ impl LspStore {
} }
} }
// Registration with empty capabilities should be ignored. // Registration with registerOptions as null, should fallback to true.
// https://github.com/microsoft/vscode-languageserver-node/blob/d90a87f9557a0df9142cfb33e251cfa6fe27d970/client/src/common/formatting.ts#L67-L70 // https://github.com/microsoft/vscode-languageserver-node/blob/d90a87f9557a0df9142cfb33e251cfa6fe27d970/client/src/common/client.ts#L2133
fn parse_register_capabilities<T: serde::de::DeserializeOwned>( fn parse_register_capabilities<T: serde::de::DeserializeOwned>(
reg: lsp::Registration, reg: lsp::Registration,
) -> anyhow::Result<Option<OneOf<bool, T>>> { ) -> anyhow::Result<Option<OneOf<bool, T>>> {
Ok(reg Ok(match reg.register_options {
.register_options Some(options) => Some(OneOf::Right(serde_json::from_value::<T>(options)?)),
.map(|options| serde_json::from_value::<T>(options)) None => Some(OneOf::Left(true)),
.transpose()? })
.map(OneOf::Right))
} }
fn subscribe_to_binary_statuses( fn subscribe_to_binary_statuses(