From 5dbd5d890c0ba9733ad9b3be6c13f38e208652d7 Mon Sep 17 00:00:00 2001 From: WMJ Date: Thu, 29 Aug 2024 15:26:09 +0800 Subject: [PATCH] ! Allow exporting all syntax highlight styles by holding down Shift key before pressing Export button (#313) --- Codist/Config.cs | 12 +- .../SyntaxHighlightCustomizationWindow.cs | 3 +- Codist/Properties/Resources.Designer.cs | 21 +- Codist/Properties/Resources.en-US.resx | 49 +- Codist/Properties/Resources.resx | 19 +- Codist/Properties/Resources.zh-Hans.resx | 866 +++++++++--------- Codist/SyntaxHighlight/FormatStore.cs | 73 ++ 7 files changed, 580 insertions(+), 463 deletions(-) diff --git a/Codist/Config.cs b/Codist/Config.cs index dc045f82..c474c116 100644 --- a/Codist/Config.cs +++ b/Codist/Config.cs @@ -333,7 +333,7 @@ public static void ResetWrapTexts(List wrapTexts) { }); } - public void SaveConfig(string path, bool stylesOnly = false) { + public void SaveConfig(string path, bool stylesOnly = false, bool allStyles = false) { path = path ?? ConfigPath; try { var d = Path.GetDirectoryName(path); @@ -342,16 +342,17 @@ public void SaveConfig(string path, bool stylesOnly = false) { } object o; bool isDarkStyle = ServicesHelper.Instance.EditorFormatMap.GetEditorFormatMap(Constants.CodeText).GetBackgroundColor().IsDark(); + var styles = allStyles ? GetAllStyles() : GetCustomizedStyles(); if (stylesOnly) { o = new { Version = CurrentVersion, - Styles = GetCustomizedStyles() + Styles = styles }; } else { o = this; Version = CurrentVersion; - Styles = GetCustomizedStyles().ToList(); + Styles = styles.ToList(); } File.WriteAllText(path, JsonConvert.SerializeObject( o, @@ -373,6 +374,11 @@ public void SaveConfig(string path, bool stylesOnly = false) { Styles = null; } + IEnumerable GetAllStyles() { + return FormatStore.GetAllStyles() + .Select(i => new SyntaxStyle(i.Key, i.Value)); + } + IEnumerable GetCustomizedStyles() { return FormatStore.GetStyles() .Where(i => i.Value?.IsSet == true) diff --git a/Codist/Options/SyntaxHighlightCustomizationWindow.cs b/Codist/Options/SyntaxHighlightCustomizationWindow.cs index 53658088..1f6bdebe 100644 --- a/Codist/Options/SyntaxHighlightCustomizationWindow.cs +++ b/Codist/Options/SyntaxHighlightCustomizationWindow.cs @@ -1291,8 +1291,9 @@ void ExportTheme() { catch (System.Security.SecurityException) { } } try { + var fullExport = WpfHelper.IsShiftDown; if (d.ShowDialog() == true) { - Config.Instance.SaveConfig(d.FileName, true); + Config.Instance.SaveConfig(d.FileName, true, fullExport); _ThemeFolder = System.IO.Path.GetDirectoryName(d.FileName); } } diff --git a/Codist/Properties/Resources.Designer.cs b/Codist/Properties/Resources.Designer.cs index 73012482..97ee84a5 100644 --- a/Codist/Properties/Resources.Designer.cs +++ b/Codist/Properties/Resources.Designer.cs @@ -2621,7 +2621,8 @@ internal static string CMDT_SaveChanges { } /// - /// Looks up a localized string similar to Save syntax highlight theme.... + /// Looks up a localized string similar to Save syntax highlight theme... + ///Shift: Save built-in default styles as well. /// internal static string CMDT_SaveTheme { get { @@ -7709,6 +7710,15 @@ internal static string T_Spans { } } + /// + /// Looks up a localized string similar to Specify the location for saving the transformed markdown file. + /// + internal static string T_SpecifyLocation { + get { + return ResourceManager.GetString("T_SpecifyLocation", resourceCulture); + } + } + /// /// Looks up a localized string similar to Save screenshot file. /// @@ -7970,6 +7980,15 @@ internal static string T_TopGradient { } } + /// + /// Looks up a localized string similar to Transformation for file <NAME> failed.. + /// + internal static string T_TransformFailed { + get { + return ResourceManager.GetString("T_TransformFailed", resourceCulture); + } + } + /// /// Looks up a localized string similar to Trigger event. /// diff --git a/Codist/Properties/Resources.en-US.resx b/Codist/Properties/Resources.en-US.resx index a9443dad..826a33b6 100644 --- a/Codist/Properties/Resources.en-US.resx +++ b/Codist/Properties/Resources.en-US.resx @@ -402,13 +402,13 @@ Shift: Paste and select next (whole word) - ..\Resources\Dark Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\Dark Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\Resources\Light Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\Light Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\Resources\Simple Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\Simple Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 as parameter @@ -822,6 +822,12 @@ Use space to separate keywords. The following options allow adding more items to the Quick Info + + Add "Show Active Window Properties" command to File menu + + + Displays comprehensive information about the active window pane and its document + Add "Show Syntax Classification Info" command to Smart Bar @@ -1464,7 +1470,8 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject Confirm changes - Save syntax highlight theme... + Save syntax highlight theme... +Shift: Save built-in default styles as well Load a predefined simple theme @@ -1556,6 +1563,9 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject Type cast parentheses + + Apply to: + Background @@ -1778,10 +1788,10 @@ Use space to separate multiple search terms. Pale Light - ..\resources\light pale codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\resources\light pale codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\resources\dark pale codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\resources\dark pale codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 BIN @@ -2120,6 +2130,9 @@ Sent or received bytes per second through all network interfaces Task manager program parameter (optional): + + Delete Containing Statement + Wrap in <if> @@ -2411,9 +2424,6 @@ Expression too long Set Next Statement - - Apply to: - FilePath @@ -2423,12 +2433,6 @@ Expression too long Displays containing type for cross referenced symbols in XML Doc - - Add "Show Active Window Properties" command to File menu - - - Displays comprehensive information about the active window pane and its document - Taken Address (Unsafe): @@ -2456,9 +2460,6 @@ Expression too long Squiggle - - Delete Containing Statement - Open Output Folder @@ -2777,14 +2778,14 @@ Ctrl: toggle and select next Ctrl: Explicit assignment only Shift: Assign by default only + + Extract Lines Containing Selection + Copy all lines containing current selection into a new window Shift: Match whole word Ctrl: Match case - - Extract Lines Containing Selection - Code @@ -2795,6 +2796,12 @@ Ctrl: Convert underscore("_") separated words to capitalized words HTML files|*.html|All files|*.* + + Specify the location for saving the transformed markdown file + + + Transformation for file <NAME> failed. + <NAME> is not saved. Discard its changes? diff --git a/Codist/Properties/Resources.resx b/Codist/Properties/Resources.resx index 865535fe..826a33b6 100644 --- a/Codist/Properties/Resources.resx +++ b/Codist/Properties/Resources.resx @@ -402,13 +402,13 @@ Shift: Paste and select next (whole word) - ..\Resources\Dark Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\Dark Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\Resources\Light Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\Light Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\Resources\Simple Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\Simple Codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 as parameter @@ -1470,7 +1470,8 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject Confirm changes - Save syntax highlight theme... + Save syntax highlight theme... +Shift: Save built-in default styles as well Load a predefined simple theme @@ -1787,10 +1788,10 @@ Use space to separate multiple search terms. Pale Light - ..\resources\light pale codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\resources\light pale codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\resources\dark pale codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\resources\dark pale codist.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 BIN @@ -2795,6 +2796,12 @@ Ctrl: Convert underscore("_") separated words to capitalized words HTML files|*.html|All files|*.* + + Specify the location for saving the transformed markdown file + + + Transformation for file <NAME> failed. + <NAME> is not saved. Discard its changes? diff --git a/Codist/Properties/Resources.zh-Hans.resx b/Codist/Properties/Resources.zh-Hans.resx index 5f08e0ea..c271ea0f 100644 --- a/Codist/Properties/Resources.zh-Hans.resx +++ b/Codist/Properties/Resources.zh-Hans.resx @@ -117,86 +117,8 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 列出成员... - - - 关闭 - - - 复制类和符号名称 - - - 复制符号名称 - - - 查找所有引用 - - - 查找调用方... - - - 查找构造函数调用方... - - - 查找继承的类... - - - 查找扩展方法... - - - 查找 <TYPE> 的扩展方法... - - - 查找接口实现... - - - 查找以实例为参数的方法... - - - 查找生成实例的成员... - - - 列出 <TYPE> 的成员... - - - 查找具有相同签名的方法... - - - 查找重载方法... - - - 查找引用的符号... - - - 查找引用... - - - 查找名称带有 <NAME> 的符号... - - - 查找类型引用... - - - 转到 <TYPE> - - - 转到定义 - - - 转到成员 - - - 转到符号 - - - 转到类型 - - - 固定 - - - 选择代码 + + 选中所有文本 添加并行监视 @@ -213,15 +135,24 @@ 清除筛选条件 + + 关闭 + 注释选中内容 右键:注释整行 + + 复制类和符号名称 + 复制选中文本 右键:复制整行 Ctrl: 去除行首缩进 + + 复制符号名称 + 剪切选中文本 右键:剪切整行 @@ -254,9 +185,54 @@ Shift:删除并选中下一项(整个单词) 查找... + + 查找所有引用 + + + 查找调用方... + + + 查找构造函数调用方... + + + 查找继承的类... + + + 查找扩展方法... + + + 查找 <TYPE> 的扩展方法... + + + 查找接口实现... + 在文件中查找... + + 查找以实例为参数的方法... + + + 查找生成实例的成员... + + + 列出成员... + + + 列出 <TYPE> 的成员... + + + 查找具有相同签名的方法... + + + 查找重载方法... + + + 查找引用的符号... + + + 查找引用... + 查找下一个选中文本 Ctrl:匹配大小写 @@ -264,6 +240,12 @@ Shift:匹配整个单词 Alt:在下一个匹配位置插入光标 右键:“查找及替换”菜单... + + 查找名称带有 <NAME> 的符号... + + + 查找类型引用... + 格式化文档 @@ -274,13 +256,28 @@ Alt:在下一个匹配位置插入光标 文本格式... 自动排版选中文本、编码解码、更改大小写等 + + 转到 <TYPE> + 转到声明 + + 转到定义 + 转到定义 右键:查看定义 + + 转到成员 + + + 转到符号 + + + 转到类型 + 生成新的 GUID 提示:要创建一个新的 GUID,输入并选中“guid”(不带引号),然后执行本命令 @@ -319,6 +316,9 @@ Alt:在下一个匹配位置插入光标 Ctrl:粘贴并选中下一项 Shift:粘贴并选中下一项(整个单词) + + 固定 + 重命名符号... @@ -340,6 +340,9 @@ Shift:粘贴并选中下一项(整个单词) 选择所有 + + 选择代码 + 选择指令区域 @@ -397,9 +400,6 @@ Shift:粘贴并选中下一项(整个单词) 转为大写 - - 选中所有文本 - 作为参数 @@ -445,6 +445,9 @@ Shift:粘贴并选中下一项(整个单词) 代码行数: + + 成员 {count} (继承 {inherited}) + 方法 @@ -457,9 +460,6 @@ Shift:粘贴并选中下一项(整个单词) 重载: - - 成员 {count} (继承 {inherited}) - 生成位置 @@ -508,6 +508,9 @@ Shift:粘贴并选中下一项(整个单词) 加载... + + 用浏览器打开捐赠 Codist 项目的网页 + 发表建议或提交问题报告 @@ -523,74 +526,101 @@ Shift:粘贴并选中下一项(整个单词) 使用以下按钮备份你的配置,配置文件可共享给其他伙伴 + + 通过 PayPal 捐赠 + + + 建议的捐赠金额为人民币 49 元,但是,您可以根据您的经济状况,爱捐多少就捐多少 + + + 更改将应用到新打开的文档窗口上,当前打开的文档窗口将不受影响 + 特性控制 + + 使用以下复选框切换 Codist 的功能特性: + 常规 最近发布版本: + + 从文件恢复配置... + + + 为 C# 和 Markdown 语言提供增强的导航栏 + 项目网站: + + 提供加强的代码工具提示 + + + 报告 Codist 的错误和建议: + + + 将配置备份到文件... + + + 在滚动条上显示其它标记 + + + 在代码编辑器中显示动态的浮动工具栏 + + + 支持 Codist! + + + 提供高级语法突出显示和注释标记器 + + + 感谢您使用 Codist + 匿名类型: 方法参数 - - - 参数 <N> 参数 <N> + + + 程序集: 特性: - - 字数 - - - 颜色 + + 特性 捕获的变量 - - 超级代码提示 - - - 智能工具条 - - - 滚动条标记 - - - 返回匿名方法 - - - + + 字数 - - 返回 + + 颜色 - - 读取变量: + + 声明变量: - - 导航栏 + + 委托签名 - - 高级语法样式 + + 借用文档: #region 结束 @@ -610,6 +640,9 @@ Shift:粘贴并选中下一项(整个单词) Enum 基础类型: + + 显式实现接口: + 散列值 @@ -619,23 +652,23 @@ Shift:粘贴并选中下一项(整个单词) 接口: + + (继承) + lambda 表达式 - - 借用文档: - - - 委托签名 + + 可能是... - - 声明变量: + + 可能是 - - 显式实现接口: + + 参数 成员: @@ -646,9 +679,36 @@ Shift:粘贴并选中下一项(整个单词) 名称空间: + + 导航栏 + + + 读取变量: + + + 返回 + + + 返回匿名方法 + + + + + + 滚动条标记 + + + 智能工具条 + + + 超级代码提示 + 符号在以下项目中不可用: + + 高级语法样式 + 文本 @@ -658,21 +718,6 @@ Shift:粘贴并选中下一项(整个单词) 类型参数: - - 可能是 - - - 参数 - - - 可能是... - - - 特性 - - - (继承) - 基类: @@ -718,27 +763,24 @@ Shift:粘贴并选中下一项(整个单词) - - 感谢您使用 Codist - - - 支持 Codist! - 示例 - - 参见 + + 备注 返回值 - - 备注 + + 参见 搜索标题 + + 打开配置高级语法样式的对话框窗口 + 添加 @@ -763,9 +805,6 @@ Shift:粘贴并选中下一项(整个单词) 更改 - - 打开配置高级语法样式的对话框窗口 - 显示更多信息项 @@ -884,21 +923,6 @@ Shift:粘贴并选中下一项(整个单词) C# 导航栏的成员列表(下拉菜单) - - 启用注释标记器 - - - 加载配置文件时出错: - - - 加载 Codist 配置文件... - - - 加载的配置文件由 Codist 的较新版本创建,某些项可能未正确加载 - - - 保存 Codist 配置文件... - 此页面的选项更改 C# 代码工具提示的内容 @@ -908,71 +932,8 @@ Shift:粘贴并选中下一项(整个单词) 如果一个成员不是公共实例的,则显示其声明信息,以及事件或委托签名 - - 提供高级语法突出显示和注释标记器 - - - 建议的捐赠金额为人民币 49 元,但是,您可以根据您的经济状况,爱捐多少就捐多少 - - - 更改将应用到新打开的文档窗口上,当前打开的文档窗口将不受影响 - - - 使用以下复选框切换 Codist 的功能特性: - - - 从文件恢复配置... - - - 为 C# 和 Markdown 语言提供增强的导航栏 - - - 提供加强的代码工具提示 - - - 报告 Codist 的错误和建议: - - - 将配置备份到文件... - - - 在滚动条上显示其它标记 - - - 在代码编辑器中显示动态的浮动工具栏 - - - 显示当前成员实现的接口成员 - - - 接口成员 - - - 显示接口的成员 - - - 接口 - - - 显示成员实现的接口 - - - 限制内容尺寸 - - - 限制代码提示内容的最大尺寸,避免提示窗口占满屏幕 - - - 行号 - - - 在滚动条上绘制行号 - - - 代码行数 - - - 接口实现 + + 启用注释标记器 可执行文件(*.exe)|*.exe @@ -1055,24 +1016,57 @@ Shift:粘贴并选中下一项(整个单词) 如果当前符号中不存在文档,则显示基类或接口对应的 XML 文档注释 - - 手动显示智能工具栏 + + 接口实现 - - 在滚动条上绘制长方法的名称 + + 显示当前成员实现的接口成员 + + + 接口成员 + + + 显示接口的成员 + + + 接口 + + + 显示成员实现的接口 + + + 限制内容尺寸 + + + 限制代码提示内容的最大尺寸,避免提示窗口占满屏幕 + + + 行号 + + + 在滚动条上绘制行号 + + + 代码行数 + + + 在导航栏的成员列表下方和工具提示中显示当前类型或成员的行数 + + + 定位用于打开搜索结果的 Web 浏览器 长方法的名称 + + 在滚动条上绘制长方法的名称 + 提示:为了获得最佳的文本渲染效果,建议使用 MacType。 https://github.com/snowie2000/mactype/releases - - 定位用于打开搜索结果的 Web 浏览器 - - - 在导航栏的成员列表下方和工具提示中显示当前类型或成员的行数 + + 手动显示智能工具栏 更改选择后,不要自动显示Smart Bar,请结合以下选项! @@ -1125,6 +1119,12 @@ https://github.com/snowie2000/mactype/releases 目前,导航栏仅适用于C#和 MarkDown 文档 + + 用于访问导航栏成员列表的默认快捷键: +Ctrl+1, Ctrl+1: Edit.SearchClassMember +Ctrl+1, Ctrl+2: Edit.SearchDeclaration +Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject + 以上选项将在重新生成导航栏时生效 @@ -1215,6 +1215,12 @@ https://github.com/snowie2000/mactype/releases 显示 <exception/> 文档注释的内容 + + 显示参数名称而不是参数类型 + + + 在方法参数列表中显示参数名称 + 显示 <remarks/> 文档注释 @@ -1251,17 +1257,11 @@ https://github.com/snowie2000/mactype/releases 在导航栏上显示项的代码提示 - - 在导航栏上的成员列表中显示语法节点(例如,foreach、while、赋值和其他语句) - 语法细节 - - 在方法参数列表中显示参数名称 - - - 显示参数名称而不是参数类型 + + 在导航栏上的成员列表中显示语法节点(例如,foreach、while、赋值和其他语句) 语法分析调试 @@ -1290,20 +1290,17 @@ https://github.com/snowie2000/mactype/releases 使用 Shift 键切换智能工具栏的显示 - - URL 模式 - - - 使用 %u 表示搜索引擎 URL + + 上边距: - - 如上面的值为 0,表示不限大小 + + 此选项每行代码上方添加边距 - - 显示类型参数的信息 + + 不显示 #region 名称的非字母字符 - - 类型参数 + + 不显示 #region 名称的非字母字符,例如,“====”、“****”之类的标记 类型名称 @@ -1311,21 +1308,27 @@ https://github.com/snowie2000/mactype/releases 在滚动条上绘制声明类型的名称 - - 不显示 #region 名称的非字母字符,例如,“====”、“****”之类的标记 + + 类型参数 - - 不显示 #region 名称的非字母字符 + + 显示类型参数的信息 - - 此选项每行代码上方添加边距 + + 如上面的值为 0,表示不限大小 - - 在导航栏的成员列表中显示字段和属性的初始值 + + URL 模式 + + + 使用 %u 表示搜索引擎 URL 字段和属性的初始值 + + 在导航栏的成员列表中显示字段和属性的初始值 + 联网搜索 @@ -1336,24 +1339,18 @@ https://github.com/snowie2000/mactype/releases Codist 配置文件|*.json|所有文件|*.* -Ctrl+1, Ctrl+1: Edit.SearchClassMember -Ctrl+1, Ctrl+2: Edit.SearchDeclaration -Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject - - - 引用符号的代码: - - 复制到 <NAME> 后面 + + 加载配置文件时出错: - - 复制到 <NAME> 前面 + + 加载 Codist 配置文件... - - 移动到 <NAME> 后面 + + 加载的配置文件由 Codist 的较新版本创建,某些项可能未正确加载 - - 移动到 <NAME> 前面 + + 保存 Codist 配置文件... 打开文件夹 @@ -1367,32 +1364,29 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject 所属程序集: - - 打开浏览器搜索选中内容时出错: - - - 关闭提醒 + + 复制到 <NAME> 后面 - - 查看使用说明 + + 复制到 <NAME> 前面 - - 查看更新说明 + + 移动到 <NAME> 后面 - - 这是 Codist 第一次在你的 Visual Studio 上运行,请点击这里 + + 移动到 <NAME> 前面 - - + + 引用符号的代码: - - 保存代码窗口截图 + + 打开浏览器搜索选中内容时出错: - - Codist 已经更新到 <VERSION>,请点击这里 + + 关闭提醒 - - 无法保存屏幕截图到 <NAME>。 + + 查看使用说明 保存代码窗口截图... @@ -1400,24 +1394,42 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject 查找类成员 + + 查看更新说明 + 所有语言 + + 这是 Codist 第一次在你的 Visual Studio 上运行,请点击这里 + + + Codist 已经更新到 <VERSION>,请点击这里 + 通用 要配置高级语法样式,请先打开一个代码文件,然后再执行此命令。 + + 无法保存屏幕截图到 <NAME>。 + 选项 + + + PNG 图像文件 (*.png)|*.png 选中代码的样式 + + 保存代码窗口截图 + 符号标记 @@ -1433,6 +1445,25 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject 标签 + + 加载为暗黑编辑环境设计的预定义主题 + + + 加载为光亮编辑环境设计的预定义主题 + + + 加载语法样式主题... + + + 重置语法样式主题为默认样式... + + + 保存语法样式主题... +Shift: 导出主题包含开发环境主题的样式 + + + 加载预定义的简单主题 + 粗体 @@ -1472,86 +1503,53 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject 下划线 - - 加载为暗黑编辑环境设计的预定义主题 - - - 加载为光亮编辑环境设计的预定义主题 - - - 加载语法样式主题... - - - 语法样式配置: - - - 样式: - - - 要配置其它语法样式,在代码窗口点击相应语法样式所在的位置,再切换到本窗口 - - - 语法样式: - - - 标签: - - - 从上到下渐变 - - - 净色 - - - 尺寸: - - - 从右到左渐变 + + 应用到本地方法 - - 预定义的主题: + + 应用到非私有的字段 - - 保存 Codist 高级语法样式配置文件... + + 使用粗体 - - 未设置透明度 + + 将语义相关的标点符号和运算符标记为粗体 - - 透明度: + + 突出显示括号 - - 未设置 + + 与分支相关的括号 - - 加载 Codist 高级语法样式配置文件... + + 内容 - - 从左到右渐变 + + 声明类或成员的括号 - - 文本颜色 + + 与循环结构相关的括号 - - 字体: + + 成员声明的特殊样式 - - 在加载语法样式配置文件时出错: + + 方法参数的括号 - - 标签可尾随标点 + + 与资源管理和异常相关的括号 - - 默认值 + + 标签 - - 您是否确认要将语法样式重置为默认值? + + 标签和内容 - - 注释标签设置: + + 转换类型的括号 - - 区分标签大小写 + + 应用于: 背景颜色 @@ -1565,80 +1563,89 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject 从下到上渐变 - - 应用于: + + 区分标签大小写 - - 转换类型的括号 + + 注释标签设置: - - 标签 + + 您是否确认要将语法样式重置为默认值? - - 标签和内容 + + 默认值 - - 与资源管理和异常相关的括号 + + 标签可尾随标点 - - 方法参数的括号 + + 在加载语法样式配置文件时出错: - - 成员声明的特殊样式 + + 字体: - - 与循环结构相关的括号 + + 文本颜色 - - 声明类或成员的括号 + + Codist 语法样式配置文件|*.styles|所有文件|*.* - - 内容 + + 从左到右渐变 - - 突出显示括号 + + 加载 Codist 高级语法样式配置文件... - - 与分支相关的括号 + + 当前尚未定义注释标签。请使用“添加”按钮定义新的注释标签。 - - 使用粗体 + + 当前的语法类型未有对应的语法样式,请使用 Visual Studio 安装程序安装对应的工作负载。 - - 将语义相关的标点符号和运算符标记为粗体 + + 在代码窗口的当前位置没有对应的语法标记。 - - 应用到非私有的字段 + + 未设置 - - 应用到本地方法 + + 透明度: - - 撤销改变 + + 未设置透明度 - - 加载预定义的简单主题 + + 预定义的主题: - - 保存语法样式主题... + + 从右到左渐变 - - 重置语法样式主题为默认样式... + + 保存 Codist 高级语法样式配置文件... - - 确认更改 + + 尺寸: - - Codist 语法样式配置文件|*.styles|所有文件|*.* + + 净色 - - 当前尚未定义注释标签。请使用“添加”按钮定义新的注释标签。 + + 样式: - - 当前的语法类型未有对应的语法样式,请使用 Visual Studio 安装程序安装对应的工作负载。 + + 语法样式配置: - - 在代码窗口的当前位置没有对应的语法标记。 + + 要配置其它语法样式,在代码窗口点击相应语法样式所在的位置,再切换到本窗口 + + + 语法样式: + + + 标签: + + + 从上到下渐变 名称: @@ -1652,21 +1659,12 @@ Ctrl+1, Ctrl+3: Edit.SearchDeclarationInProject 样式主题: - - 用浏览器打开捐赠 Codist 项目的网页 - - - 通过 PayPal 捐赠 - - - 上边距: + + 打开作者的微信收款码 微信扫码捐赠 - - 打开作者的微信收款码 - 更改开发环境布局 @@ -2760,14 +2758,14 @@ Ctrl: 切换标记并选择下一处 Ctrl: 仅显示显式赋值的参数 Shift: 仅显式默认赋值的参数 + + 提取包含选中文字的行 + 将文档中所有包含当前选中文字内容的行复制到一个新窗口 Shift: 匹配整个单词 Ctrl: 匹配大小写 - - 提取包含选中文字的行 - 代码 @@ -2778,6 +2776,12 @@ Ctrl: 将下划线分隔的单词转换为首字母大写的单词 网页文件|*.html|所有文件|*.* + + 指定转换所得的文件保存位置 + + + 文件 <NAME> 转换失败。 + <NAME> 尚未保存。 是否放弃更改过的内容? diff --git a/Codist/SyntaxHighlight/FormatStore.cs b/Codist/SyntaxHighlight/FormatStore.cs index 681de677..282197a7 100644 --- a/Codist/SyntaxHighlight/FormatStore.cs +++ b/Codist/SyntaxHighlight/FormatStore.cs @@ -136,6 +136,79 @@ public static IReadOnlyDictionary GetStyles() { return __SyntaxStyleCache; } + public static IReadOnlyDictionary GetAllStyles() { + var d = new Dictionary(__SyntaxStyleCache.Count, StringComparer.OrdinalIgnoreCase); + foreach (var item in __SyntaxStyleCache) { + if (item.Value.IsSet) { + d.Add(item.Key, item.Value); + } + } + var efm = ServicesHelper.Instance.EditorFormatMap.GetEditorFormatMap(Constants.CodeText); + var cfm = ServicesHelper.Instance.ClassificationFormatMap.GetClassificationFormatMap(Constants.CodeText); + foreach (var item in cfm.CurrentPriorityOrder) { + if (item == null || IsFormattableClassificationType(item) == false) { + continue; + } + var c = cfm.GetEditorFormatMapKey(item); + var r = efm.GetProperties(c); + SyntaxStyle s = d.TryGetValue(c, out var cs) + ? MergeSyntaxStyle(c, r, cs) + : MakeSyntaxStyleFromResourceDictionary(c, r); + if (s.IsSet) { + d[c] = s; + } + } + return d; + + SyntaxStyle MergeSyntaxStyle(string name, ResourceDictionary rd, StyleBase style) { + var s = new SyntaxStyle(name, style); + if (s.Bold == null) { + s.Bold = rd.GetBold(); + } + if (s.Italic == null) { + s.Italic = rd.GetItalic(); + } + if (s.ForeColor.A == 0) { + s.ForeColor = rd.GetColor(); + } + if (s.BackColor.A == 0) { + s.BackColor = rd.GetBackgroundColor(); + } + var tds = rd.GetTextDecorations(); + if (tds != null) { + foreach (var td in tds) { + switch (td.Location) { + case TextDecorationLocation.Underline: s.Underline = true; break; + case TextDecorationLocation.OverLine: s.OverLine = true; break; + case TextDecorationLocation.Strikethrough: s.Strikethrough = true; break; + } + } + } + return s; + } + + SyntaxStyle MakeSyntaxStyleFromResourceDictionary(string name, ResourceDictionary rd) { + var s = new SyntaxStyle(name) { + Bold = rd.GetBold(), + Italic = rd.GetItalic(), + ForeColor = rd.GetColor(), + BackColor = rd.GetBackgroundColor() + }; + var tds = rd.GetTextDecorations(); + if (tds != null) { + foreach (var td in tds) { + switch (td.Location) { + case TextDecorationLocation.Underline: s.Underline = true; break; + case TextDecorationLocation.OverLine: s.OverLine = true; break; + case TextDecorationLocation.Strikethrough: s.Strikethrough = true; break; + } + } + } + + return s; + } + } + /// /// Get descendant s of a given . ///