読者です 読者をやめる 読者になる 読者になる

Igor Proでプロシージャの配色を変えて楽しく作業する

Igor Pro

はじめに

前回はIgor Proから外部のエディタを呼び出しましたが,今回はIgor Pro内部で楽しくプログラミングするためのプロシージャを紹介します.

f:id:ryotako:20160922140226p:plain

Igor Proではプログラムのキーワードは青,コメントは赤,といったようにプログラムの要素に自動で色が付きます(シンタックスハイライト).実はこのシンタックスハイライトの色はユーザーの好みで変えることができて,

SetIgorOption colorize,keywordColor=(28928,40448,1792)

のようにすると色が変わります*1

この場合はFunctionForIfのようなキーワードの色がデフォルトの青から黄緑に変更されます.

しかし,(28928,40448,1792)という数字の組(16bit RGB値)から「黄緑」を連想するのは多くのIgor Proユーザにとって困難です. また,プログラムで色を指定するために16bitのRGB値を指定する,というのはあまり一般的でなく,他のエディタで使っていたシンタックスハイライトの色を移植するのも面倒です.

そこで,Igor Proのシンタックスハイライトの色を簡単に指定するためのプロシージャを作りました. github.com

使い方

まず例によって,上記のサイトからSyntaxColor.ipfをダウンロードしてIgor Proに読み込んでください.

f:id:ryotako:20160910201958p:plain

そうすると,以下の5つの方法でIgor Proのシンタックスハイライトの色が変更できるようになります.

  • 上図のように,メニューバーからカラーパレットで色を選ぶ.
  • SyntaxColor#rgb16("string",1,39321,19939) のように16bitのRGB値を指定する.
  • SyntaxColor#rgb8("operation",220,20,60) のように8bitのRGB値を指定する.
  • SyntaxColor#hex("function" ,"#FF69B4") のように16進トリプレット表記で指定する.
  • SyntaxColor#x11("pound", "DarkTurquoise") のようにX11の色名称で指定する.

16進トリプレット表記X11の色名称についてはWikipediaのこちらの項目(ウェブカラー - Wikipedia)を参照してください.

8bit RGB値16進トリプレット表記が使えるので,他のエディタで使っている色設定の移植も簡単にできます.

色付け可能なIgor Proの構文要素はkeyword, comment, string, operation, function, poundの6種類です. これらの色を変更する関数(or マクロ)を作成したら,関数の名前をColorSchemeで始まるものにしておくと,自動検出されてSyntaxColor.ipfのメニューから呼び出せるようになるので便利です.

注意点

シンタックスハイライトの色は関数で変更することができますが,ウィンドウの背景色と地の文の色は手動で変える必要があります.

背景色はメニューの「プロシージャ」→「ドキュメント設定」→「背景色」,地の文はメニューの「プロシージャ」→「テキストカラー」から色が設定できます.

なお,シンタックスハイライトの色はIgor Proを終了するとリセットされてしまいます.

メニューバーからカラーパレットで色を指定していた場合,メニューのSave Colorschemeを選ぶことで,色設定がメインプロシージャウィンドウにマクロとして書き出されます.このマクロを実行することで,Igor Proを再起動した際にも色設定を再現できるようになります.

追記 (2016/11/21)

Igor Pro 7だと普通に設定できるみたいです.

f:id:ryotako:20161121153150p:plain

*1:この関数を実行後,ウィンドウを再描画させる必要があります.プロシージャウィンドウをスクロールするか,Windowsの場合は他のウィンドウを前面において一度文字を隠すと再描画されます.