src/Tools/jEdit/src/jedit/isabelle_sidekick.scala
changeset 40477 780c27276593
parent 40475 8a57ff2c2600
child 40792 1d71a45590e4
equal deleted inserted replaced
40476:515eab39b6c2 40477:780c27276593
    22 import sidekick.{SideKickParser, SideKickParsedData, SideKickCompletion, IAsset}
    22 import sidekick.{SideKickParser, SideKickParsedData, SideKickCompletion, IAsset}
    23 
    23 
    24 
    24 
    25 object Isabelle_Sidekick
    25 object Isabelle_Sidekick
    26 {
    26 {
    27   def int_to_pos(offset: Int): Position =
    27   def int_to_pos(offset: Text.Offset): Position =
    28     new Position { def getOffset = offset; override def toString = offset.toString }
    28     new Position { def getOffset = offset; override def toString = offset.toString }
    29 
    29 
    30   class Asset(name: String, start: Int, end: Int) extends IAsset
    30   class Asset(name: String, start: Text.Offset, end: Text.Offset) extends IAsset
    31   {
    31   {
    32     protected var _name = name
    32     protected var _name = name
    33     protected var _start = int_to_pos(start)
    33     protected var _start = int_to_pos(start)
    34     protected var _end = int_to_pos(end)
    34     protected var _end = int_to_pos(end)
    35     override def getIcon: Icon = null
    35     override def getIcon: Icon = null
    77   /* completion */
    77   /* completion */
    78 
    78 
    79   override def supportsCompletion = true
    79   override def supportsCompletion = true
    80   override def canCompleteAnywhere = true
    80   override def canCompleteAnywhere = true
    81 
    81 
    82   override def complete(pane: EditPane, caret: Int): SideKickCompletion =
    82   override def complete(pane: EditPane, caret: Text.Offset): SideKickCompletion =
    83   {
    83   {
    84     val buffer = pane.getBuffer
    84     val buffer = pane.getBuffer
    85     Isabelle.swing_buffer_lock(buffer) {
    85     Isabelle.swing_buffer_lock(buffer) {
    86       Document_Model(buffer) match {
    86       Document_Model(buffer) match {
    87         case None => null
    87         case None => null
   114 
   114 
   115   def parser(data: SideKickParsedData, model: Document_Model)
   115   def parser(data: SideKickParsedData, model: Document_Model)
   116   {
   116   {
   117     val syntax = model.session.current_syntax()
   117     val syntax = model.session.current_syntax()
   118 
   118 
   119     def make_tree(offset: Int, entry: Structure.Entry): List[DefaultMutableTreeNode] =
   119     def make_tree(offset: Text.Offset, entry: Structure.Entry): List[DefaultMutableTreeNode] =
   120       entry match {
   120       entry match {
   121         case Structure.Block(name, body) =>
   121         case Structure.Block(name, body) =>
   122           val node =
   122           val node =
   123             new DefaultMutableTreeNode(
   123             new DefaultMutableTreeNode(
   124               new Isabelle_Sidekick.Asset(Library.first_line(name), offset, offset + entry.length))
   124               new Isabelle_Sidekick.Asset(Library.first_line(name), offset, offset + entry.length))