160 class JEdit_Rendering(snapshot: Document.Snapshot, options: Options) |
160 class JEdit_Rendering(snapshot: Document.Snapshot, options: Options) |
161 extends Rendering(snapshot, options, PIDE.resources) |
161 extends Rendering(snapshot, options, PIDE.resources) |
162 { |
162 { |
163 /* colors */ |
163 /* colors */ |
164 |
164 |
165 def color(s: String): Color = Color_Value(options.string(s)) |
165 def color(s: String): Color = |
|
166 if (s == "text_color") text_color |
|
167 else Color_Value(options.string(s)) |
|
168 |
|
169 def color(c: Rendering.Color.Value): Color = _rendering_colors(c) |
166 |
170 |
167 lazy val _rendering_colors: Map[Rendering.Color.Value, Color] = |
171 lazy val _rendering_colors: Map[Rendering.Color.Value, Color] = |
168 Rendering.Color.values.iterator.map(c => c -> color(c.toString + "_color")).toMap |
172 Rendering.Color.values.iterator.map(c => c -> color(c.toString + "_color")).toMap |
169 |
173 |
170 def color(c: Rendering.Color.Value): Color = _rendering_colors(c) |
174 val text_color = jEdit.getColorProperty("view.fgColor") |
171 |
|
172 val outdated_color = color("outdated_color") |
175 val outdated_color = color("outdated_color") |
173 val unprocessed_color = color("unprocessed_color") |
176 val unprocessed_color = color("unprocessed_color") |
174 val running_color = color("running_color") |
177 val running_color = color("running_color") |
175 val bullet_color = color("bullet_color") |
178 val bullet_color = color("bullet_color") |
176 val tooltip_color = color("tooltip_color") |
179 val tooltip_color = color("tooltip_color") |
179 val spell_checker_color = color("spell_checker_color") |
182 val spell_checker_color = color("spell_checker_color") |
180 val entity_ref_color = color("entity_ref_color") |
183 val entity_ref_color = color("entity_ref_color") |
181 val breakpoint_disabled_color = color("breakpoint_disabled_color") |
184 val breakpoint_disabled_color = color("breakpoint_disabled_color") |
182 val breakpoint_enabled_color = color("breakpoint_enabled_color") |
185 val breakpoint_enabled_color = color("breakpoint_enabled_color") |
183 val caret_debugger_color = color("caret_debugger_color") |
186 val caret_debugger_color = color("caret_debugger_color") |
184 val antiquote_color = color("antiquote_color") |
|
185 val highlight_color = color("highlight_color") |
187 val highlight_color = color("highlight_color") |
186 val hyperlink_color = color("hyperlink_color") |
188 val hyperlink_color = color("hyperlink_color") |
187 val active_hover_color = color("active_hover_color") |
189 val active_hover_color = color("active_hover_color") |
188 val keyword1_color = color("keyword1_color") |
|
189 val keyword2_color = color("keyword2_color") |
|
190 val keyword3_color = color("keyword3_color") |
|
191 val quasi_keyword_color = color("quasi_keyword_color") |
|
192 val improper_color = color("improper_color") |
|
193 val operator_color = color("operator_color") |
|
194 val caret_invisible_color = color("caret_invisible_color") |
190 val caret_invisible_color = color("caret_invisible_color") |
195 val completion_color = color("completion_color") |
191 val completion_color = color("completion_color") |
196 val search_color = color("search_color") |
192 val search_color = color("search_color") |
197 |
|
198 val tfree_color = color("tfree_color") |
|
199 val tvar_color = color("tvar_color") |
|
200 val free_color = color("free_color") |
|
201 val skolem_color = color("skolem_color") |
|
202 val bound_color = color("bound_color") |
|
203 val var_color = color("var_color") |
|
204 val inner_numeral_color = color("inner_numeral_color") |
|
205 val inner_quoted_color = color("inner_quoted_color") |
|
206 val inner_cartouche_color = color("inner_cartouche_color") |
|
207 val inner_comment_color = color("inner_comment_color") |
|
208 val dynamic_color = color("dynamic_color") |
|
209 val class_parameter_color = color("class_parameter_color") |
|
210 |
193 |
211 |
194 |
212 /* indentation */ |
195 /* indentation */ |
213 |
196 |
214 def indentation(range: Text.Range): Int = |
197 def indentation(range: Text.Range): Int = |
461 } |
444 } |
462 |
445 |
463 |
446 |
464 /* text color */ |
447 /* text color */ |
465 |
448 |
466 val foreground_color = jEdit.getColorProperty("view.fgColor") |
449 def text_color(range: Text.Range, current_color: Color): List[Text.Info[Color]] = |
467 |
450 { |
468 private lazy val text_colors: Map[String, Color] = Map( |
451 if (current_color == Token_Markup.hidden_color) List(Text.Info(range, current_color)) |
469 Markup.KEYWORD1 -> keyword1_color, |
|
470 Markup.KEYWORD2 -> keyword2_color, |
|
471 Markup.KEYWORD3 -> keyword3_color, |
|
472 Markup.QUASI_KEYWORD -> quasi_keyword_color, |
|
473 Markup.IMPROPER -> improper_color, |
|
474 Markup.OPERATOR -> operator_color, |
|
475 Markup.STRING -> foreground_color, |
|
476 Markup.ALT_STRING -> foreground_color, |
|
477 Markup.VERBATIM -> foreground_color, |
|
478 Markup.CARTOUCHE -> foreground_color, |
|
479 Markup.LITERAL -> keyword1_color, |
|
480 Markup.DELIMITER -> foreground_color, |
|
481 Markup.TFREE -> tfree_color, |
|
482 Markup.TVAR -> tvar_color, |
|
483 Markup.FREE -> free_color, |
|
484 Markup.SKOLEM -> skolem_color, |
|
485 Markup.BOUND -> bound_color, |
|
486 Markup.VAR -> var_color, |
|
487 Markup.INNER_STRING -> inner_quoted_color, |
|
488 Markup.INNER_CARTOUCHE -> inner_cartouche_color, |
|
489 Markup.INNER_COMMENT -> inner_comment_color, |
|
490 Markup.DYNAMIC_FACT -> dynamic_color, |
|
491 Markup.CLASS_PARAMETER -> class_parameter_color, |
|
492 Markup.ANTIQUOTE -> antiquote_color, |
|
493 Markup.ML_KEYWORD1 -> keyword1_color, |
|
494 Markup.ML_KEYWORD2 -> keyword2_color, |
|
495 Markup.ML_KEYWORD3 -> keyword3_color, |
|
496 Markup.ML_DELIMITER -> foreground_color, |
|
497 Markup.ML_NUMERAL -> inner_numeral_color, |
|
498 Markup.ML_CHAR -> inner_quoted_color, |
|
499 Markup.ML_STRING -> inner_quoted_color, |
|
500 Markup.ML_COMMENT -> inner_comment_color, |
|
501 Markup.SML_STRING -> inner_quoted_color, |
|
502 Markup.SML_COMMENT -> inner_comment_color) |
|
503 |
|
504 private lazy val text_color_elements = |
|
505 Markup.Elements(text_colors.keySet) |
|
506 |
|
507 def text_color(range: Text.Range, color: Color): List[Text.Info[Color]] = |
|
508 { |
|
509 if (color == Token_Markup.hidden_color) List(Text.Info(range, color)) |
|
510 else |
452 else |
511 snapshot.cumulate(range, color, text_color_elements, _ => |
453 snapshot.cumulate(range, current_color, Rendering.text_color_elements, _ => |
512 { |
454 { |
513 case (_, Text.Info(_, elem)) => text_colors.get(elem.name) |
455 case (_, Text.Info(_, elem)) => Rendering.text_color.get(elem.name).map(color(_)) |
514 }) |
456 }) |
515 } |
457 } |
516 |
458 |
517 |
459 |
518 /* virtual bullets */ |
460 /* virtual bullets */ |