YouTubeやってます!
Categoriesまとめ

CotEditorに入っているPHPのシンタックスハイライトを修正した

Date 2012/07/02 17:00  Modified date 2016/05/10 Author Yutaka  Tags Mac 情報処理

 CotEditorには「アウトラインメニュー」という機能があります。これは、HTMLのhタグや、プログラムの関数名をリストして、ジャンプ出来るようにしてくれるとても便利な機能です。
 ところが、PHPの場合、タブでインデントした場合にこれがうまく働かなかったので、これを修正してみました。

 実はちょっと前から(数年前から)気になってはいたのですが、まあそんなもんなんだろうと思って放置していました。でもプログラムが長くなってくるとアウトラインメニューがあった方が便利なので、タブでインデントした場合でもちゃんとリストしてくれるようにしてみました。

CotEditor
 インデントしていない test1 と半角スペースでインデントした test3 はアウトラインメニューに表示されていますが、タブでインデントした test2 は表示されていません。

 以前はタブでインデントしたものもリストしてくれていたのような気がするのですが、もしかしたら気のせいかもしれません。

修正してやるー

 まず、メニューから[環境設定…] – [シンタックス] を開きます。その中にある「シンタックススタイル」のドロップダウンメニューで「PHP」を選択し、編集ボタンをクリックすると、PHPの設定を編集出来るようになります。この画面でドロップダウンメニューから「アウトラインメニュー設定」を選択します。

CotEditor

 デフォルトではたぶん以下のようになっていると思います。

^([[:blank:]]*)(function)\s*([^{]*)(?={)
^([[:blank:]]*)(private function)\s*([^{]*)(?={)
^([[:blank:]]*)(protected function)\s*([^{]*)(?={)
^([[:blank:]]*)(public function)\s*([^{]*)(?={)
^[\t ]*(class)\s*(.*)$

 ここで [[:blank:]] を [\t ] に置き換えます。(tの後ろに半角スペースが入っています。)

^([\t ]*)(function)\s*([^{]*)(?={)
^([\t ]*)(private function)\s*([^{]*)(?={)
^([\t ]*)(protected function)\s*([^{]*)(?={)
^([\t ]*)(public function)\s*([^{]*)(?={)
^[\t ]*(class)\s*(.*)$

これでタブでインデントしたものも半角スペースでインデントしたものもちゃんとアウトラインメニューにリストされるようになると思います。

CotEditor
タブでインデントした test2 もちゃんとリストされるようになりました。

という感じ

 vimも使いますが、基本、CotEditorを使っています。Zen-codingがもっと軽快に使えたら嬉しいです。タブなきゃヤな人多いみたいですが、私は、あれば嬉しいけどなくても別にかまいません。

 インデントは半角スペースでもタブでもどっちでも良いと思いますが、同じ長さインデントするならタブの方が文字数が少なくなる(転じて、ファイル容量が少なくなる)ので、特別理由がなければタブでインデントしてます。

参考

一瞬で小顔になる!「耳たぶ回し」DVDブック (マキノ出版ムック)

  • 著者/訳者:佐藤青児(月見歯科クリニック院長/メディカルエステ・メディカサトウ主宰)
  • 出版社:マキノ出版 ( 2010-10-15 )
  • ムック:55 ページ
Back to Top