Scratchファイルを使って気軽に実行可能なコードを保存する

概要

この記事ではIntellijでサポートされたKotlinのScratchファイルについて紹介を行います
Scratchファイル自体はKotlinに限らずJavaなどもサポートされています

Scratchファイルとは

Kotlinなどの実行可能なコードを保存するファイルで、デフォルトではプロジェクト外に保存されます。 プロジェクト内にあるファイルと違う点は、あらかじめプロジェクトをビルドしておけば、Scratchファイルのビルドだけで実行可能なため、実行までの時間が速いことです。

IntelliJIDE機能の一つです

実行環境

  • IntelliJ IDEA 2018.3.1 (Community Edition)
  • Kotlin Plugin 1.3.10-release-IJ2018.3-1

Hellow World!

  1. プロジェクトにファイルを追加する時と同じように New -> Scratch File を選択 f:id:scache:20181214142223p:plain:w300

  2. Scratchファイルの形式が選べるので Kotlin を選択
    f:id:scache:20181214142253p:plain:w300

  3. ファイルが作成されるので Use classpath of Module からモジュールを選択してコードを記述します
    f:id:scache:20181214143310p:plain:w600

実行してみる

左上にある実行ボタンを押すとコードが実行され、エディタ上に結果が表示されます
※実行前にはモジュールのBuildをするか Make Before Run にチェックする必要があります
各行ごとに出力が表示されるのがとても便利です
f:id:scache:20181214143243p:plain:w600

選択したモジュール内のクラスを使う

Scratchファイルでは、モジュールの中で定義されているクラスを使用することが可能です
例えば以下のようなクラスが定義されている場合、Scratchファイルでも使用することが可能です

package com.github.sckm

data class Person(
    val name: String,
    val age: Int
)

f:id:scache:20181214163219p:plain:w600

ライブラリを使用する

ライブラリを使用する際は、Scratchファイル用に依存を追加することはできず、
使用するモジュールの build.gradle などで依存を追加する必要があります

使用例

自分がよく使うパターンとしては、

  • プロジェクトでたまに使うAPIのレスポンスを確認したい時
    • IDE上でできるので1番よく使用しています
  • ちょっとした処理の動作を確認したい時
    • テストコードとして実行すると時間がかかるプロジェクトで時間を節約可能

Scratchファイルの保存場所

~/Library/Preferences/IdeaIC2018.3/scratches/

プロジェクトとは関係無い場所に保存がされるため間違えてGitリポジトリに含めてしまうという心配もありません

もちろん、IDE上からでもファイルを開くこともできます f:id:scache:20181214153353p:plain:w400

まとめ

  • コード実行時に新しくプロジェクトを作ったり、Git配下にファイルを追加する必要が無い
  • モジュール内のクラスを使用可能
  • テストコードと似た感覚でカジュアルに実行可能

参考

Scratches - Help | IntelliJ IDEA
Tuning IntelliJ IDEA - Help | IntelliJ IDEA