¿En qué clase, método o función estoy?

7

Cuando navego por un archivo fuente con búsqueda incremental, a menudo me encuentro saltando a un contexto que es más alto que la ventana. Esto plantea la pregunta: "¿En qué clase estoy?". O, si el desarrollador anterior es propenso a escribir métodos altos: "¿En qué clase y método estoy?"

Actualmente respondo estas preguntas interrumpiendo mi búsqueda para comenzar una nueva búsqueda de expresiones regulares en la dirección inversa, luego cancelo esta búsqueda C gy luego hago lo que sea (generalmente reanudar la búsqueda). Pero, esto me sucede a menudo, siento que debería tener un solo comando para imprimir el contexto de clase / método en el minibúfer. O, mejor aún, si ese contexto siempre fue visible. (Renunciaría a una línea de ventana por eso).

¿Hay algún dispositivo Emacs que ya rasca esta picazón? ¿O simplemente estoy haciendo esto de una manera completamente incorrecta? Si es importante, estoy trabajando en Python y Java.

davidrmcharles
fuente

Respuestas:

9

which-function-mode Muestra el nombre del método actual.

La siguiente configuración, que obtuve de Emacs Redux , muestra el encabezado método / función / orgmode actual en la línea de encabezado superior en lugar de la línea de modo:

;; 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))

Verifique el artículo vinculado para obtener una explicación completa de which-function-mode.

Juancho
fuente
Gracias. Lo habilité which-function-mode, pero no veo nada en Python o Java. Sin embargo, veo algo para C ++. (Quizás mi Emacs es demasiado viejo.)
davidrmcharles
which-function-modeno funciona en modo Jython. Pero, salir del modo Jython y entrar en el modo Python no es tan sencillo.
davidrmcharles