内容提要
VisualStudio.Extensibility SDK发布了公开预览版,支持在Visual Studio Marketplace发布扩展,并实现了无需重启Visual Studio即可安装扩展的热加载功能。此外,还增加了配置扩展属性、创建自定义数据可视化工具窗口和集成LSP等功能。用户可以通过GitHub仓库获取示例代码。
延伸解读
热加载的实际影响与限制
热加载功能允许在不重启Visual Studio的情况下安装扩展,这显著提升了开发效率,尤其适合快速尝试新工具。但文章指出,该功能仅适用于使用VisualStudio.Extensibility编写的进程外扩展,传统扩展可能无法享受此便利。此外,微软计划在Marketplace中添加视觉标识以帮助用户识别支持热加载的扩展,但目前尚未实现。
配置方式的简化与代码集成
新版本允许直接在代码中配置扩展,使用强类型类和属性,并支持IntelliSense,避免了手动维护单独的VSIX清单文件。这减少了配置错误,并让扩展的元数据、激活条件等与代码更紧密地结合。构建时,Visual Studio会利用这些配置生成VSIX包,便于分享或发布。
调试可视化工具的灵活性提升
除了之前版本支持的模态调试器可视化工具,现在还可以创建非模态、可停靠的工具窗口形式的数据可视化工具。开发者可以根据调试场景选择合适的形式,例如将正则表达式匹配可视化工具停靠在IDE中,方便随时查看。这为复杂数据类型的调试提供了更灵活的展示方式。
LSP支持与项目系统查询增强
新增的语言服务器协议支持允许扩展集成语言服务器,从而为特定语言提供IntelliSense等功能。同时,增强的查询API增加了构建、重载、重命名项目等操作,以及创建/删除解决方案配置、查询文件夹和启动项目等能力。这些改进让扩展能更深入地与项目系统交互,但文章也鼓励开发者反馈所需的其他功能。
Q&A
VisualStudio.Extensibility SDK 公开预览版有哪些主要新功能?
主要新功能包括:支持在 Visual Studio Marketplace 发布扩展;新增热加载功能,无需重启 Visual Studio 即可安装扩展;增强扩展属性配置,可直接在代码中配置;支持创建可停靠的自定义数据可视化工具窗口;新增对语言服务器协议(LSP)的支持;增强查询 API 以更方便地查询项目系统。
如何在不重启 Visual Studio 的情况下安装扩展?
VisualStudio.Extensibility 提供了热加载功能,允许用户在不关闭和重启 Visual Studio 的情况下安装新扩展。该功能适用于任何使用 VisualStudio.Extensibility 编写的进程外扩展。
如何将扩展发布到 Visual Studio Marketplace?
使用 VisualStudio.Extensibility 构建扩展会生成一个独立的 VSIX 包。您可以在本地共享该 VSIX 供团队或组织安装,也可以将其发布到 Visual Studio Marketplace 以覆盖更广泛的用户。
如何配置 VisualStudio.Extensibility 扩展?
您可以直接在代码中配置扩展,使用强类型类和属性,并通过 IntelliSense 快速填写必需和可选值。例如,重写 ExtensionConfiguration 属性来设置元数据,如 ID、版本、发布者名称等。
VisualStudio.Extensibility 支持哪些调试器可视化工具?
VisualStudio.Extensibility 支持创建非模态/可停靠的调试器可视化工具窗口,可以停靠或浮动在 IDE 中。结合之前版本的模式化可视化工具,您可以为任何调试场景设计强大的可视化工具。
如何为扩展添加语言服务器协议(LSP)支持?
您可以创建语言服务器提供程序,并使用它来激活和与语言服务器交互。语言服务器提供程序也支持配置属性,可用于控制语言服务器适用的文件类型。
增强的查询 API 有哪些新功能?
增强的查询 API 新增了项目操作(生成、重新加载/卸载、重命名、保存)、解决方案操作(创建/删除解决方案配置)、文件夹和启动项目查询(查询信息、创建/删除)等功能。