src/Tools/VSCode/src/protocol.scala
changeset 66140 cdb6c10122b6
parent 66139 6a8f8be2741c
child 66211 100c9c997e2b
equal deleted inserted replaced
66139:6a8f8be2741c 66140:cdb6c10122b6
   329   sealed case class CompletionItem(
   329   sealed case class CompletionItem(
   330     label: String,
   330     label: String,
   331     kind: Option[Int] = None,
   331     kind: Option[Int] = None,
   332     detail: Option[String] = None,
   332     detail: Option[String] = None,
   333     documentation: Option[String] = None,
   333     documentation: Option[String] = None,
   334     insertText: Option[String] = None,
   334     text: Option[String] = None,
   335     range: Option[Line.Range] = None,
   335     range: Option[Line.Range] = None,
   336     command: Option[Command] = None)
   336     command: Option[Command] = None)
   337   {
   337   {
   338     def json: JSON.T =
   338     def json: JSON.T =
   339       Map("label" -> label) ++
   339       Map("label" -> label) ++
   340       JSON.optional("kind" -> kind) ++
   340       JSON.optional("kind" -> kind) ++
   341       JSON.optional("detail" -> detail) ++
   341       JSON.optional("detail" -> detail) ++
   342       JSON.optional("documentation" -> documentation) ++
   342       JSON.optional("documentation" -> documentation) ++
   343       JSON.optional("insertText" -> insertText) ++
   343       JSON.optional("insertText" -> text) ++
   344       JSON.optional("range" -> range.map(Range(_))) ++
   344       JSON.optional("range" -> range.map(Range(_))) ++
   345       JSON.optional("textEdit" ->
   345       JSON.optional("textEdit" ->
   346         range.map(r => Map("range" -> Range(r), "newText" -> insertText.getOrElse(label)))) ++
   346         range.map(r => Map("range" -> Range(r), "newText" -> text.getOrElse(label)))) ++
   347       JSON.optional("command" -> command.map(_.json))
   347       JSON.optional("command" -> command.map(_.json))
   348   }
   348   }
   349 
   349 
   350   object Completion extends RequestTextDocumentPosition("textDocument/completion")
   350   object Completion extends RequestTextDocumentPosition("textDocument/completion")
   351   {
   351   {