1 module dls.protocol.messages.text_document; 2 3 import logger = std.experimental.logger; 4 import dls.protocol.interfaces; 5 import dls.tools.tools : Tools; 6 import dls.util.document : Document; 7 import dls.util.uri : Uri; 8 9 void didOpen(DidOpenTextDocumentParams params) 10 { 11 if (params.textDocument.languageId == "d") 12 { 13 logger.logf("Opening %s", new Uri(params.textDocument.uri).path); 14 Document.open(params.textDocument); 15 } 16 } 17 18 void didChange(DidChangeTextDocumentParams params) 19 { 20 Document.change(params.textDocument, params.contentChanges); 21 } 22 23 void willSave(WillSaveTextDocumentParams params) 24 { 25 } 26 27 auto willSaveWaitUntil(WillSaveTextDocumentParams params) 28 { 29 TextEdit[] result; 30 return result; 31 } 32 33 void didSave(DidSaveTextDocumentParams params) 34 { 35 } 36 37 void didClose(DidCloseTextDocumentParams params) 38 { 39 Document.close(params.textDocument); 40 } 41 42 auto completion(CompletionParams params) 43 { 44 auto uri = new Uri(params.textDocument.uri); 45 logger.logf("Getting completions for %s at position %s,%s", uri.path, 46 params.position.line, params.position.character); 47 return Tools.codeCompleter.complete(uri, params.position); 48 } 49 50 @("completionItem", "resolve") 51 auto completionItem_resolve(CompletionItem item) 52 { 53 return item; 54 } 55 56 auto hover(TextDocumentPositionParams params) 57 { 58 auto result = new Hover(); 59 return result; 60 } 61 62 auto signatureHelp(TextDocumentPositionParams params) 63 { 64 auto result = new SignatureHelp(); 65 return result; 66 } 67 68 auto definition(TextDocumentPositionParams params) 69 { 70 auto result = new Location(); 71 return result.nullable; 72 } 73 74 auto typeDefinition(TextDocumentPositionParams params) 75 { 76 auto result = new Location(); 77 return result.nullable; 78 } 79 80 auto implementation(TextDocumentPositionParams params) 81 { 82 auto result = new Location(); 83 return result.nullable; 84 } 85 86 auto references(ReferenceParams params) 87 { 88 Location[] result; 89 return result; 90 } 91 92 auto documentHighlight(TextDocumentPositionParams params) 93 { 94 DocumentHighlight[] result; 95 return result; 96 } 97 98 auto documentSymbol(DocumentSymbolParams params) 99 { 100 SymbolInformation[] result; 101 return result; 102 } 103 104 auto codeAction(CodeActionParams params) 105 { 106 Command[] result; 107 return result; 108 } 109 110 auto codeLens(CodeLensParams params) 111 { 112 CodeLens[] result; 113 return result; 114 } 115 116 @("codeLens", "resolve") 117 auto codeLens_resolve(CodeLens codeLens) 118 { 119 return codeLens; 120 } 121 122 auto documentLink(DocumentLinkParams params) 123 { 124 DocumentLink[] result; 125 return result; 126 } 127 128 @("documentLink", "resolve") 129 auto documentLink_resolve(DocumentLink link) 130 { 131 return link; 132 } 133 134 auto documentColor(DocumentColorParams params) 135 { 136 ColorInformation[] result; 137 return result; 138 } 139 140 auto colorPresentation(ColorPresentationParams params) 141 { 142 ColorPresentation[] result; 143 return result; 144 } 145 146 auto formatting(DocumentFormattingParams params) 147 { 148 auto uri = new Uri(params.textDocument.uri); 149 logger.logf("Formatting %s", uri.path); 150 return Tools.formatter.format(uri, params.options); 151 } 152 153 auto rangeFormatting(DocumentRangeFormattingParams params) 154 { 155 TextEdit[] result; 156 return result; 157 } 158 159 auto onTypeFormatting(DocumentOnTypeFormattingParams params) 160 { 161 TextEdit[] result; 162 return result; 163 } 164 165 auto rename(RenameParams params) 166 { 167 WorkspaceEdit[] result; 168 return result; 169 }