equal
deleted
inserted
replaced
139 } |
139 } |
140 |
140 |
141 |
141 |
142 /* specific messages */ |
142 /* specific messages */ |
143 |
143 |
144 def is_tracing(msg: XML.Tree): Boolean = |
144 def is_tracing(msg: XML.Tree): Boolean = |
145 msg match { |
145 msg match { |
146 case XML.Elem(Markup(Isabelle_Markup.TRACING, _), _) => true |
146 case XML.Elem(Markup(Isabelle_Markup.TRACING, _), _) => true |
147 case XML.Elem(Markup(Isabelle_Markup.TRACING_MESSAGE, _), _) => true |
147 case XML.Elem(Markup(Isabelle_Markup.TRACING_MESSAGE, _), _) => true |
148 case _ => false |
148 case _ => false |
149 } |
149 } |
184 : Set[Text.Range] = |
184 : Set[Text.Range] = |
185 { |
185 { |
186 val range = command.decode(raw_range).restrict(command.range) |
186 val range = command.decode(raw_range).restrict(command.range) |
187 body.foldLeft(if (range.is_singularity) set else set + range)(positions) |
187 body.foldLeft(if (range.is_singularity) set else set + range)(positions) |
188 } |
188 } |
|
189 |
189 def positions(set: Set[Text.Range], tree: XML.Tree): Set[Text.Range] = |
190 def positions(set: Set[Text.Range], tree: XML.Tree): Set[Text.Range] = |
190 tree match { |
191 tree match { |
191 case XML.Wrapped_Elem(Markup(name, Position.Id_Range(id, range)), _, body) |
192 case XML.Wrapped_Elem(Markup(name, Position.Id_Range(id, range)), _, body) |
192 if include_pos(name) && id == command.id => elem_positions(range, set, body) |
193 if include_pos(name) && id == command.id => elem_positions(range, set, body) |
193 |
194 |
198 |
199 |
199 case XML.Elem(_, body) => body.foldLeft(set)(positions) |
200 case XML.Elem(_, body) => body.foldLeft(set)(positions) |
200 |
201 |
201 case _ => set |
202 case _ => set |
202 } |
203 } |
|
204 |
203 val set = positions(Set.empty, message) |
205 val set = positions(Set.empty, message) |
204 if (set.isEmpty && !is_state(message)) |
206 if (set.isEmpty && !is_state(message)) |
205 set ++ Position.Range.unapply(message.markup.properties).map(command.decode(_)) |
207 set ++ Position.Range.unapply(message.markup.properties).map(command.decode(_)) |
206 else set |
208 else set |
207 } |
209 } |