Nếu bạn đang viết C / C ++ / Java / Emacs Lisp / Python, thì semantic-stick-func-mode sẽ làm những gì bạn muốn.
LƯU Ý : Điều này dường như đang hoạt động với CEDET từ Git, không phải chứng khoán CEDET hiện tại trong Emacs 24.4. Để nhận Emacs từ Git:
git clone http://git.code.sf.net/p/cedet/git cedet
Và tải CEDET trước trên mọi thứ khác trong tệp init của bạn:
(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"))
Khi bật, chế độ này hiển thị điểm chức năng hiện đang ở dòng đầu tiên của bộ đệm hiện tại. Điều này hữu ích khi bạn có một chức năng rất dài trải rộng hơn một màn hình và bạn không phải cuộn lên để đọc tên chức năng và sau đó cuộn xuống vị trí ban đầu.
Nó hiển thị giao diện chức năng đầy đủ (kiểu trả về, tên hàm và tham số), không chỉ tên hàm.
Để kích hoạt nó, hãy đặt mã này vào tệp init của bạn:
(require 'semantic)
(semantic-mode 1)
(global-semantic-stickyfunc-mode 1)
CẬP NHẬT : Một trong những vấn đề với hiện tại semantic-stickyfunc-mode
là nó không hiển thị tất cả các tham số nằm rải rác trên nhiều dòng. Để giải quyết vấn đề này, tôi đã tạo ra gói stickfunc-boost .
DEMO :
Đây là bản demo trong C:
Đây là bản demo trong Emacs Lisp:
CẬP NHẬT : Ngoài ra, bạn có thể sử dụng helm-semantic-hoặc-imothy . Khi bạn ở trong một hàm và chạy lệnh, con trỏ được đặt ngay tại hàm trong danh sách, do đó bạn luôn có thể thấy giao diện chức năng đầy đủ. BẢN GIỚI THIỆU:
Đầu tiên, tôi sử dụng helm-semantic-or-imenu
để di chuyển đến chức năng helm-define-key-with-subkeys
và di chuyển điểm đến đó.
Sau đó, tôi bắt đầu helm-semantic-or-imenu
lại và helm-define-key-with-subkeys
được chọn trước.
Sau đó, tôi di chuyển điểm đến helm-map biến đổi và thực hiện helm-semantic-or-imenu
lại trên hai hàm: helm-next-source và helm-trước-source. Lần này, thay vì hiển thị thẻ ngữ nghĩa hiện tại tôi đang hoạt động (đó là bản đồ helm), nó hiển thị hai thẻ khác trong bộ đệm ngữ nghĩa Helm. Điều này là do tôi đã cung cấp một đối số tiền tố trước khi chạy lệnh.
Ngoài ra bản demo này có trong Emacs Lisp, nó cũng hoạt động cho C / C ++ và nó linh hoạt hơn nếu bạn có giao diện chức năng thực sự dài.