more complete report positions, notably for command 'back' (amending eca176f773e0);
authorwenzelm
Wed, 25 Nov 2020 16:14:16 +0100
changeset 72709 cb9d5af781b4
parent 72708 0cc96d337e8f
child 72710 6bc199a70bf9
more complete report positions, notably for command 'back' (amending eca176f773e0);
src/Pure/PIDE/command.scala
src/Pure/System/isabelle_process.ML
--- a/src/Pure/PIDE/command.scala	Wed Nov 25 15:24:55 2020 +0100
+++ b/src/Pure/PIDE/command.scala	Wed Nov 25 16:14:16 2020 +0100
@@ -345,13 +345,14 @@
               })
           }
 
-        case XML.Elem(Markup(Markup.REPORT, _), msgs) =>
+        case XML.Elem(Markup(Markup.REPORT, atts0), msgs) =>
           (this /: msgs)((state, msg) =>
             {
               def bad(): Unit = Output.warning("Ignored report message: " + msg)
 
               msg match {
-                case XML.Elem(Markup(name, atts), args) =>
+                case XML.Elem(Markup(name, atts1), args) =>
+                  val atts = atts1 ::: atts0
                   command.reported_position(atts) match {
                     case Some((id, chunk_name)) =>
                       val target =
--- a/src/Pure/System/isabelle_process.ML	Wed Nov 25 15:24:55 2020 +0100
+++ b/src/Pure/System/isabelle_process.ML	Wed Nov 25 16:14:16 2020 +0100
@@ -148,11 +148,10 @@
       if forall (fn s => s = "") ss then ()
       else
         let
-          val props' =
-            (case (Properties.defined props Markup.idN, Position.get_id (Position.thread_data ())) of
-              (false, SOME id') => props @ [(Markup.idN, id')]
-            | _ => props);
-        in message name props' (XML.blob ss) end;
+          val pos_props =
+            if exists Markup.position_property props then props
+            else props @ Position.properties_of (Position.thread_data ());
+        in message name pos_props (XML.blob ss) end;
 
     fun report_message ss =
       if Context_Position.pide_reports ()