使用自定义ICompletionSourceProvider扩展VS2012 Javascript Intellisense

时间:2013-03-27 11:16:27

标签: visual-studio intellisense visual-studio-extensions

我创建了一个新的类,如下面的

[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文件并调用intellisense(使用那个.点)时,deubbger不会分为ICompletionSourceProviderICompletionSource方法我的课程。

所以我的问题是:

  • 1-5有关此截屏视频http://screencast.com/t/TwDlnpfOV0bX
  • 中解决的标准Javascript智能感知的问题
  • 6如何使用额外选项扩展标准javascript intellisense?
  • 7是否可以为同一个ICompletionSourceProvider提供两个ContentType类?

1 个答案:

答案 0 :(得分:6)

您的扩展程序没有合并的原因是您还没有将它作为MEF组件添加到.vsixmanifest中。要添加它,

  1. 双击解决方案资源管理器中的文件打开.vsixmanifest设计器。
  2. 点击断言
  3. 点击&#34; new&#34;在右侧
  4. 选择&#34; Microsoft.VisualStudio.MefComponent&#34;作为类型
  5. 选择&#34;在当前解决方案中投影
  6. 选择您的扩展项目