[[command_trigger_trigger]]
[command]*`trigger`* verwaltet Trigger, das Schweizer Armeemesser für WeeChat::

----
/trigger  list|listfull|listdefault
          add|addoff|addreplace <name> <hook> ["<arguments>" ["<conditions>" ["<regex>" ["<command>" ["<return_code>"]]]]]
          addinput [<hook>]
          input|output|recreate <name>
          set <name> <option> <value>
          rename|copy <name> <new_name>
          enable|disable|toggle [<name>|-all [<name>...]]
          restart <name>|-all [<name>...]
          show <name>
          del <name>|-all [<name>...]
          default -yes
          monitor [<filter>]

       list: zeigt eine Liste aller Trigger (ohne Angabe von Argumente wird diese Liste standardmäßig ausgegeben)
   listfull: zeigt eine detaillierte Liste, mit zusätzlichen Informationen, aller Trigger an
listdefault: zeigt die standardmäßig genutzen Trigger an
        add: fügt einen Trigger hinzu
     addoff: fügt einen Trigger hinzu (deaktiviert)
 addreplace: fügt oder ersetzt einen schon existierenden Trigger
       name: Name des Trigger
       hook: signal, hsignal, modifier, print, command, command_run, timer, config, focus
  arguments: Argumente für den Hook, abhängig vom genutzten Hook (getrennt durch Semikolon):
             signal: Name(en) des signals (erforderlich)
             hsignal: Name(en) des hsignal (erforderlich)
             modifier: Name(en) des modifier (erforderlich)
             print: buffer, tags, message, strip colors
             command: Befehl (erforderlich), Beschreibung, Argumente, Beschreibung der Argumente, Vervollständigung
             command_run: Befehl(e) (erforderlich)
             timer: Intervall (erforderlich), Anpassung an Sekunden (erforderlich), maximale Anzahl an Aufrufen
             config: Name der Option (erforderlich)
             focus: Name(n) für sichtbaren Bereich (erforderlich) (z.B. "chat" für Chatbereich)
 conditions: evaluierte Bedingungen für den Trigger
      regex: einer oder mehrere reguläre Ausdrücke um Zeichenketten in Variablen zu ersetzen
    command: Befehl welcher ausgeführt werden soll (mehrere Befehle müssen durch ";" voneinander getrennt werden
return_code: Rückgabewert für Callback (ok (standard), ok_eat, error)
   addinput: erstellt einen Trigger mit einer standardmäßigen Mustervorlage
      input: kopiert den kompletten Trigger-Befehl in die Eingabezeile
     output: schickt den Trigger-Befehl als Text in den Buffer
   recreate: wie "input", allerdings wird die Option "addreplace" anstelle von "add" genutzt
        set: definiert, innerhalb eines Triggers, eine Option neu
     option: Name einer Option: name, hook, arguments, conditions, regex, command, return_code
             (um Hilfe über eine Option zu erhalten: /help trigger.trigger.<name>.<option>)
      value: neuer Wert für Option
     rename: benennt einen Trigger um
       copy: kopiert einen Trigger
     enable: aktiviert Trigger (ohne Angabe von Argumenten: aktiviert alle Trigger)
    disable: deaktiviert Trigger (ohne Angabe von Argumenten: deaktiviert alle Trigger)
     toggle: de-/aktiviert Trigger (ohne Angabe von Argumenten: de-/aktiviert alle Trigger)
    restart: startet Trigger neu (Hook(s) werden neu erstellt)
       show: zeigt detaillierte Informationen zu einem Trigger (inklusive einer kleinen Statistik)
        del: entfernt einen Trigger
       -all: führt eine Aktion aus, die alle Trigger beinhaltet
    default: stellt die standardmäßigen Trigger wieder her
    monitor: öffnet den Trigger Monitor-Buffer, mit optionaler Filterfunktion:
     Filter: zeigt Hooks/Trigger an (ein Hook muss mit "@" beginnen, zum Beispiel "@signal"), mehrere Filter können durch Kommata voneinander getrennt werden; Platzhalter "*" kann im Namen des Trigger verwendet werden

Wenn ein Trigger-Callback aufgerufen wird, dann wird folgende Befehlskette ausgeführt:
  1. Überprüfung von Bedingungen; falls unwahr, beenden
  2. ersetze Text mittels erweitertem regulärer POSIX Ausdruck (sofern im Trigger definiert)
  3. ein oder mehrere Befehle werden ausgeführt (sofern im Trigger definiert)
  4. Beendigung mit einem Rückgabewert (ausgenommen sind modifiers und focus)

Beispiele (die standardmäßig, eingebauten Trigger kann man sich mit "/trigger listdefault" anzeigen lassen):
  fügt einer Nachricht die Textattribute *fett*, _unterstrichen_ und /kursiv/ hinzu:
    /trigger add effects modifier weechat_print "${tg_tag_nick}" "==\*(\S+)\*==*${color:bold}$1${color:-bold}*== ==_(\S+)_==_${color:underline}$1${color:-underline}_== ==/(\S+)/==/${color:italic}$1${color:-italic}/"
  verbirgt die Nicklist auf kleineren Terminals:
    /trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
    /trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
  speichert die Konfiguration jede Stunde ab:
    /trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
  öffnet den Trigger Monitor und zeigt ausschließlich modifier und Trigger an, die mit "resize" im Namen beginnen:
    /trigger monitor @modifier,resize*
----

