Skip to content

Commit 94f0291

Browse files
tarkahWebFreak001
authored andcommitted
Specify SaveOptions in server capabilities
`textDocument/didSave` is specified by the server capability of SaveOptions or bool in the TextDocumentSyncOptions. Since this wasn't getting set, some clients may not send `textDocument/didSave` since the server never broadcasted this capability. `includeText` is set to `false` since I didn't see anywhere we use the text contents when responding to this method. I've confirmed this fixes a bug in the client `helix` as dub build lints weren't getting triggered since it wouldn't send the `textDocument/didSave` message unless this capability was sent.
1 parent ce3d7f4 commit 94f0291

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

source/served/extension.d

+8-1
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,13 @@ InitializeResult initialize(InitializeParams params)
260260
}
261261

262262
InitializeResult result;
263+
SaveOptions save = {
264+
includeText: false,
265+
};
266+
TextDocumentSyncOptions textDocumentSync = {
267+
change: documents.syncKind,
268+
save: save,
269+
};
263270
CompletionOptions completionProvider = {
264271
resolveProvider: doCompleteSnippets,
265272
triggerCharacters: [
@@ -285,7 +292,7 @@ InitializeResult initialize(InitializeParams params)
285292
};
286293
FoldingRangeOptions foldingRangeProvider;
287294
ServerCapabilities serverCapabilities = {
288-
textDocumentSync: documents.syncKind,
295+
textDocumentSync: textDocumentSync,
289296
// only provide fixes when doCompleteSnippets is requested
290297
completionProvider: completionProvider,
291298
referencesProvider: true,

0 commit comments

Comments
 (0)