end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

emacsでperlやjavascriptの関数の折りたたみ

perlであれば、hideshow.el によるhs-minor-mode

現在、gnupack付属のemacs23を使用していますが、このemacsにはhideshow.elが標準で付属しています。hideshow.el によるhs-minor-modeはM-x hs-minor-modeで起動できますが、cperl-modeにhookして利用する場合、.emacsに次のように記載します。

(add-hook 'cperl-mode-hook
          '(lambda()
            (hs-minor-mode 1)))

hs-minor-modeの状態では、M-x hs-hide-allやM-x hs-show-all等でmethodの表示/非表示を切り替えることができますが、私の場合、menuバーから閉じたり、開いたりしています。

javascriptであれば、js2-mode

hs-minor-modeはjavascriptでも利用できますが、function SomeClass() {...}のようにクラスを定義するjavascriptでM-x hs-hide-allを実行すると、クラス全体が閉じてしまう為、意味がありません。

javascriptでM-x hs-hide-allした例

function BookmarkManage() {...}

var bm = new BookmarkManage();

javascriptの編集にjs2-mode.elを利用している人は多いかと思いますが、私の場合、メニューバーの「IM-JavaScript-IDE」でメソッド群を一覧表示しています。

hs-minor-mode も js2-modeもメニューバーから操作していますが、いい感じです。