EmacsをVisual Basic Editor並みのVBA開発環境にするvbasense.elを作りました

これは何?

経緯は別エントリに書いたので省きますが、VBAで開発する機会がありました。
visual-basic-modeを使ってEmacsで開発し始めたんですが、機能に不満で(特に入力補完)、
YAMYEmacsっぽいキーバインドにすることでVisual Basic Editorを使うことにしました。
しかし、Emacsの機能が使えない不満はずっと抱えていたので、EmacsVisual Basic Editor並みのVBA開発ができるvbasense.elを作りました。

特徴

入力補完

以下のコンテキストにおいて、Visual Basic Editorと同等かそれ以上の精度の入力補完が利用できます。

  • 標準/クラス/フォームのモジュールのメンバ
  • Implementsするインタフェース
  • As/Newするクラス
  • CreateObjectに渡すProgID
  • Setする変数
  • Enumな引数

f:id:aki2o:20140110210820p:plain

詳しくは、デモを参照して下さい。

ヘルプ表示

ポイントしている要素についてのヘルプを、ポップアップ表示します。

f:id:aki2o:20140110211005p:plain

メソッドシグネチャ表示

ポイントしているメソッドのシグネチャをミニバッファに表示します。

f:id:aki2o:20140110211058p:plain

定義元ジャンプ

ポイントしているメソッドの定義元へタグジャンプできます。

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!!!