| 1074 | } |
| 1075 | |
| 1076 | class DidSaveTextDocumentFeature extends DocumentNotifiactions<DidSaveTextDocumentParams, TextDocument> { |
| 1077 | |
| 1078 | private _includeText: boolean; |
| 1079 | |
| 1080 | constructor(client: BaseLanguageClient) { |
| 1081 | super( |
| 1082 | client, Workspace.onDidSaveTextDocument, DidSaveTextDocumentNotification.type, |
| 1083 | client.clientOptions.middleware!.didSave, |
| 1084 | (textDocument) => client.code2ProtocolConverter.asSaveTextDocumentParams(textDocument, this._includeText), |
| 1085 | DocumentNotifiactions.textDocumentFilter |
| 1086 | ); |
| 1087 | } |
| 1088 | |
| 1089 | public get messages(): RPCMessageType { |
| 1090 | return DidSaveTextDocumentNotification.type; |
| 1091 | } |
| 1092 | |
| 1093 | public fillClientCapabilities(capabilities: ClientCapabilities): void { |
| 1094 | ensure(ensure(capabilities, 'textDocument')!, 'synchronization')!.didSave = true; |
| 1095 | } |
| 1096 | |
| 1097 | public initialize(capabilities: ServerCapabilities, documentSelector: DocumentSelector): void { |
| 1098 | let textDocumentSyncOptions = (capabilities as ResolvedTextDocumentSyncCapabilities).resolvedTextDocumentSync; |
| 1099 | if (documentSelector && textDocumentSyncOptions && textDocumentSyncOptions.save) { |
| 1100 | this.register(this.messages, { |
| 1101 | id: UUID.generateUuid(), |
| 1102 | registerOptions: Object.assign({}, { documentSelector: documentSelector }, { includeText: !!textDocumentSyncOptions.save.includeText }) |
| 1103 | }); |
| 1104 | } |
| 1105 | } |
| 1106 | |
| 1107 | public register(method: RPCMessageType, data: RegistrationData<TextDocumentSaveRegistrationOptions>): void { |
| 1108 | this._includeText = !!data.registerOptions.includeText; |
| 1109 | super.register(method, data); |
| 1110 | } |
| 1111 | } |
| 1112 | |
| 1113 | class FileSystemWatcherFeature implements DynamicFeature<DidChangeWatchedFilesRegistrationOptions> { |
| 1114 |
nothing calls this directly
no outgoing calls
no test coverage detected