2

次のような新しいクラスを作成しました

[Order(Before = "High")] [Export(typeof(ICompletionSourceProvider))]
[ContentType("JavaScript"), Name("EnhancedJavaScriptCompletion")] 
internal sealed class JavaScriptCompletionSourceProvider 
   : ICompletionSourceProvider 
{ } 

そしてそのCompletionSource

internal sealed class CompletionSource : ICompletionSource, IDisposable
{
    public void AugmentCompletionSession(ICompletionSession session, IList<CompletionSet> completionSets)
    {
    }
    public void Dispose()
    {
    }
}

これらは両方ともVisual Studio Packageプロジェクトに追加されます。したがって、(F5を使用して)デバッグしようとすると、デバッグシンボルがロードされ、デバッグが停止していることがわかります。

protected override void Initialize()
{
    Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString()));
    base.Initialize();
}

ただし、.jsファイルを編集していて、インテリセンスを呼び出している場合(つまり、そのドットを使用して)、デバガーはクラスのメソッドにも.侵入しICompletionSourceProviderません。ICompletionSource

だから私の質問は:

  • 1-5このスクリーンキャストで扱われる標準のJavascriptIntellisenseに関する質問http://screencast.com/t/TwDlnpfOV0bX
  • javascript6追加のオプションを使用して、標準のインテリセンスをどのように拡張できますか?
  • 7ICompletionSourceProvider同じクラスに2つのクラスを設定することはできContentTypeますか?
4

1 に答える 1

6

拡張機能が作成されない理由は、拡張機能をMEFコンポーネントとして.vsixmanifestに追加していないためです。追加するには、

  1. ソリューションエクスプローラーでファイルをダブルクリックして、.vsixmanifestデザイナーを開きます。
  2. クリックアサート
  3. 右側の「新規」をクリックします
  4. タイプとして「Microsoft.VisualStudio.MefComponent」を選択します
  5. 「現在のソリューションのプロジェクト」を選択します
  6. 拡張プロジェクトを選択してください
于 2013-04-01T05:39:42.047 に答える