equal
deleted
inserted
replaced
138 object ServerCapabilities |
138 object ServerCapabilities |
139 { |
139 { |
140 val json: JSON.T = |
140 val json: JSON.T = |
141 Map( |
141 Map( |
142 "textDocumentSync" -> 1, |
142 "textDocumentSync" -> 1, |
|
143 "completionProvider" -> Map("resolveProvider" -> false, "triggerCharacters" -> Nil), |
143 "hoverProvider" -> true, |
144 "hoverProvider" -> true, |
144 "definitionProvider" -> true, |
145 "definitionProvider" -> true, |
145 "documentHighlightProvider" -> true) |
146 "documentHighlightProvider" -> true) |
146 } |
147 } |
147 |
148 |
288 } |
289 } |
289 } |
290 } |
290 |
291 |
291 object DidCloseTextDocument extends TextDocumentNotification("textDocument/didClose") |
292 object DidCloseTextDocument extends TextDocumentNotification("textDocument/didClose") |
292 object DidSaveTextDocument extends TextDocumentNotification("textDocument/didSave") |
293 object DidSaveTextDocument extends TextDocumentNotification("textDocument/didSave") |
|
294 |
|
295 |
|
296 /* completion */ |
|
297 |
|
298 sealed case class CompletionItem( |
|
299 label: String, |
|
300 kind: Option[Int] = None, |
|
301 detail: Option[String] = None, |
|
302 documentation: Option[String] = None, |
|
303 insertText: Option[String] = None, |
|
304 range: Option[Line.Range] = None) |
|
305 { |
|
306 def json: JSON.T = |
|
307 Message.empty + ("label" -> label) ++ |
|
308 (kind match { case Some(x) => Map("kind" -> x) case None => Map.empty }) ++ |
|
309 (detail match { case Some(x) => Map("detail" -> x) case None => Map.empty }) ++ |
|
310 (documentation match { case Some(x) => Map("documentation" -> x) case None => Map.empty }) ++ |
|
311 (insertText match { case Some(x) => Map("insertText" -> x) case None => Map.empty }) ++ |
|
312 (range match { case Some(x) => Map("range" -> Range(x)) case None => Map.empty }) |
|
313 } |
|
314 |
|
315 object Completion extends RequestTextDocumentPosition("textDocument/completion") |
|
316 { |
|
317 def reply(id: Id, result: List[CompletionItem]): JSON.T = |
|
318 ResponseMessage(id, Some(result.map(_.json))) |
|
319 } |
293 |
320 |
294 |
321 |
295 /* hover request */ |
322 /* hover request */ |
296 |
323 |
297 object Hover extends RequestTextDocumentPosition("textDocument/hover") |
324 object Hover extends RequestTextDocumentPosition("textDocument/hover") |