Visual Studio CodeでKotlinプログラム開発
Kotlinのソースコードは書きやすいですが、コンパイルして実行するコマンドがわりと複雑です。Eclipse、NetBeans 、またKotlinの開発元であるJetBrains社のIDE「InteliJ(無償版あり)」などで「Kotlinプロジェクト」を作成して「実行」ボタンを押せばすぐにコンパイル・実行できます。
しかし、IDEは重いので、本書のような小さなプログラムをたくさん作って動かすには「鉈で豆腐」感が否めません。
そこで、初期設定こそ面倒ですが、ひとたび設定すれば「コード書き、コンパイル、実行」のサイクルが簡単にできるようになる方法として、「Visual Studio Code」の利用法をご紹介します。
[1]Visual Studio Codeのインストール
Visual Studio Code(以下「VSCode」)は以下のURLからダウンロード・インストールしてください。
https://code.visualstudio.com/
インストーラはEXE形式です。ダブルクリックして起動し、初期設定の通りにインストールを進めてください。
[2]Kotlinサポートの拡張機能
VSCodeでKotlinのコード補完、強調表示等をサポートするための「拡張機能」をインストールします。
以下のURL「Visual Studio Marketplace」をブラウザで開きます。
https://marketplace.visualstudio.com/
まず、上部のタブで「Visual Studio Code」を選択します。
次に、検索欄に「Kotlin」と入力すると、「Kotlin language」という拡張機能が選択されてきます。これを選択します。図1の通りです。
選択した拡張機能の詳細画面が開きますので、「Install」をクリックします。
もしVSCodeが開いていなければ、図2のように自動起動するかどうか尋ねられます。図3のようにVSCodeの画面に、この拡張機能をインストールするかどうかのボタンが現れますから「インストール」ボタンを押してください。
これで拡張機能がインストールされました。
[3]VSCodeでフォルダを開く
Kotlinのソースファイルを「kotlin_projects」というフォルダにまとめて置くことにします。
図4のように、「VSCode」のメニューで「ファイル」-「フォルダを開く」を選び、ファイル参照画面からフォルダ「kotlin_project」を選択します。
[4]タスクファイルを作成
コンパイル、実行などのコマンドは「tasks.json」という名前のファイルに書きます。
「tasks.json」は新規作成しなければなりません。そのためには、まず図5のように、メニューの「タスク」-「タスクの構成」を選びます。
図6のように、エディタ上部にリストが現れて、どのような種類のタスクを構成するか選びます。「Others」を選びます。
図7に示すように、「tasks.json」ファイルが作成され、エディタにその初期の内容が表示されますので、編集していきます。
[5]タスクファイルの書き方
Kotlinで行うタスクは二つです。一つはソースファイルをコンパイルしてjarファイルにすること、もう一つはそのjarファイルの実行です。そこで、二つのタスクに名前をつけて区別します。JSON形式で書くとリスト1のような形式になります。
「
{ "version": "2.0.0", "tasks": [ { "taskName": "kotlinc", "command": "kotlinc", "args": [コマンドkotlincの引数を文字列として列記], }, { "taskName": "execjar", "command": "java", "args": [jarファイルを実行するための引数を文字列として列記], } ] }
なお、この「コマンド」は、VSCode上に図8のように表示される「ターミナル」上のコマンドになります。このターミナルは初期状態では、システム標準のコマンドウィンドウです。Windows10ならPowerShell, Windows7ならコマンドプロンプトです。
リスト1で、「version」はこのJSONファイルの仕様のバージョンであって、Kotlinプログラムのバージョンではありません。VSCodeのバージョンによって異なると考えてください。
重要なのはタスクの「args」の内容です。「${file}」 で、今エディタでアクティブになっているファイル名を表すことができます。たとえば、「char1.kt」がアクティブなら${file}の値はchar1.ktと拡張子までつきます。
とすると、「char1.jar」のようにファイル名が同じで拡張子が異なる形を作るためには、拡張子を除いたファイル名が必要です。これは${fileBasenameNoExtension}で与えられます。そこで、コンパイルしてjarファイルを作るための「args」の内容はリスト2のようになります。
["${file}", "-include-runtime", "-d", "${fileBasenameNoExtension}.jar"]
また、jarファイルを実行するための「args」の内容はリスト3のようになります。
["-jar","${fileBasenameNoExtension}.jar"]他に、「シェルコマンドとして実行」「結果を常に(ターミナル上に)表示」などのオプションも書くと、リスト4のようになって完成です。保存してください。
{ "version": "2.0.0", "tasks": [ { "taskName": "kotlinc", "type": "shell", "command": "kotlinc", "args": ["${file}", "-include-runtime", "-d", "${fileBasenameNoExtension}.jar"], "presentation": { "reveal": "always" } }, { "taskName": "execjar", "command": "java", "type": "shell", "args": ["-jar","${fileBasenameNoExtension}.jar"], "presentation": { "reveal": "always" } } ] }
[6]キーバインドの設定
名前で区別された二つのタスクを、キーバインド(キーボードショートカット)で行う設定をします。
初期のキーバインドとバッティングしないようにするには、「Ctrl+英字キー」を2つ組み合わせるのが適当です。
たとえば、タスク「kotlinc」のキーバインドを「Ctrl+L-CtrlK」、タスク「excecjar」のキーバインドを「Ctrl+J」-「Ctrl+K」にすると、近い場所の組み合わせでかつ対照的なのでわかりやすいのではないでしょうか。
キーバインドを設定するには、メニューから「ファイル」-「基本設定」-「キーボードショートカット」を選びます。
すると、図10のような画面になります。これは既存のキーバインドの変更画面です。今回行うのは全く新規のキーバインドの作成です。そのため、「高度な設定」に相当する「keybindings.json」のリンクをクリックします。
これで、画面が二つに別れて表示されます。左側はシステム設定の一覧です。右側がユーザー設定で、システム設定に加筆修正したい項目を書きます。そこで、右側をリスト5のように完成させてください。
[ {"key": "ctrl+l ctrl+k", "command":"workbench.action.tasks.runTask", "args":"kotlinc"}, {"key": "ctrl+j ctrl+k", "command":"workbench.action.tasks.runTask", "args":"execjar"}, ]
[7]実行してみよう
以上のようにタスクとキーバイドを設定すれば、あとはウィンドウをアクティブにしておいて、「Ctrl+L-Ctrl+K」でコンパイルすればそのファイルからjarファイルができます。エラーがなければ、図12のようにコマンド入力可能になります。
図12のようにコンパイルが成功したら、「Ctrl+J-Ctrl+K」で実行できます。結果はターミナル上に表示されます。