2012-10-10 6 views
7

私はアプリケーション内でスクリプト機能を提供する必要があり、顧客は私たちのオブジェクトモデルを使ってその機能を拡張することができます。私はintellisenseで統合されたC#/ VB.Netエディタを提供することを望んでいましたが、AvalonEditやScintillaNetのような製品を見てから、真のコード補完を提供するようには見えず、独自のリストを提供できるAPIアイテムのポップアップ自動補完リストに表示されます。インテリセンスを備えたC#/ VB.Netエディタ - Roslyn、VSTA、または何か他のもの?

したがって、私はRoslynがこのような機能を提供しているのか疑問に思っていましたか?私が見たチュートリアルや例から、Roslynは実際にはコンパイラサービスだと思われます。

最後の手段として、顧客はVS Expressのようなものを使うことができますが、統合されたエディタは明らかに少し良いです。

(Visual Studio Tools for Applicationsも有望でしたが、オンラインリソースは数年前ですが、ドキュメンテーション/チュートリアルは存在しないため、これで空白を描いています)。

+0

あなたは便利なこの質問を見つけることがあります。 http://stackoverflow.com/questions/939841/what-is-the-visual-studio-shell-standalone-shell-good-for –

答えて

3

私は確かにこの分野の専門家ではありません。しかし、あなたが他の返事を受け取っていないので、私は一発を撮ります。

私は短い答えは "はい"だと思います。

AvalonEditとSharpDevelopのコードを見ると、コード補完は最も難しい部分の1つです。基本的には、どの項目を補完リストに含めるべきかを把握するために、コンパイラ(または、とにかくパーサー)を作成する必要があります。 Roslynは補完リストを作成するためのツールを提供しているようです。以前のバージョンでは、これらのツールはVSエディタに関連付けられていましたが、最新リリースでは独立しているとの発言がありました。もしそうなら、これらのツールはコード補完の実装に非常に役立ちます。

私は本当に詳細を調べていませんが、私はあなたと同じ目標をいくつか持っているので、Roslynは役立つように見えます。それほど多くはありません)。

2

"AvalonEdit、SharpDevelop、ScintillaNetのような製品を見た後、本当のコード補完インテリセンスを提供していないようです"という非常に興味深い主張をしました。 SharpDevelopは完全なIDEであり、Intellisenseの「本当の」コード補完を見つけるのはなぜですか?いくつかの証拠を提出しなければならない、またはその証拠が無効です。

あなただけのコンポーネントの二つの重要な部分で達成することができる達成したい何

  • あなたはコンテキストとコード補完のための要素を取得することが可能な言語パーサ、。これはRoslynが提供するものですが、Roslynはまだすべての既存のC#構文を解析するのに十分なほど成熟していません。 SharpDevelop(とMonoDevelop)は同じ目標を達成するNRefactoryを使用します。

  • 構文の強調表示をサポートするUI要素。これは、選択したUIフレームワークに基づいて、AvalonEditまたはScintillaNetによって実現されます。

@Mystere Manが指摘しているように、Visual Studio Shellはあなたにいくつかの支援を提供するかもしれません。しかし、個人的に私はそれについて多くを知らない。

+0

を私は同じことを考えました私はSharpDevelopのコード補完の欠陥を認識していません。 – bubba

+0

これは役に立つかもしれません:http://social.msdn.microsoft.com/Forums/en-US/roslyn/thread/78e6f820-8f9f-4da9-8a47-d46f846b0a11 – bubba

+0

応答と謝罪のおかげで - 私は間違ってSharpDevelopそれを削除しました。 –

0

コンポーネントに組み込まれているものの1つを使用するのは本当に大変でしたが、自分で実装することになりました。 RichTextBox APIを探索した後、このサポートを快適に構築できます。PreviewKeyDown/Upで試してみて、取り消しのサポートなどで作業のバッチを確実に実行してください。

関連する問題