Pebble Kit JSのコード補完

IntelliJ IDEA(系IDE)でPebble Kit JSのコード補完ができるようにしてみた。

別に補完が必要だったというより、エディタ上でJavascriptの警告(Pebbleが定義されていない等)が表示され自分のコードの警告が埋もれてしまうのを避けるため、エディタにPebbleオブジェクトを認識させようと思ったのがキッカケ。

IntelliJ IDEAではJavascriptライブラリについてDefinitelyTypedというTypeScript型の定義を参照して型情報を認識することができる。DefinitelyTypedについてはQiitaの記事のTypeScriptの型定義ファイルを共有しよう!が詳しい。

ファイルにはひたすらTypeScriptでインタフェース定義を書いていく。

 interface Pebble {
        /**
         * Adds a listener for Pebble JS events, such as when an AppMessage is received or the configuration view is opened or closed.
         * @param type      The type of the event, from the three described above.
         * @param callback  A developer-defined function to receive any events of the type specified that occur.
         */
        addEventListener(type: string, callback: (e: Event) => void): void;

        /**
         * Remove an existing event listener previously registered with Pebble.addEventListener().
         * @param type      The type of the event listener to be removed.
         *                  See Pebble.addEventListener() for a list of available types.
         * @param callback  The existing developer-defined function that was previously registered.
         * @see addEventListener
         */
        removeEventListener(type: string, callback?: (e: Event) => void): void;

https://github.com/DefinitelyTyped/DefinitelyTypedに各ライブラリの定義ファイルが置いてあるので新しいライブラリの定義を追加する場合はPull Requestをおくれば良い。

というわけで送ってみたら取り込まれた。( #8411 @vvakameさんありがとうございます。)

https://github.com/DefinitelyTyped/DefinitelyTypedにあるライブラリの定義は設定のLanguages & Frameworks > Javascript > Download… から追加できる。

しかしながら肝心のC言語(Pebble SDK)の方は未だに補完できないまま放置している。