■
php-modeで、メソッドを折りたたむものを、前回やりました。
その上、クラスのメンバで大きな配列を抱えている場合があります。
この配列も折りたたみたいです。
さらに、普通にadd-hookしたのにファイルを開いた瞬間にhideしてくれていないようで、
(何かがコンフリクトしてる?)
C-c C-f でhs-minor-modeを開始して同時に折りたたみ、その後toggleするように作り直しました。
そのコードが以下です。
対応emacs:23.3~
;; hs-hide-function (on php) (define-key php-mode-map (kbd "C-c C-o") 'hs-toggle-hiding) (defvar my-hs-state-hide nil) (defun hs-toggle() (interactive) (hs-toggle-mode) (if my-hs-state-hide (progn (hs-show-all) (setq my-hs-state-hide nil)) (progn (hs-hide-array)(hs-hide-function)(setq my-hs-state-hide t) ))) (defun hs-toggle-mode() (if (not hs-minor-mode) (hs-minor-mode))) (defun hs-hide-function() (interactive) (save-excursion (beginning-of-buffer) (while (re-search-forward "function.*?(.*?)" nil t) (if (search-forward "{" nil t ) (hs-hide-block))))) (defun hs-hide-array() (interactive) (save-excursion (beginning-of-buffer) (while (re-search-forward "array(" nil t) (hs-hide-block)))) (define-key php-mode-map (kbd "C-c C-f") 'hs-toggle)