Sublime、Vim、Emacs、AtomなどにIntelliSense機能を追加する「OmniSharp」、マイクロソフトがデモ
Sublime TextやVim、Emacsなど既存のテキストエディタに対して、マイクロソフトのVisual Studioが備えているIntelliSense機能を追加できるオープンソースソフトウェア「OmniSharp」のデモが、日本マイクロソフトが1月16日に開催したイベント「GoAzure」の基調講演で披露されました。
OmniSharpのデモを行ったのは、米マイクロソフト Principal Program ManagerのScott Hanselman氏。.NET CoreがオープンソースとなってMacOS XやLinuxに移植され、C#も使えるようになることを紹介した上で、「MacやLinuxでのソースコード修正は手間だ、IntelliSenseの機能がないから。それにMacOS X用のVisual Studioもない。その代わり、どんなエディタでもVisual Studioの機能を使えるようにしよう。それがコミュニティで開発されているOmniSharpだ」(Hanselman氏)と、OmniSharpの話題に。
OmniSharpはマイクロソフトが支援するオープンソースプロジェクトで、Hanselman氏自身や関連スタッフも関わっているとのこと。
OmniSharpは、Sublime Text、Atom、Emacs、Brackets、Vimなどのテキストエディタに対応。デモはMacOS X上のSublime Textを使って行われました。
変数の型を認識して候補を表示する
デモで強調されたのは、OmniSharpが提供するIntelliSense機能がソースコードの内容を認識して候補を表示する点です。以下、基調講演のデモ画面を引用します。
ソースコード上で変数iがStringとして定義されている場合、「i」を入力してピリオドを打つと、続いてString型に対応した候補が表示されます。
一方、ソースコード上で変数iがIntとして定義されている場合、「i」を入力してピリオドを打つと、今度はInt型に対応した候補が表示されるのです。
「これこそIntelliSenseだ」(Hanselman氏)
OmniSharpの本体はローカルWebサーバとして稼働しており、タイプした文字がサーバに送られると、候補テキストが送り返されるという仕組みになっています。サーバはテキストエディタに依存していないので、プラグインさえ作れば、OmniSharpは技術的にはどんなエディタとも組み合わせでも実現できると説明されています。