- org-plus-contrib 20170807(in org)
- Outline-based notes management and organizer
概要
eldoc はEmacs Lispプログラミングを支援してくれることで定番ですね。
カーソル位置の関数の引数や変数の説明がエコーエリアに
自動的に表示されるアレですよ。
eldocは拡張できるようになっているため、Emacs Lisp以外にも対応しています。
- C言語(c-eldoc)
- Go(go-eldoc)
- CSS(css-eldoc)
- PHP(php-eldoc)
- Python(python.el)
この org-eldoc は org-mode にて
- 見出しのフルパス(?) - 大見出し〜現在の見出しまでを/で区切ったもの
- begin_src blockのパラメータ
- begin_src 内のソースコード(Emacs Lisp, C言語, CSS, Python, PHP, Go)のeldoc
を表示してくれます。
Emacs 24.3ではbegin_src内のEmacs Lispのeldocが
エラーになってしまうので関数を再定義しています。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてorg-plus-contribを使う方は
以下のコマンドを実行します。
M-x package-install org-plus-contrib
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name org-plus-contrib
設定 141006143712.org-eldoc.1.el(以下のコードと同一)
(require 'org-eldoc) (org-eldoc-hook-setup) (add-hook 'emacs-lisp-mode-hook 'eldoc-mode) (defun org-eldoc-documentation-function () "Return breadcrumbs when on a headline, args for src block header-line, calls other documentation functions depending on lang when inside src body." (or (org-eldoc-get-breadcrumb) (org-eldoc-get-src-header) (let ((lang (org-eldoc-get-src-lang))) (cond ((or (string= lang "elisp") (string= lang "emacs-lisp")) (cond ((fboundp 'eldoc-documentation-function-default) (eldoc-documentation-function-default)) ((locate-library "elisp-mode") ;; we're using development version of Emacs (autoload 'elisp-eldoc-documentation-function "elisp-mode" nil t) (elisp-eldoc-documentation-function)) (t ;24.3 (let (eldoc-documentation-function) (eldoc-print-current-symbol-info))))) ((or (string= lang "c") ;; http://github.com/nflath/c-eldoc (string= lang "C")) (when (require 'c-eldoc nil t) (c-eldoc-print-current-symbol-info))) ;; https://github.com/zenozeng/css-eldoc ((string= lang "css") (when (require 'css-eldoc nil t) (css-eldoc-function))) ((string= lang "python") (when (require 'python nil t) (python-eldoc-function))) ;; https://github.com/zenozeng/php-eldoc ((string= lang "php") (when (require 'php-eldoc nil t) (php-eldoc-function))) ((or (string= lang "go") (string= lang "golang")) (when (require 'go-eldoc nil t) (go-eldoc--documentation-function)))))))
実行方法
$ wget http://rubikitch.com/f/141006143712.org-eldoc.1.el $ emacs -Q -f package-initialize -l 141006143712.org-eldoc.1.el
Fig1: 見出しの階層表示
Fig2: begin_src ブロックのパラメータ表示
Fig3: begin_src 内のEmacs Lispのeldoc
本サイト内の関連パッケージ
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。