equal
deleted
inserted
replaced
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)) |