Magit benutzerdefinierte Befehle

10

Magit zeigt den Verlauf mehrstufiger Befehle mit Popup-Fenstern an. Wenn Sie beispielsweise drücken c, wird das Festschreibungsmenü aufgerufen, von dem aus das Drücken aufgerufen awird magit-commit-amend.

Ich möchte meinen eigenen Befehl magit-commit-snapshoteinfügen und ihn mit aufrufen cn.
n: Snapshotsollte danach im Commit-Menü angezeigt werden s: Squash.

Wie kann ich das machen? Ich kann sehen, dass die Bindungen in vorhanden sind magit-key-mode.el, aber ich sehe keine einfache Möglichkeit, sie von meinem zu ergänzen .emacs.

Matthew Piziak
quelle

Antworten:

15

Beginnen v2.1.0Sie damit wie folgt:

(magit-define-popup-action 'magit-commit-popup
  ?n "Snapshot" 'magit-commit-snapshot)

Die nächste Version von Magit wird das Magit-Popup durch Transient ersetzen . (Zum Zeitpunkt des Schreibens ist die aktuelle Magit-Version v2.90.1.) Mit transient können Sie einen benutzerdefinierten Befehl hinzufügen mit transient-append-suffix:

(transient-append-suffix 'magit-commit "c"
  '("n" "Snapshot" magit-commit-snapshot))

Weitere Informationen finden Sie im Abschnitt zum Ändern vorhandener Transienten im Handbuch.

Kyle Meyer
quelle
1
@tarsius, ich weiß es zu schätzen, wie Sie Ihre Antwort auf dem neuesten Stand halten, wenn sich Magit ändert.
Matthew Piziak
@tarsius Ich denke das funktioniert nicht mehr mit transient.el? Gibt es eine aktuellere Antwort?
Trey