src/Pure/PIDE/sendback.ML
author wenzelm
Thu, 22 Nov 2012 13:21:02 +0100
changeset 50163 c62ce309dc26
child 50164 77668b522ffe
permissions -rw-r--r--
more abstract Sendback operations, with explicit id/exec_id properties; purge result messages (again), cf. db58490a68ac, 7b61a539721e;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50163
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/PIDE/sendback.ML
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     2
    Author:     Makarius
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     3
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     4
Clickable "sendback" areas within the source text (see also
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     5
Tools/jEdit/src/sendback.scala).
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     6
*)
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     7
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     8
signature SENDBACK =
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
     9
sig
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    10
  val make_markup: unit -> Markup.T
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    11
  val markup: string -> string
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    12
end;
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    13
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    14
structure Sendback: SENDBACK =
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    15
struct
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    16
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    17
fun make_markup () =
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    18
  let
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    19
    val props =
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    20
      (case Position.get_id (Position.thread_data ()) of
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    21
        SOME id => [(Isabelle_Markup.idN, id)]
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    22
      | NONE => []);
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    23
  in Markup.properties props Isabelle_Markup.sendback end;
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    24
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    25
fun markup s = Markup.markup (make_markup ()) s;
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    26
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    27
end;
c62ce309dc26 more abstract Sendback operations, with explicit id/exec_id properties;
wenzelm
parents:
diff changeset
    28