src/Tools/VSCode/src/server.scala
changeset 65197 8fada74d82be
parent 65196 e8760a98db78
child 65206 ff8c3c29a924
equal deleted inserted replaced
65196:e8760a98db78 65197:8fada74d82be
   310     val result =
   310     val result =
   311       for {
   311       for {
   312         (rendering, offset) <- rendering_offset(node_pos)
   312         (rendering, offset) <- rendering_offset(node_pos)
   313         info <- rendering.tooltips(VSCode_Rendering.tooltip_elements, Text.Range(offset, offset + 1))
   313         info <- rendering.tooltips(VSCode_Rendering.tooltip_elements, Text.Range(offset, offset + 1))
   314       } yield {
   314       } yield {
   315         val doc = rendering.model.content.doc
   315         val range = rendering.model.content.doc.range(info.range)
   316         val range = doc.range(info.range)
       
   317         val contents =
   316         val contents =
   318           info.info.map(t => Protocol.MarkedString(resources.output_pretty_tooltip(List(t))))
   317           info.info.map(t => Protocol.MarkedString(resources.output_pretty_tooltip(List(t))))
   319         (range, contents)
   318         (range, contents)
   320       }
   319       }
   321     channel.write(Protocol.Hover.reply(id, result))
   320     channel.write(Protocol.Hover.reply(id, result))
   338   def document_highlights(id: Protocol.Id, node_pos: Line.Node_Position)
   337   def document_highlights(id: Protocol.Id, node_pos: Line.Node_Position)
   339   {
   338   {
   340     val result =
   339     val result =
   341       (for ((rendering, offset) <- rendering_offset(node_pos))
   340       (for ((rendering, offset) <- rendering_offset(node_pos))
   342         yield {
   341         yield {
   343           val doc = rendering.model.content.doc
   342           val model = rendering.model
   344           rendering.caret_focus_ranges(Text.Range(offset, offset + 1), doc.text_range)
   343           rendering.caret_focus_ranges(Text.Range(offset, offset + 1), model.content.text_range)
   345             .map(r => Protocol.DocumentHighlight.text(doc.range(r)))
   344             .map(r => Protocol.DocumentHighlight.text(model.content.doc.range(r)))
   346         }) getOrElse Nil
   345         }) getOrElse Nil
   347     channel.write(Protocol.DocumentHighlights.reply(id, result))
   346     channel.write(Protocol.DocumentHighlights.reply(id, result))
   348   }
   347   }
   349 
   348 
   350 
   349