@@ -969,20 +969,19 @@ impl Client {
969 ) -> Option<impl Future<Output = Result<()>>> {
969 ) -> Option<impl Future<Output = Result<()>>> {
970 let capabilities = self.capabilities.get().unwrap();
970 let capabilities = self.capabilities.get().unwrap();
972− let include_text = match &capabilities.text_document_sync {
972+ let include_text = match &capabilities.text_document_sync.as_ref()? {
973− Some(lsp::TextDocumentSyncCapability::Options(lsp::TextDocumentSyncOptions {
973+ lsp::TextDocumentSyncCapability::Options(lsp::TextDocumentSyncOptions {
974− save: Some(options),
974+ save: options,
976− })) => match options {
976+ }) => match options.as_ref()? {
977 lsp::TextDocumentSyncSaveOptions::Supported(true) => false,
977 lsp::TextDocumentSyncSaveOptions::Supported(true) => false,
978 lsp::TextDocumentSyncSaveOptions::SaveOptions(lsp_types::SaveOptions {
978 lsp::TextDocumentSyncSaveOptions::SaveOptions(lsp_types::SaveOptions {
979 include_text,
979 include_text,
980 }) => include_text.unwrap_or(false),
980 }) => include_text.unwrap_or(false),
981− // Supported(false)
981+ lsp::TextDocumentSyncSaveOptions::Supported(false) => return None,
984− // unsupported
983+ // see: https://github.com/microsoft/language-server-protocol/issues/288
985− _ => return None,
984+ lsp::TextDocumentSyncCapability::Kind(..) => false,
988 Some(self.notify::<lsp::notification::DidSaveTextDocument>(
987 Some(self.notify::<lsp::notification::DidSaveTextDocument>(