ぽんぽこ日記

プログラミング、読書、日々の生活

[emacs] objc-mode でのimenu

emacsでobjective-Cで書かれたソースコードを、imenuでブラウズする場合のインデックスを作成関数を改良したので、共有します。

(defun objc-pragma-imenu-create-index ()
  (let (index)
    (dolist (pattern (list "\\(^@interface.+$\\|^@implementation.+$\\|#pragma mark.+$\\|^-.+$\\|^+.+$\\)" ))
    (goto-char (point-min))
    (while (re-search-forward pattern (point-max) t)
      (push (cons (match-string 1) (match-beginning 1)) index)))
    (nreverse index)))

上のように定義した関数を、

(add-hook 'objc-mode-hook (lambda () (setq imenu-create-index-function 'objc-pragma-imenu-create-index)))

で設定すればOK。

関連記事
clangを使ったCのコード補完 - ぽんぽこ日記