更改设置后,在自定义编辑器视图上更新文本颜色

时间:2019-05-16 06:41:49

标签: c# editor vsix

我创建了一个VSIX扩展程序,作为自定义扩展程序的自定义编辑器。分类器应用语法高亮显示,并且效果很好,并且分类器在文档内的每个按键上都会被调用,因此颜色总是会更新。

有一个选项菜单,用户可以在其中为特定代码段设置自定义颜色。颜色保存在Settings.Settings文件中,分类器格式定义使用此文件中的值。

现在,在通过选项窗口设置颜色之后,编辑器应使用新颜色进行更新。这没有发生。

我尝试过的是获取活动的EnvDTE ProjectItem并重新加载,保存/关闭,重新加载项目,没有任何变化。新颜色将保存在设置中,分类器将获得这些颜色,即使文档更新并调用了分类器OnChange,它仍会应用旧颜色。当我再次打开选项菜单时,它将显示新的颜色。

我必须重新启动Visual Studio,以使Classifier实际更新编辑器中的颜色。

这是处理此问题的代码:

        Shell.ThreadHelper.ThrowIfNotOnUIThread();
        var dte = Shell.Package.GetGlobalService(typeof(SDTE)) as DTE;
        string path = dte.ActiveDocument.FullName;
        dte.ActiveDocument.Save();
        dte.ActiveDocument.Close();
        dte.ItemOperations.OpenFile(path);

0 个答案:

没有答案