Visual Studio 2022 HTML 编辑器自定义 Intellisense - IHtmlCompletionListProvider
Visual Studio 2022 HTML Editor Custom Intellisense - IHtmlCompletionListProvider
我们正在尝试将 Visual Studio 2019 扩展迁移到 Visual Studio 2022。
扩展提供了几个功能,但一个不起作用的功能是“HtmlCompletionProvider”。
我们正在使用它在 VS2019 的 HTML 编辑器中提供自定义元素和属性。
这就是我们的补全 类 的定义方式。
[HtmlCompletionProvider("Children", "*")]
[ContentType("htmlx")]
[Name("DurandalElementsCompletionProvider")]
public class DurandalElementsCompletionProvider : IHtmlCompletionListProvider
接口在 Microsoft.WebTools.Languages.Html.Editor 程序集中定义。
这个接口允许我们插入现有的 VS2019 智能感知并提供额外的条目。
在 Visual Studio 2022 年内执行此操作的正确方法是什么?
没有我们可以通过谷歌搜索找到的文档。
我们最接近的解释是新 Visual Studio 正在使用定义在以下语言中的 LanguageService:
C:\Program Files\Microsoft Visual Studio22\Enterprise\Common7\IDE\Extensions\Microsoft\Web Tools\Languages\LanguageServers\Microsoft.WebTools.Languages.LanguageServer.Server.dll
我们假设 VS2022 不支持提供“HtmlCompletionProvider”的旧方法。
Angular 正在使用 IHtmlCompletionListProvider 作为它的扩展。
https://devblogs.microsoft.com/visualstudio/angular-language-service-for-visual-studio/
他们如何使用 IHTMLCompletionListProvider
的代码示例
他们基本上使用它作为代理来调用他们的 LanguageService。
据我所知,VS2022 没有 Angular 扩展(所以我们可以看看它是如何完成的)。
亲切的问候,
Goran Vukoja
我们解决了。
我们反编译了Microsoft.WebTools.Languages.Html.Editor.dll,看看默认的 HTMLCompletionListProvider 是如何定义的。
您应该使用 ContentType("html"),而不是 ContentType("htmlx").
[HtmlCompletionProvider("Children", "*")]
[ContentType("html")]
[Name("DurandalElementsCompletionProvider")]
public class DurandalElementsCompletionProvider : IHtmlCompletionListProvider
我们正在尝试将 Visual Studio 2019 扩展迁移到 Visual Studio 2022。 扩展提供了几个功能,但一个不起作用的功能是“HtmlCompletionProvider”。 我们正在使用它在 VS2019 的 HTML 编辑器中提供自定义元素和属性。
这就是我们的补全 类 的定义方式。
[HtmlCompletionProvider("Children", "*")]
[ContentType("htmlx")]
[Name("DurandalElementsCompletionProvider")]
public class DurandalElementsCompletionProvider : IHtmlCompletionListProvider
接口在 Microsoft.WebTools.Languages.Html.Editor 程序集中定义。
这个接口允许我们插入现有的 VS2019 智能感知并提供额外的条目。
在 Visual Studio 2022 年内执行此操作的正确方法是什么? 没有我们可以通过谷歌搜索找到的文档。
我们最接近的解释是新 Visual Studio 正在使用定义在以下语言中的 LanguageService: C:\Program Files\Microsoft Visual Studio22\Enterprise\Common7\IDE\Extensions\Microsoft\Web Tools\Languages\LanguageServers\Microsoft.WebTools.Languages.LanguageServer.Server.dll
我们假设 VS2022 不支持提供“HtmlCompletionProvider”的旧方法。
Angular 正在使用 IHtmlCompletionListProvider 作为它的扩展。
https://devblogs.microsoft.com/visualstudio/angular-language-service-for-visual-studio/
他们如何使用 IHTMLCompletionListProvider
的代码示例他们基本上使用它作为代理来调用他们的 LanguageService。
据我所知,VS2022 没有 Angular 扩展(所以我们可以看看它是如何完成的)。
亲切的问候, Goran Vukoja
我们解决了。
我们反编译了Microsoft.WebTools.Languages.Html.Editor.dll,看看默认的 HTMLCompletionListProvider 是如何定义的。 您应该使用 ContentType("html"),而不是 ContentType("htmlx").
[HtmlCompletionProvider("Children", "*")]
[ContentType("html")]
[Name("DurandalElementsCompletionProvider")]
public class DurandalElementsCompletionProvider : IHtmlCompletionListProvider