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。