equal
deleted
inserted
replaced
72 PIDE.document_view(text_area) match { |
72 PIDE.document_view(text_area) match { |
73 case Some(doc_view) if doc_view.model.is_theory => |
73 case Some(doc_view) if doc_view.model.is_theory => |
74 val node = snapshot.version.nodes(doc_view.model.node_name) |
74 val node = snapshot.version.nodes(doc_view.model.node_name) |
75 val caret = snapshot.revert(text_area.getCaretPosition) |
75 val caret = snapshot.revert(text_area.getCaretPosition) |
76 if (caret < buffer.getLength) { |
76 if (caret < buffer.getLength) { |
77 val caret_commands = node.command_range(caret) |
77 val caret_command_iterator = node.command_iterator(caret) |
78 if (caret_commands.hasNext) { |
78 if (caret_command_iterator.hasNext) { |
79 val (cmd0, _) = caret_commands.next |
79 val (cmd0, _) = caret_command_iterator.next |
80 node.commands.reverse.iterator(cmd0).find(cmd => !cmd.is_ignored) |
80 node.commands.reverse.iterator(cmd0).find(cmd => !cmd.is_ignored) |
81 } |
81 } |
82 else None |
82 else None |
83 } |
83 } |
84 else node.commands.reverse.iterator.find(cmd => !cmd.is_ignored) |
84 else node.commands.reverse.iterator.find(cmd => !cmd.is_ignored) |
152 else { |
152 else { |
153 snapshot.state.find_command(snapshot.version, command.id) match { |
153 snapshot.state.find_command(snapshot.version, command.id) match { |
154 case None => None |
154 case None => None |
155 case Some((node, _)) => |
155 case Some((node, _)) => |
156 val file_name = command.node_name.node |
156 val file_name = command.node_name.node |
157 val sources = |
157 val sources_iterator = |
158 node.commands.iterator.takeWhile(_ != command).map(_.source) ++ |
158 node.commands.iterator.takeWhile(_ != command).map(_.source) ++ |
159 (if (offset == 0) Iterator.empty |
159 (if (offset == 0) Iterator.empty |
160 else Iterator.single(command.source(Text.Range(0, command.decode(offset))))) |
160 else Iterator.single(command.source(Text.Range(0, command.decode(offset))))) |
161 val (line, column) = ((1, 1) /: sources)(Symbol.advance_line_column) |
161 val (line, column) = ((1, 1) /: sources_iterator)(Symbol.advance_line_column) |
162 Some(new Hyperlink { def follow(view: View) { goto_file(view, file_name, line, column) } }) |
162 Some(new Hyperlink { def follow(view: View) { goto_file(view, file_name, line, column) } }) |
163 } |
163 } |
164 } |
164 } |
165 } |
165 } |
166 |
166 |