【发布时间】:2018-06-03 00:38:39
【问题描述】:
如何强制刷新 Visual Studio 的代码编辑器?
我有一个 VSIX 扩展,它通过 VS 标记机制实现自定义着色。该扩展程序有一些设置,例如关闭着色。它们通过 DialogPage 机制集成到 VS 设置中,就像在 MSDN 示例中一样。我在 ITaggerProvider CreateTagger 实现中使用它们来决定是否应该使用标记器。
当我更改颜色设置时,打开的文档的颜色不会刷新。但是我可以关闭并重新打开它们,然后根据新设置的值对文档进行着色。 有没有办法告诉 Visual Studio 刷新代码编辑器并为其重新创建标记器?
【问题讨论】:
-
更改后是否保存设置/项目?即使在默认的代码编辑器中也没有找到刷新功能,也许您可以考虑自动重新打开代码编辑器或其他。
-
是的,我确实会在更改后保存我的设置。实际上我使用了一个派生自 DialogPage 的类。它使用VS默认机制来保存设置。
-
其实我已经找到了解决方法。您可以在 Options 类中声明事件 SettingsChanged 并在保存设置时引发(如果需要)。然后,您可以在其上订阅您的标记器,并在处理程序中引发 TagsChanged 事件。为防止内存泄漏,标记器应实现 IDisposable.Dispose 以取消订阅事件。这对我有用。我仍然认为它没有回答我原来的问题 - 如何刷新编辑器
标签: c# visual-studio visual-studio-2015 visual-studio-extensions vsix