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 文件并调用智能感知(即那个点)时,调试器不会.闯入我的类的方法。ICompletionSourceProviderICompletionSource

所以我的问题是:

  • 1-5 关于此截屏视频中解决的标准 Javascript Intellisense 的问题http://screencast.com/t/TwDlnpfOV0bX
  • 6 我们如何javascript通过额外的选项扩展标准智能感知?
  • 7 同一个班可以有两个ICompletionSourceProviderContentType吗?
4

1 回答 1

6

您的扩展未组合的原因是您尚未将其作为 MEF 组件添加到 .vsixmanifest 中。要添加它,

  1. 通过双击解决方案资源管理器中的文件打开 .vsixmanifest 设计器。
  2. 点击断言
  3. 点击右侧的“新建”
  4. 选择“Microsoft.VisualStudio.MefComponent”作为类型
  5. 选择“当前解决方案中的项目
  6. 选择您的扩展项目
于 2013-04-01T05:39:42.047 回答