Jika Anda menulis C / C ++ / Java / Emacs Lisp / Python, maka semantic-sticky-func-mode akan melakukan apa yang Anda inginkan.
CATATAN : Ini tampaknya bekerja dengan CEDET dari Git, bukan stok CEDET saat ini di Emacs 24.4. Untuk mendapatkan Emacs dari Git:
git clone http://git.code.sf.net/p/cedet/git cedet
Dan muat CEDET terlebih dahulu di atas segalanya di file init Anda:
(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"))
Saat diaktifkan, mode ini menunjukkan titik fungsi saat ini berada di baris pertama dari buffer saat ini. Ini berguna ketika Anda memiliki fungsi yang sangat panjang yang menyebar lebih dari satu layar, dan Anda tidak perlu menggulir ke atas untuk membaca nama fungsi dan kemudian gulir ke bawah ke posisi semula.
Ini menampilkan antarmuka fungsi penuh (tipe pengembalian, nama fungsi dan parameter), bukan hanya nama fungsi.
Untuk mengaktifkannya, masukkan kode ini ke file init Anda:
(require 'semantic)
(semantic-mode 1)
(global-semantic-stickyfunc-mode 1)
UPDATE : Salah satu masalah dengan saat ini semantic-stickyfunc-mode
adalah tidak menampilkan semua parameter yang tersebar di beberapa baris. Untuk mengatasi masalah ini, saya membuat paket stickyfunc-enh .
DEMO :
Berikut ini adalah demo di C:
Berikut ini adalah demo di Emacs Lisp:
UPDATE : Atau, Anda dapat menggunakan helm-semantic-atau-imenu . Ketika Anda berada di dalam suatu fungsi dan menjalankan perintah, kursor ditempatkan tepat di fungsi dalam daftar, sehingga Anda selalu dapat melihat antarmuka fungsi penuh. DEMO:
Pertama, saya gunakan helm-semantic-or-imenu
untuk pindah ke fungsi helm-define-key-with-subkeys
dan memindahkan titik di sana.
Kemudian, saya mulai helm-semantic-or-imenu
lagi dan helm-define-key-with-subkeys
sudah dipilih sebelumnya.
Kemudian, saya memindahkan titik ke variabel helm-map dan mengeksekusi helm-semantic-or-imenu
lagi pada dua fungsi: helm-next-source dan helm-source-sebelumnya. Kali ini, alih-alih menunjukkan tag semantik saat ini yang sedang saya operasikan (yang merupakan helm-peta), ini menunjukkan dua tag lainnya di buffer Semantic Helm. Ini karena saya memberikan argumen awalan sebelum menjalankan perintah.
Juga demo ini ada di Emacs Lisp, ini bekerja untuk C / C ++ juga dan itu lebih fleksibel jika Anda memiliki antarmuka fungsi yang sangat panjang.