VisualStudio完成会话在删除完成集时已解除

本文关键字:删除 会话 VisualStudio | 更新日期: 2023-09-27 18:25:57

我正试图在VisualStudioIDE中扩展html补全。我在框架中见过它,它将html标记与自定义表达式相结合。我需要增加对这些表达的支持。问题是,当我实现我的CompletionSource为标记中的自定义元素提供补全时,在通过我的CompletionSource的AugmentCompletionSession的补全集中已经有一个特定于HtmlCompletionSet的CompletionSet。我应该添加我在CompletionSourceProvider上使用[Order(After = "default")]属性,以确保我的完成在html完成之后。

问题是,我不想在我的自定义元素上显示html完成中的任何内容。我想去掉整个HtmlCompletionSet

下面是我尝试的:

  1. 填写我自己的完成集
  2. 将我的完成集添加到完成集
  3. 检查是HtmlCompletionSet在吗
  4. 删除HtmlCompletionSet(如果存在)/更新完成集,使其为空

这将导致完成会话消失。我猜它是自动被驳回的。我该怎么办?有什么优雅的方法可以解决这个问题吗?

VisualStudio完成会话在删除完成集时已解除

扩展/修改html完成集的最佳方法是通过IHtmlCompletionListProvider添加新项,或者通过IHtmlCompletionListFilter过滤掉现有的完成项。传递给这些接口上的方法的HtmlCompletionContext应该为您提供足够的上下文来确定您需要什么。