PhpStormと僕

日々周りを巻き込むことをモットーに。気まぐれでJetBrains製のIDEネタとか書いてます。

PhpStormのマクロが便利すぎてヤバい

PhpStormでマクロを初めて使ってみたけど便利な使い方出来て、捗りそうだなーっていうお話。

CakePHPとかのフレームワークを使ってると、テンプレート→別テンプレートに飛ぶことが多くて、その度にファイル名入力してジャンプするけど若干煩わしい。

そんなわけで、『GotoFileアクションにシングルクォーテーション内のファイル名を送る』マクロを作ってみた。

※以下はIdeaVimプラグインを入れてVimキーバインドになっている想定です。

f:id:rinrin900:20130306191546p:plain

手順は以下の通り。

1) [Edit]-[Macro]-[Start Macro Recording]を選択

2) エディタ上に任意の箇所で[vi']-[Ctrl+Shift+A(GotoFile)]の順に入力

3) [Edit]-[Macro]-[Stop Macro Recording]を選択

4) 任意のマクロ名を指定して保存

これでマクロが完成。

次に、作成したマクロに任意のショートカットを割り当てる。

f:id:rinrin900:20130306192027p:plain

あとは、ジャンプしたいファイル名が書かれているシングルクォート内で、先ほど作成したマクロを実行するだけ。

f:id:rinrin900:20130306192239p:plain

f:id:rinrin900:20130306192357p:plain

こんな感じ。

PhpStorm上のエディタ機能だけでなく、自前でインストールしたプラグインとも組み合わせてマクロが組めるみたい。頻繁にやる操作をマクロ化しておけば効率も桁違いに上がるはずなので、積極的につかってみようとおもう。

PhpStormでちょっと便利な『ソースコードの階層まで自動的にスクロール』する機能

最近知ったPhpStormのちょっと便利機能を紹介。 今時のフレームワークとか使ってて、コードが多いと意外と面倒なのがディレクトリ移動。 基本的にファイル移動はファイルとかクラス名指定でジャンプするけど、ディレクトリツリーからファイルを辿りたくなることもしばしば。

この設定をしておくと、「常に開いているファイルまでディレクトリツリーが自動的に開いてスクロールする」というスグレモノ。Find Actionにも出てこないし、Preferencesからも設定出来ないので、知らない人も多そう。

設定方法はとても簡単。Tool Windowの[Project]上で右クリック→[Autoscroll from Source]にチェックを入れるだけ。

f:id:rinrin900:20130227213102p:plain

チェックをしてある状態だと、Project内のディレクトリツリーが開いているファイルまで自動的にスクロールしてくれるようになる。

f:id:rinrin900:20130227213329p:plain

こんな感じ。 ちなみに同じ設定欄にある[Autoscroll to Source]はディレクトリツリー上で選択したファイルを自動的に開くという設定。こっちの設定は正直使い道が分からない・・・。

AppCode+Dashでドキュメント検索を超快適にする

アプリ開発でAppCodeを使っててもどかしいのがドキュメント検索。

f:id:rinrin900:20130218224606p:plain

Quick Documentationで開いてもクラス名程度しか書いてなくて欲しい情報が全くない。 どうにかならんかなーって思ってたら、Dashっていうドキュメントビューアが快適と聞いたので連携させてみた。

Dash参考:

http://www.key-p.com/blog/staff/archives/1337 http://d.hatena.ne.jp/naoya/20130218

Dash単体でショートカット設定出来るみたいだけど、「選択している文字列をドキュメント検索」のショートカットがJavaの制限?とかで、AppCode内からは上手く機能しない。

なので、別途AppCodeのプラグインを入れる必要がある。

AppCodeDashSearch

Github上からjarファイルをダウンロードしてAppCode上からプラグインとしてインストールするだけ。

PreferencesのKeymapに「Search in Dash」っていう項目が追加されてるので、任意のショートカットを割り当てて完了。

f:id:rinrin900:20130218224629p:plain

後は検索したい任意のワードの下でショートカットを押すだけ。Dash本体にもショートカットを割り当てておいて、表示/非表示を切り替えられるようにしておくともっと快適かも。

f:id:rinrin900:20130218224616p:plain

RetinaのMacでPHPStormが異常に重いときの対策

環境周りでハマったのでメモ。

RetinaのMacbookでPHPStormを起動してて、エディタでなんらかのファイルを開くと、毎回15秒〜30秒くらいフリーズする始末。。

いろいろ試した結果、[低解像度モード]で起動すれば起動すれば解決!

手順は以下の通り。

Finder上でApplicationディレクトリを表示して
右クリック->情報を見る->低解像度で実行 にチェックを入れて実行。

BehatでUserAgent指定

最近PHPで受入れ試験書く時にBehat使うことが多いので。

PCとスマートフォンとフィーチャフォンで表示項目違うときとか、 UserAgentを切り替えられるようにしておくと便利。

<?php
/**
 * @var $world FeatureContext
 */
$steps->Given( '/^"([^"]*)" でアクセスしている$/', function ( $world, $table ) {
    switch ( $table ) {
        case "フィーチャフォン":
            $user_agent = "KDDI-CA39 UP.Browser/6.2.0.13.1.5 (GUI) MMP/2.0";
            break;
        case "スマートフォン":
            $user_agent = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5B108 Safari/525.20";
            break;
        default:
            $user_agent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1284.0 Safari/537.13";
            break;
    }

    $world->getSession()->getDriver()->getClient()->setServerParameters( array( 'HTTP_USER_AGENT' => $user_agent ) );
} );
?>