C / C ++ / Java / Emacs Lisp / Pythonを記述している場合は、semantic-sticky-func-modeが希望どおりの動作をします。
注:これはGitのCEDETで動作しているようで、現在Emacs 24.4にあるCEDETのストックではありません。GitからEmacsを入手するには:
git clone http://git.code.sf.net/p/cedet/git cedet
そして、最初にCEDETを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"))
有効にすると、このモードは、関数ポイントが現在のバッファーの最初の行にあることを示します。これは、画面よりも大きく広がる非常に長い関数があり、関数名を読み取るために上にスクロールしてから元の位置にスクロールする必要がない場合に便利です。
関数名だけでなく、完全な関数インターフェイス(戻り値の型、関数名、パラメーター)を表示します。
これを有効にするには、このコードをinitファイルに入れます。
(require 'semantic)
(semantic-mode 1)
(global-semantic-stickyfunc-mode 1)
更新:現在の問題の1つは、semantic-stickyfunc-mode
複数の行に散らばっているすべてのパラメーターが表示されないことです。この問題を解決するために、stickyfunc-enhanceパッケージを作成しました。
デモ:
これがCのデモです:
Emacs Lispのデモは次のとおりです。
更新:または、helm-semantic-or-imenuを使用できます。関数内にいてコマンドを実行すると、カーソルがリスト内の関数の右側に置かれるため、常に完全な関数インターフェイスを確認できます。デモ:
まず、helm-semantic-or-imenu
関数helm-define-key-with-subkeys
に移動してポイントを移動します。
次に、helm-semantic-or-imenu
もう一度開始して、helm-define-key-with-subkeys
事前に選択されています。
次に、ポイントを変数helm-mapに移動し、helm-semantic-or-imenu
helm-next-sourceとhelm-previous-sourceの2つの関数で再度実行します。今回は、操作している現在のセマンティックタグ(helm-map)を表示する代わりに、Helmセマンティックバッファー内の他の2つのタグを表示します。これは、コマンドを実行する前に前置引数を指定したためです。
また、このデモはEmacs Lispに含まれており、C / C ++でも機能し、非常に長い関数インターフェイスを取得すると、より柔軟になります。