equal
deleted
inserted
replaced
41 override def getStart: Position = _start |
41 override def getStart: Position = _start |
42 override def setStart(start: Position) = _start = start |
42 override def setStart(start: Position) = _start = start |
43 override def getEnd: Position = _end |
43 override def getEnd: Position = _end |
44 override def setEnd(end: Position) = _end = end |
44 override def setEnd(end: Position) = _end = end |
45 override def toString = _name |
45 override def toString = _name |
|
46 } |
|
47 |
|
48 def swing_markup_tree(tree: Markup_Tree, parent: DefaultMutableTreeNode, |
|
49 swing_node: Text.Info[List[XML.Elem]] => DefaultMutableTreeNode) |
|
50 { |
|
51 for ((_, entry) <- tree.branches) { |
|
52 val node = swing_node(Text.Info(entry.range, entry.markup)) |
|
53 swing_markup_tree(entry.subtree, node, swing_node) |
|
54 parent.add(node) |
|
55 } |
46 } |
56 } |
47 } |
57 } |
48 |
58 |
49 |
59 |
50 class Isabelle_Sidekick(name: String, get_syntax: => Option[Outer_Syntax]) |
60 class Isabelle_Sidekick(name: String, get_syntax: => Option[Outer_Syntax]) |
193 { |
203 { |
194 Swing_Thread.now { Document_Model(buffer).map(_.snapshot) } match { |
204 Swing_Thread.now { Document_Model(buffer).map(_.snapshot) } match { |
195 case Some(snapshot) => |
205 case Some(snapshot) => |
196 val root = data.root |
206 val root = data.root |
197 for ((command, command_start) <- snapshot.node.command_range() if !stopped) { |
207 for ((command, command_start) <- snapshot.node.command_range() if !stopped) { |
198 snapshot.state.command_state(snapshot.version, command).markup |
208 Isabelle_Sidekick.swing_markup_tree( |
199 .swing_tree(root, (info: Text.Info[List[XML.Elem]]) => |
209 snapshot.state.command_state(snapshot.version, command).markup, root, |
|
210 (info: Text.Info[List[XML.Elem]]) => |
200 { |
211 { |
201 val range = info.range + command_start |
212 val range = info.range + command_start |
202 val content = command.source(info.range).replace('\n', ' ') |
213 val content = command.source(info.range).replace('\n', ' ') |
203 val info_text = |
214 val info_text = |
204 Pretty.formatted(Library.separate(Pretty.FBreak, info.info), margin = 40.0) |
215 Pretty.formatted(Library.separate(Pretty.FBreak, info.info), margin = 40.0) |