集まれる時に集まってもくもくとKotlinのコントリビュートを行う会です。
- Unresolved ReferenceなどでビルドできないときはKotlinプラグインを最新のバージョンにする
- 同じくUnresolved ReferenceなどでビルドできないときはIntelliJ IDEAでUpdate-Dist-Runを行う
- Antのメモリを大きくしないとビルドできないことがあるらしい
- Kotlinのプロジェクトが読み込めない時はAndroid Supportプラグインを無効にするとなぜか読み込める
- エラー内容:Cannot Load Project:com.intellij.ide.plugins.PluginManager$StartupAbortedException:Fatal error initializing plugin org.jetbrains.kotlin
- Generate Testがうまく動かないときはJDKのearly access版かpatched jdkを使う
- File > Project Structure > SDKsに追加したJDKを追加して、Edit Configurationsを開き、JREを先ほどのJDKにしてビルドすればエラーでなくなる。
- テストを選択して動かしてTest file Not Foundと言われる時はEdit Configurations...よりWorking Directoryを$MODULE_DIR$ではなく、$PROJECT_DIR$にすると解決する
- JetBrains/kotlinの開発環境の作り方
- Up For Grabsで絞り込んだIssueリスト
- ここにあるIssueは解決したプルリクエストを送ることで、コントリビュートすることができます。
- Kotlin公式Slackのkontributorsチャンネル
- Shiraji's Blog/How to Kontribute
- 日本のKontributeされている方のブログ記事です。最高です。
Kotlinで頻出の新機能作成はIntention/Inspection/Quickfixに関するものです。Intention/Inspection/Quickfixの違いは実装前に確認しておくと良いです。どれを実装すれば良いのかわからない場合、SlackやそのIssueで聞いてしまうのも手です。
それぞれの機能追加の場合、以下のファイルの追加・変更が必要になります。(Xxxはそれぞれの機能の名前です。xxxはlowerCamelCaseということです。)
- idea/src/org/jetbrains/kotlin/idea/intentions/XxxIntention.ktを追加
- idea/src/META-INF/plugin.xmlにintentionActionタグを追加
- idea/resources/intentionDescriptions/XxxIntention/description.htmlにIntentionの説明を追加
- idea/resources/intentionDescriptions/XxxIntention/before.kt.templateとidea/resources/intentionDescriptions/XxxIntention/after.kt.templateを追加
- idea/testData/intentions/xxxにテストデータを作成
- idea/src/org/jetbrains/kotlin/idea/inspections/にXxxInspection.ktを追加
- idea/src/META-INF/plugin.xmlにlocalInspectionのタグを追加
- idea/resources/inspectionDescriptions/Xxx.htmlのInspectionの説明を追加
- idea/testData/inspectionsLocal/xxxにテストデータを作成(inspectionsLocalが2017年8月現在最新のテスト方法です。)
- idea/src/org/jetbrains/kotlin/idea/quickfix/XxxFix.ktを作成する
- idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.ktの対象のエラーにregisterする
- idea/testData/quickfix/xxxにテストデータを作成
2017/09/20あたりからビルドツールとしてAntからGradleを使うようになりました。以下が主な変更点です。
- Intellij IDEA 2017.3以上を使う。2017.1でも動くとのこと
- Kotlin plugin 1.1.50以上のStableを使う。過去のdev周りの設定を外した方が良いかも?
- IDEAをRunするタイミングで旧ant distが実施されるようになった
- テスト実行時のWorking directoryの設定が必要なくなった。GradleのDelegate IDE build/run actions to Gradleをチェックする必要があり
- テスト実行はクラスやメソッドの左横にある緑の>をクリック
- IDEAの起動(IDEA), テストケース生成(Generate Tests)はRun Configurationに存在