Jeśli piszesz C / C ++ / Java / Emacs Lisp / Python, tryb semantyczny-lepki-func zrobi to, co chcesz.
UWAGA : Wygląda na to, że działa z CEDET firmy Git, a nie w magazynie CEDET obecnie w Emacsie 24.4. Aby uzyskać Emacsa z Gita:
git clone http://git.code.sf.net/p/cedet/git cedet
I najpierw załaduj CEDET ponad wszystko inne w pliku init:
(load-file (concat user-emacs-directory "/cedet/cedet-devel-load.el"))
(add-to-list 'load-path (concat user-emacs-directory "cedet/contrib"))
(load-file (concat user-emacs-directory "cedet/contrib/cedet-contrib-load.el"))
Po włączeniu ten tryb pokazuje, że punkt funkcji znajduje się obecnie w pierwszej linii bieżącego bufora. Jest to przydatne, gdy masz bardzo długą funkcję, która rozciąga się na więcej niż ekran, i nie musisz przewijać w górę, aby odczytać nazwę funkcji, a następnie przewijać w dół do pierwotnej pozycji.
Wyświetla pełny interfejs funkcji (typ zwracany, nazwę i parametry funkcji), a nie tylko nazwę funkcji.
Aby go włączyć, umieść ten kod w pliku init:
(require 'semantic)
(semantic-mode 1)
(global-semantic-stickyfunc-mode 1)
AKTUALIZACJA : Jednym z problemów z prądem semantic-stickyfunc-mode
jest to, że nie wyświetla on wszystkich parametrów, które są rozproszone na wielu liniach. Aby rozwiązać ten problem, stworzyłem pakiet stickyfunc-enhancement .
DEMO :
Oto wersja demonstracyjna w C:
Oto demo w Emacs Lisp:
AKTUALIZACJA : Alternatywnie możesz użyć steru semantycznego lub imenu . Gdy znajdziesz się w funkcji i uruchomisz polecenie, kursor zostanie umieszczony bezpośrednio na funkcji na liście, dzięki czemu zawsze możesz zobaczyć pełny interfejs funkcji. PRÓBNY:
Najpierw używam, helm-semantic-or-imenu
aby przejść do funkcji helm-define-key-with-subkeys
i przenieść tam punkt.
Następnie zaczynam od helm-semantic-or-imenu
nowa i helm-define-key-with-subkeys
jest wstępnie wybrany.
Następnie przesuwam punkt do zmiennej ster-mapa i helm-semantic-or-imenu
ponownie wykonuję dwie funkcje: ster-następne-źródło i ster-poprzednie-źródło. Tym razem zamiast pokazywać bieżący znacznik semantyczny, w którym działam (czyli mapę steru), pokazuje pozostałe dwa znaczniki w buforze sterującym semantycznym. Jest tak, ponieważ podałem argument przedrostka przed uruchomieniem polecenia.
Również to demo jest w Emacs Lisp, działa również dla C / C ++ i jest bardziej elastyczne, jeśli masz naprawdę długi interfejs funkcji.