privateval print_state = new Query_Operation(server.editor, (), "print_state", _ => (),
output => if (output_active.value && output.proper) {
pretty_panel.value.refresh(output.messages)
})
def locate(): Unit = print_state.locate_query()
def update(): Unit = {
server.editor.current_node_snapshot(()) match { case Some(snapshot) =>
(server.editor.current_command(snapshot), print_state.get_location) match { case (Some(command1), Some(command2)) if command1.id == command2.id => case _ => print_state.apply_query(Nil)
} case None =>
}
}
def auto_update(set: Option[Boolean] = None): Unit = { val enabled =
auto_update_enabled.guarded_access(a =>
set match { case None => Some((a, a)) case Some(b) => Some((b, b))
}) if (enabled) update()
}
/* main */
privateval main =
Session.Consumer[Any](getClass.getName) { case changed: Session.Commands_Changed => if (changed.assignment) auto_update()
case Session.Caret_Focus =>
auto_update()
}
def init(): Unit = {
server.session.commands_changed += main
server.session.caret_focus += main
server.editor.send_wait_dispatcher { print_state.activate() }
server.editor.send_dispatcher { auto_update() }
}
def exit(): Unit = {
output_active.change(_ => false)
server.session.commands_changed -= main
server.session.caret_focus -= main
server.editor.send_wait_dispatcher { print_state.deactivate() }
}
}
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.