265 { |
265 { |
266 case (((Some(status), color), Text.Info(_, XML.Elem(markup, _)))) |
266 case (((Some(status), color), Text.Info(_, XML.Elem(markup, _)))) |
267 if (Protocol.command_status_markup(markup.name)) => |
267 if (Protocol.command_status_markup(markup.name)) => |
268 (Some(Protocol.command_status(status, markup)), color) |
268 (Some(Protocol.command_status(status, markup)), color) |
269 case (_, Text.Info(_, XML.Elem(Markup(Isabelle_Markup.BAD, _), _))) => |
269 case (_, Text.Info(_, XML.Elem(Markup(Isabelle_Markup.BAD, _), _))) => |
270 (None, Some(color_value("color_bad"))) |
270 (None, Some(color_value("bad_color"))) |
271 case (_, Text.Info(_, XML.Elem(Markup(Isabelle_Markup.HILITE, _), _))) => |
271 case (_, Text.Info(_, XML.Elem(Markup(Isabelle_Markup.HILITE, _), _))) => |
272 (None, Some(color_value("color_hilite"))) |
272 (None, Some(color_value("hilite_color"))) |
273 }) |
273 }) |
274 color <- |
274 color <- |
275 (result match { |
275 (result match { |
276 case (Some(status), opt_color) => |
276 case (Some(status), opt_color) => |
277 if (status.is_unprocessed) Some(color_value("color_unprocessed1")) |
277 if (status.is_unprocessed) Some(color_value("unprocessed1_color")) |
278 else if (status.is_running) Some(color_value("color_running1")) |
278 else if (status.is_running) Some(color_value("running1_color")) |
279 else opt_color |
279 else opt_color |
280 case (_, opt_color) => opt_color |
280 case (_, opt_color) => opt_color |
281 }) |
281 }) |
282 } yield Text.Info(r, color) |
282 } yield Text.Info(r, color) |
283 } |
283 } |
286 def background2(snapshot: Document.Snapshot, range: Text.Range): Stream[Text.Info[Color]] = |
286 def background2(snapshot: Document.Snapshot, range: Text.Range): Stream[Text.Info[Color]] = |
287 snapshot.select_markup(range, |
287 snapshot.select_markup(range, |
288 Some(Set(Isabelle_Markup.TOKEN_RANGE)), |
288 Some(Set(Isabelle_Markup.TOKEN_RANGE)), |
289 { |
289 { |
290 case Text.Info(_, XML.Elem(Markup(Isabelle_Markup.TOKEN_RANGE, _), _)) => |
290 case Text.Info(_, XML.Elem(Markup(Isabelle_Markup.TOKEN_RANGE, _), _)) => |
291 color_value("color_light") |
291 color_value("light_color") |
292 }) |
292 }) |
293 |
293 |
294 |
294 |
295 def foreground(snapshot: Document.Snapshot, range: Text.Range): Stream[Text.Info[Color]] = |
295 def foreground(snapshot: Document.Snapshot, range: Text.Range): Stream[Text.Info[Color]] = |
296 snapshot.select_markup(range, |
296 snapshot.select_markup(range, |
297 Some(Set(Isabelle_Markup.STRING, Isabelle_Markup.ALTSTRING, Isabelle_Markup.VERBATIM)), |
297 Some(Set(Isabelle_Markup.STRING, Isabelle_Markup.ALTSTRING, Isabelle_Markup.VERBATIM)), |
298 { |
298 { |
299 case Text.Info(_, XML.Elem(Markup(Isabelle_Markup.STRING, _), _)) => |
299 case Text.Info(_, XML.Elem(Markup(Isabelle_Markup.STRING, _), _)) => |
300 color_value("color_quoted") |
300 color_value("quoted_color") |
301 case Text.Info(_, XML.Elem(Markup(Isabelle_Markup.ALTSTRING, _), _)) => |
301 case Text.Info(_, XML.Elem(Markup(Isabelle_Markup.ALTSTRING, _), _)) => |
302 color_value("color_quoted") |
302 color_value("quoted_color") |
303 case Text.Info(_, XML.Elem(Markup(Isabelle_Markup.VERBATIM, _), _)) => |
303 case Text.Info(_, XML.Elem(Markup(Isabelle_Markup.VERBATIM, _), _)) => |
304 color_value("color_quoted") |
304 color_value("quoted_color") |
305 }) |
305 }) |
306 |
306 |
307 |
307 |
308 def text_color(snapshot: Document.Snapshot, range: Text.Range, color: Color) |
308 def text_color(snapshot: Document.Snapshot, range: Text.Range, color: Color) |
309 : Stream[Text.Info[Color]] = |
309 : Stream[Text.Info[Color]] = |
310 { |
310 { |
311 val text_colors: Map[String, Color] = Map( |
311 val text_colors: Map[String, Color] = Map( |
312 Isabelle_Markup.STRING -> Color.BLACK, |
312 Isabelle_Markup.STRING -> Color.BLACK, |
313 Isabelle_Markup.ALTSTRING -> Color.BLACK, |
313 Isabelle_Markup.ALTSTRING -> Color.BLACK, |
314 Isabelle_Markup.VERBATIM -> Color.BLACK, |
314 Isabelle_Markup.VERBATIM -> Color.BLACK, |
315 Isabelle_Markup.LITERAL -> color_value("color_keyword1"), |
315 Isabelle_Markup.LITERAL -> color_value("keyword1_color"), |
316 Isabelle_Markup.DELIMITER -> Color.BLACK, |
316 Isabelle_Markup.DELIMITER -> Color.BLACK, |
317 Isabelle_Markup.TFREE -> color_value("color_variable_type"), |
317 Isabelle_Markup.TFREE -> color_value("tfree_color"), |
318 Isabelle_Markup.TVAR -> color_value("color_variable_type"), |
318 Isabelle_Markup.TVAR -> color_value("tvar_color"), |
319 Isabelle_Markup.FREE -> color_value("color_variable_free"), |
319 Isabelle_Markup.FREE -> color_value("free_color"), |
320 Isabelle_Markup.SKOLEM -> color_value("color_variable_skolem"), |
320 Isabelle_Markup.SKOLEM -> color_value("skolem_color"), |
321 Isabelle_Markup.BOUND -> color_value("color_variable_bound"), |
321 Isabelle_Markup.BOUND -> color_value("bound_color"), |
322 Isabelle_Markup.VAR -> color_value("color_variable_schematic"), |
322 Isabelle_Markup.VAR -> color_value("var_color"), |
323 Isabelle_Markup.INNER_STRING -> color_value("color_inner_quoted"), |
323 Isabelle_Markup.INNER_STRING -> color_value("inner_quoted_color"), |
324 Isabelle_Markup.INNER_COMMENT -> color_value("color_inner_comment"), |
324 Isabelle_Markup.INNER_COMMENT -> color_value("inner_comment_color"), |
325 Isabelle_Markup.DYNAMIC_FACT -> color_value("color_dynamic"), |
325 Isabelle_Markup.DYNAMIC_FACT -> color_value("dynamic_color"), |
326 Isabelle_Markup.ML_KEYWORD -> color_value("color_keyword1"), |
326 Isabelle_Markup.ML_KEYWORD -> color_value("keyword1_color"), |
327 Isabelle_Markup.ML_DELIMITER -> Color.BLACK, |
327 Isabelle_Markup.ML_DELIMITER -> Color.BLACK, |
328 Isabelle_Markup.ML_NUMERAL -> color_value("color_inner_numeral"), |
328 Isabelle_Markup.ML_NUMERAL -> color_value("inner_numeral_color"), |
329 Isabelle_Markup.ML_CHAR -> color_value("color_inner_quoted"), |
329 Isabelle_Markup.ML_CHAR -> color_value("inner_quoted_color"), |
330 Isabelle_Markup.ML_STRING -> color_value("color_inner_quoted"), |
330 Isabelle_Markup.ML_STRING -> color_value("inner_quoted_color"), |
331 Isabelle_Markup.ML_COMMENT -> color_value("color_inner_comment"), |
331 Isabelle_Markup.ML_COMMENT -> color_value("inner_comment_color"), |
332 Isabelle_Markup.ANTIQ -> color_value("color_antiquotation")) |
332 Isabelle_Markup.ANTIQ -> color_value("antiquotation_color")) |
333 |
333 |
334 val text_color_elements = Set.empty[String] ++ text_colors.keys |
334 val text_color_elements = Set.empty[String] ++ text_colors.keys |
335 |
335 |
336 snapshot.cumulate_markup(range, color, Some(text_color_elements), |
336 snapshot.cumulate_markup(range, color, Some(text_color_elements), |
337 { |
337 { |