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。