In welcher Klasse, Methode oder Funktion bin ich?


7

Wenn ich in einer Quelldatei mit inkrementeller Suche navigiere, springe ich oft in einen Kontext, der größer als das Fenster ist. Dies wirft die Frage auf: "In welcher Klasse bin ich?". Oder wenn der vorherige Entwickler dazu neigt, große Methoden zu schreiben: "In welcher Klasse und Methode bin ich?"

Ich beantworte diese Fragen derzeit, indem ich meine Suche unterbreche, um eine neue Regex-Suche in umgekehrter Richtung zu starten, diese Suche dann abzubrechen C gund dann alles zu tun (normalerweise die Suche fortsetzen). Aber das passiert mir so oft, dass ich das Gefühl habe, ich sollte einen einzigen Befehl haben, um nur den Klassen- / Methodenkontext im Minibuffer zu drucken. Oder noch besser, wenn dieser Kontext immer sichtbar war. (Ich würde dafür eine Reihe von Fenstern aufgeben.)

Gibt es ein Emacs-Gadget, das diesen Juckreiz bereits zerkratzt? Oder mache ich das einfach ganz falsch? Wenn es darauf ankommt, arbeite ich zufällig in Python und Java.

Antworten:


9

which-function-mode Zeigt den aktuellen Methodennamen an.

Die folgende Konfiguration, die ich von Emacs Redux erhalten habe , zeigt die aktuelle Überschrift für Methode / Funktion / Organisationsmodus in der oberen Kopfzeile und nicht in der Moduszeile an:

;; Show the current function name in the header line
(which-function-mode)
(setq-default header-line-format
              '((which-func-mode ("" which-func-format " "))))
(setq mode-line-misc-info
            ;; We remove Which Function Mode from the mode line, because it's mostly
            ;; invisible here anyway.
            (assq-delete-all 'which-func-mode mode-line-misc-info))

Überprüfen Sie den verlinkten Artikel für eine vollständige Erklärung von which-function-mode.


Vielen Dank. Ich habe aktiviert which-function-mode, aber ich sehe weder in Python noch in Java etwas. Ich sehe jedoch etwas für C ++. (Vielleicht ist mein Emacs zu alt.)
Davidrmcharles

which-function-modefunktioniert nicht im Jython-Modus. Das Verlassen des Jython-Modus in den Python-Modus ist jedoch nicht so einfach.
Davidrmcharles
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.