EmacsをVisual Basic Editor並みのVBA開発環境にするvbasense.elを作りました
これは何?
経緯は別エントリに書いたので省きますが、VBAで開発する機会がありました。
visual-basic-modeを使ってEmacsで開発し始めたんですが、機能に不満で(特に入力補完)、
YAMYでEmacsっぽいキーバインドにすることでVisual Basic Editorを使うことにしました。
しかし、Emacsの機能が使えない不満はずっと抱えていたので、EmacsでVisual Basic Editor並みのVBA開発ができるvbasense.elを作りました。
特徴
入力補完
以下のコンテキストにおいて、Visual Basic Editorと同等かそれ以上の精度の入力補完が利用できます。
- 標準/クラス/フォームのモジュールのメンバ
- Implementsするインタフェース
- As/Newするクラス
- CreateObjectに渡すProgID
- Setする変数
- Enumな引数
詳しくは、デモを参照して下さい。
ヘルプ表示
ポイントしている要素についてのヘルプを、ポップアップ表示します。
メソッドシグネチャ表示
ポイントしているメソッドのシグネチャをミニバッファに表示します。
定義元ジャンプ
ポイントしているメソッドの定義元へタグジャンプできます。
Objectな変数の型推論
Visual Basic EditorではObject型の変数のメンバの補完はできませんでしたが、
本拡張では、特定のステートメントが記述された場合はオムニ補完できます。
詳しくは、デモを参照して下さい。
インタフェースメソッドの実装の自動化
VBAでオブジェクト指向開発する場合、実装(Implements)したインタフェースのメソッドは、
頭にインタフェース名を付加した名称でPrivateなメソッドとして定義を実装する必要がありますが、
とてもめんどいので自動挿入できるようにしました。
詳しくは、デモを参照して下さい。
デモ
本拡張を使ったVBAコーディングの様子のデモです。
画面が小さくて見づらいですが・・・。
インストール/設定
以下にまとめました。
https://github.com/aki2o/emacs-vbasense/blob/master/README-ja.md
その他
- 動作確認したEmacsは、GNU Emacs 24.2.1 (i386-mingw-nt5.1.2600) of 2012-12-08 on GNUPACK です。
- 文法チェックはできません。Visual Basic Editorにインポートして実施して下さい。
- GUIでのフォーム作成/修正もできません。Visual Basic Editor上で実施して下さい。
- Visual Basic Editorを併用してVBA開発する一つの解決策を別エントリに書きました。
- visual-basic-modeはEmacsWikiからダウンロードできます。
Enjoy!!!