WGGの活動log

ゲームクリエイターやらエンジニアを目指してる大学生が,技術的なことを書いたり遊んだゲームの感想を書いたりするブログです.ちなみにWGGは「ワグ」と読みます.

Processingの開発を色んなエディタでできるようにする

この記事は Procesing Advent Calendar 2017 の11日目です
前日は purinxxx0103さんのProcessingで雪の結晶(再帰) でした

Processingの公式IDEが使いづらい

こんなこと感じたこと無いでしょうか?

僕自身,普段プログラムを書く時はVim, VSCode, Mery などを使っています.
Meryは違いますが,VSCodeとかと比べると,どうしてもProcessingのIDEってコーディングをサポートする機能が貧弱に感じます
具体的には

  • 対応する括弧の自動入力が無い
  • Ctrl + Space を押さないと補完が表示できない
  • スニペット機能が無い

他にも探したら色々ありそうですが,まぁとにかくProcessing公式のIDEが使いづらいと感じるわけです.
それで,使いづらいならどうすればいいかというと,他のに乗り換えてしまえば良いわけです.
この記事では,○○(エディタ名)での導入方法を説明するのではなく,様々なエディタで開発を可能にするための指針を書いていきます.
なので,特定のエディタで行いたい場合は,調べるとより適した記事が見つかると思います.
今回は過去に自分が作成した例として主にMeryをサンプルにあげます.
また,Processingに限らず△△(言語名)での開発にも役立つかもしれません.

他のエディタでProcessingの開発をするには

Processingの開発を他のエディタで快適に行うためには以下を満たせば良いと思っています.

  • コード補完ができる
  • シンタックスハイライトが適用される
  • 実行ができる

これらを満たせば,後は使用するエディタの豊富な機能を活かして公式IDEよりも快適に開発が行えるはずです.

コード補完

関数名などを途中まで書いた時に,その文字列に続くものをリストアップする機能です.
Visual Studio Code
f:id:wgg00sh:20171211115915p:plain

Visual Studio Codeの場合,拡張機能で既に作られていたのでこれを導入するだけで実現できました.
marketplace.visualstudio.com

とはいえ,必ずしも十分な拡張機能が存在するとは限らないので,時には自分で作る必要もあります.
僕が過去に作ったものだとMeryでProcessingを書くために予約語リストを自作しました
github.com

結果,Meryでもコード補完ができるようになりました
f:id:wgg00sh:20171211120810p:plain

このようにエディタ側で,十分にサポートされていれば,自力でオリジナルのコード補完を作ることもできます

シンタックスハイライトが適用される

こんな感じにいい感じに色を付けて見やすくする機能です(Visual Studio Code)
f:id:wgg00sh:20171211121429p:plain

左のほうが見やすいと感じる人が多いのではないでしょうか

これを実現するには,構文ファイルを作成する必要があります.
標準で使える特定の文字列が,「関数名」「定数名」「予約語」「数字」「コメント」のどれに当たるかを登録します

過去に作成したMeryの場合,構文ファイルの規格が整っていたので,先に用意した予約語と組み合わせて簡単に作ることが出来ました.
github.com

↓少し変な部分もありますが,ハイライトが実現できています
f:id:wgg00sh:20171211122719p:plain

実行ができる

ここまでで,外部エディタでコーディングはできるようになったのですが,流石に実行する時だけProcessingIDEを起動するのは馬鹿らしいですよね.これも当然外部から実行できます.

Processingの実行ファイルと同じディレクトリにProcessing-Javaというプログラムがあり,これがProcessingのコンパイルなどを行っているので,エディタからこれを実行できるようにすれば実現できます.

Linuxでコマンドが使える場合,以下のシェルスクリプトで実行できます

#!/bin/sh
processing-java --sketch=`pwd` --run

Windowsの場合,batファイルを記述するのがメインになります.

@echo off
processing-java --sketch=%~dp0 --run

ただ,エディタによっては外部コマンドを実行する際のパス設定などがサポートされている場合もあります.

まとめ

公式エディタ(IDE)が使いづらくても,使いやすい環境を自分で作ることで解決できます.