Monthly Archives: October 2013

WebStorm 7を使いJavaScript テストをKarmaで動かす

WebStormは常に開発をより楽しくする最新のテクノロジやツールをサポートしています。WebStorm 7において中でも大きなのはKarmaのサポートです。KarmaはAngularJSチームが開発しているJavaScriptをテストするためのシンプルでフレキシブルなツールです。 これまで通りJSTestDriver(詳しい解説はこちら(英語) )も利用できます。 WebStormのKarma連携の主要機能は以下の通りです: ローカルWebサーバを使い、コンピュータにインストールされている任意のブラウザでテストを走らせる Jasmine、QUnit、Mochaなど、好きなフレームワークと組み合わせてテストできる istanbulコードカバレッジエンジンと一緒に動かせる 全体を説明するビデオ(英語)を用意しましたので是非ご覧ください。また、チュートリアル – Running JavaScript tests with Karmaを併せてご参照いただければと思います。 Karmaを使うには、まずNode.jsをインストールする必要があります。KarmaはWebStormの内蔵ターミナルやお好みのターミナルでグローバルにインストールする方法、WebStormの内蔵npmでプロジェクトディレクトリに直接インストールする方法があります(ツールバーのNode.js設定よりkarmaモジュールを検索、インストール)。 プロジェクトのKarma設定はKarma configuration fileを追加するか自動生成させます。この設定ファイル内で利用したいテストフレームワークとブラウザ(複数指定可)を指定します。 続いてKarma Run Configurationを作り、ワンクリックでいつでもテスト実行できるようにします。 テスト結果はRunパネル内に綺麗に表示されます。テスト結果からコードにジャンプしたり、テスト結果の統計を確認したり、HTMLのレポートを作ったりすることができます。 WebStormはKarmaが使っているistanbul code coverage engineもサポートします。nodeのモジュールkarma-coverageをインストールして、Karma configuration fileに追加します。Run with coverageボタンを押せばテスト実行時にカバレッジ測定ができます。 WebStormのKarma連携について詳しくはRunning JavaScript tests with Karma tutorial (英語)をご覧ください。 Develop with pleasure! WebStorm … Continue reading

Posted in WebStorm | 1 Comment

Kotlin M6.1リリース

二ヶ月前にM6をリリースしました。そして今日、沢山の改善を含む次のステップへと移る準備ができました。 言語の改善 言語の新機能や改善が施されました より良いインターフェース タイプインターフェースにはスマートキャストが働きます。以下のコードが期待通り動作します:

より良いキャスティング診断 コンパイラは賢くなり、不可能なキャストを検出します

、といったコードはコンパイル時にエラーを出します。 特定のケースでは生のタイプへのキャストは推論が働きます

さらに、else句はwhen節内で返値に関連がない場合は不要となりました。つまり、これはステートメントとして利用できます:

警告の抑止 任意の宣言や式にsuppressアノテーションをつけて(Cmd+Enterを押せばIntelliJ IDEAがやってくれます)、コンパイラの出す警告を抑止させることができます。未チェックキャストやリネームされたパラメータを含むいかなる警告に対して利用できます。

ローカルリターンを名前付きラムダ式で 混乱を防ぐため、純粋なreturnは「名前付き関数からの戻り」と認識されます。つまりラムダ式内で”return x”と表記してそのラムダがxを返すという書き方は認められないことになります。この制約を和らげるため、本リリースより「ラムダ式内のラベル付きリターン」を書くことができるようになりました。たとえばfooという名前の関数があった場合

この関数を呼び出す際にラムダ式を渡して条件を確認して早期に戻すというコードが書けます

この定義内で明示的なラベリングは必須ではありません。以下のように書くことも出来ます:

ラムダ式が関数に渡されたときは自動的にラベル付きとなります。 注意:ラムダ式内の明示的なリターンタイプは一時的に必要なもので、将来的に不要になる予定です 警告: メタデータフォーマットの変更 生成するバイトコードは以前とは大きく異なります。サイズはよりスリムになり、リフレクションは高速になりました。ただし以前のバージョンのKotlinでコンパイルしたバイトコードとは互換性がありません。 JavaScriptサポート KotlinのJavaScriptサポートを利用して成功を収めている商用製品がある傍ら、JetBrainsは現在のところJVM向けにフォーカスしてきました。しかし、現在はJavaScriptサポートに全力を注いでおり今回のリリースで以下の機能を含めました: Support for enums Class Objects Delegated properties … Continue reading

Posted in Kotlin | Leave a comment

ファイルウォッチャでComposerの依存関係を可視化する

GitHubのclue/graph-composerは大変興味部会です。インストールするとプロジェクトのcomposer.jsonやその依存関係を可視化したグラフを生成してくれます。 Composerの依存設定を変更したら自動的にグラフをアップデートしてくれたら便利だと思いませんか?できますよ!そう、PhpStormならね。 PhpStormは拡張子別、または任意のファイルの変更を検出してお望みのコマンドを走らせることができます。たとえばCoffeeScriptに対してはFile Watcherを追加して自動的にJavaScriptに変換してくれます。PhpStormでは沢山のデフォルトのファイルウォッチャが内蔵されていますが、カスタムファイルウォッチャを設定することもできます。composer.jsonを監視して変更を検出したらgraph-composerを呼び出すという目的にはピッタリですね。clue/graph-composerのカスタムウォッチャの設定方法を以下に説明します。 カスタムファイルウォッチャーの追加 まず、clue/graph-composerをインストールしてください。またGraphVizが正常に動作することを確認してください。graph-composer.phar をPhpStormに追加すると以下の用になります。 次に、Project Settings | File Watchers よりファイルウォッチャを追加します。緑色の“+”ボタンを押し、名前と説明を記載します。 File Watcher configurationウィンドウより、どういった動作をさせるのか指定できます。詳しい説明はこのページに記載されています。今回は以下の通り設定します: File type: composer.json はJSONファイルなので、拡張子がjsonのファイルをウォッチします。ちなみに拡張子やファイルタイプのマッピングはSettings | File Types にて設定できます Scope: ファイルウォッチャがプロジェクトファイル全てを監視すべきか、エディタで開いているものだけ監視すれば良いのかを指定します。今回のケースではデフォルトの”Project Files”としておきます Program: PHPコマンドを動かすので、プロジェクトで設定しているPHPの実行バイナリを示すマクロである$PhpExecutable$を指定します Arguments: ここでもマクロを使います。graph-composer.pharをプロジェクトのルートで動かしてPNG画像を作りたいので、$ProjectFileDir$\graph-composer.phar export  –format=”png” $ProjectFileDir$ $ProjectFileDir$\composer.png と指定します Output paths to refresh: … Continue reading

Posted in PhpStorm | Leave a comment

IntelliJ IDEA 12.1.5 Update リリース

お待たせいたしました!IntelliJ IDEA 12.1.5のリリースです。IDE全般に渡ってたくさんのバグフィクスや改善が施されています。 変更内容の詳細はリリースノートをご覧ください。 IntelliJ IDEA 12.xをお使いでアップデートの通知を受け取っていなければCheck for Updatesを押せばアップデートを受け取ることが出来ます。 Develop with Pleasure!

Posted in IntelliJ IDEA | Leave a comment