@@ -113,6 +113,10 @@ impl Client {
113113 self.offset_encoding
114114 }
115115
116+ pub fn config(&self) -> Option<&Value> {
117+ self.config.as_ref()
118+ }
119+
116120 /// Execute a RPC request on the language server.
117121 async fn request<R: lsp::request::Request>(&self, params: R::Params) -> Result<R::Result>
118122 where
@@ -246,6 +250,13 @@ impl Client {
246250 root_uri: root,
247251 initialization_options: self.config.clone(),
248252 capabilities: lsp::ClientCapabilities {
253+ workspace: Some(lsp::WorkspaceClientCapabilities {
254+ configuration: Some(true),
255+ did_change_configuration: Some(lsp::DynamicRegistrationClientCapabilities {
256+ dynamic_registration: Some(false),
257+ }),
258+ ..Default::default()
259+ }),
249260 text_document: Some(lsp::TextDocumentClientCapabilities {
250261 completion: Some(lsp::CompletionClientCapabilities {
251262 completion_item: Some(lsp::CompletionItemCapability {
@@ -330,6 +341,16 @@ impl Client {
330341 self.exit().await
331342 }
332343
344+ // -------------------------------------------------------------------------------------------
345+ // Workspace
346+ // -------------------------------------------------------------------------------------------
347+
348+ pub fn did_change_configuration(&self, settings: Value) -> impl Future<Output = Result<()>> {
349+ self.notify::<lsp::notification::DidChangeConfiguration>(
350+ lsp::DidChangeConfigurationParams { settings },
351+ )
352+ }
353+
333354 // -------------------------------------------------------------------------------------------
334355 // Text document
335356 // -------------------------------------------------------------------------------------------