Viasfora
彩虹括号,关键字高亮,转义符、占位符特殊颜色
4.2.188版本
官网/GitHub
说明
此篇为Viasfora的Github上Wiki中的官方功能介绍,其官网上的功能介绍也是指向此处的链接。
这里对Viasfora提供的各类功能详细介绍了一番。
这里还有一篇对Viasfora设置中各项的说明。
本篇文章编写时间为2019年4月11日,对应4.2.188版本。
文章目录
- Control Flow Keywords(流程控制关键字)
- Extension Developers(开发人员扩展工具)
- LINQ Keywords(LINQ关键字)
- Other Features(其他功能)
- Outline Selection
- Presentation Mode(演示模式)
- Rainbow Braces(彩虹括号)
- Rainbow Options(彩虹选项)
- String Sequences(字符串序列)
- Text Obfuscation(文本模糊)
- Themes(主题)
- User Outlining(设置折叠区域)
- Visibility Keywords(可见性关键字)
- XML Editor Extensions(XML编辑扩展)
Control Flow Keywords(流程控制关键字)
自定义在VS编辑器中与控制流相关的关键字的呈现方式。 您可以在每种语言中选择对哪些控制流关键字生效,可以通过VS的“选项 – 环境 – 字体和颜色”中的“Viasfora Flow Control Keyword”来自定义设置这些关键字呈现的颜色(也可以通过Viasfora自身设置中的“Flow Control Keywords”自定义颜色)。
Extension Developers(开发人员扩展工具)
Viasfora具有一些可以帮助开发人员创建专注于文本编辑器的Visual Studio扩展。
(个人认为没啥大用的一个功能)
-
Editor Margin
(在VS文本编辑框下方增加一个“Buffer Graph”条)
使用Editor Margin,您可以轻松了解指定的文本视图的重要方面:-
查看哪些文本缓冲区(text buffers)构成了Buffer Graph:
点击上图红色圆圈处可以打开一个只读文件,此文件是当前页面的复制,并对应左侧选择框中选择的buffer。 -
所选文本缓冲区(text buffer)(就是当前页面)的内容类型树的结构:
-
正在使用哪些文本视图角色:
-
插入符合的当前位置(就是光标位置)在所选文本缓冲区(text buffer)(就是当前页面)上的位置:
-
LINQ Keywords(LINQ关键字)
自定义在VS编辑器中与LINQ相关的关键字的呈现方式。 您可以在每种语言中选择对哪些LINQ关键字生效,可以通过VS的“选项 – 环境 – 字体和颜色”中的“Viasfora Query Operator”来自定义设置这些关键字呈现的颜色(也可以通过Viasfora自身设置中的“Query Keywords”自定义颜色)。
(相对于C#,仅对LINQ的查询式生效,对lambda的Where()、Select()等不生效)
Other Features(其他功能)
Modelines
Viasfora在许多文本文件格式中支持基本Vim-style Modelines:
// vim: et:sw=8:ts=8
您可以在对应的issue中找到更多有关此功能的详细信息。
Plain Text Completion(纯文本完成)
此功能已在V3.5版本中移除,故不再额外翻译。低版本需要此功能介绍的请自行点此进行查看。
Other Features(其他功能)
- Auto-expand collapsible regions(自动展开折叠的区域)
当打开一个文件或者完全禁用折叠时,可以自动展开折叠的区域。 - Bold as Italics(把斜体部分都变为粗体)
将任何用斜体表示的部分修改为用粗体表示。
Outline Selection
Looks like Tomsar forgot to make this page!
(以上为全部原文~~~关于Outline,可参见本文的User Outlining功能)
(个人测试发现此功能为将所选部分的上文和下文均折叠起来)
Presentation Mode(演示模式)
启用“演示模式”后,所有文本视图(包括“输出窗口”)将默认为预定义的缩放级别(默认为150%),无需手动更改。
它还允许您在关闭演示模式时定义不同于100%的缩放级别。
要打开/关闭演示模式,请在VS中点击“视图 – Presentation Mode”选项。
您还可以启用一个选项,以便在启用演示模式时放大IDE用户界面字体。(比如菜单栏、工具栏等处的字体大小)
Rainbow Braces(彩虹括号)
受到Vim插件“彩虹括号”的启发,此功能可以轻松跟踪嵌套括号,大括号和方括号:
Features(功能)
- 所有颜色均可以通过VS的“选项–环境–字体和颜色”自定义。
- 最多9个颜色深度级别。
- 您可以使用“Rainbow Previous” Ctrl + Alt+,和“Rainbow Next” Ctrl + Alt+. 命令导航到包围光标位置的大括号上。(如果跟其他快捷键冲突,可以自行修改,比如本人就修改为了 Ctrl + Shift + Alt + -和 Ctrl + Shift + Alt + = )
Rainbow Highlihgt(彩虹高亮)
按住左Ctrl键将突出显示包围光标位置的彩虹括号:
Rainbow Tooltips(彩虹提示框)
如果将鼠标悬停在括号上,并且括号的另一端足够远(可以简单理解为括号的另一端在多行之前或之后),则会出现悬浮提示框以预览括号另一端:
Rainbow Lines(彩虹线)
V4.0中的新功能:使用连接括号开口和括号闭合的线条,根据光标位置突出显示当前括号范围。
Rainbow Options(彩虹选项)
这里有一些选项来控制彩虹括号如何工作。
Rainbow Coloring Mode
此选项控制如何执行括号嵌套。
默认值为“Unified”,其中嵌套括号使用不同的颜色而不管括号类型。 也就是说,如果你有“{{(([])}”这样一个结构,则其中每一个括号对都是不同的颜色。
另一种选择是“PerBrace”。 在这种情况下,每个括号对都有自己的着色栈。 也就是说,括号“{”在一个序列中着色,括号“(”在另一个序列中着色,括号“[”在另一个序列中着色。如果你有“{{(([[]])}”这样一个结构,则其中第一个“{}”和第一个“()”和第一个“[]”均为相同的颜色,其中第二个“{}”和第二个“()”和第二个“[]”均为相同的另一种颜色。
Rainbow Highlight Mode
此选项仅在通过按Ctrl键使用Rainbow Highlight时使用。 此选项控制如何跟踪与括号相关的插入符位置。
例如,如果插入符号正好位于左括号的左边:“{aaa|(xxx)bbb}”(“|”为光标,“(”为左括号),并且此选项设置为TrackInsertionPoint,则Viasfora会认为光标位于括号之外,因此,外部作用域(即上一层括号)将突出显示(即显示包围整个“{aaa(xxx)bbb}”的Rainbow Highlight)。
但是如果将此选项设置为TrackNextScope,Viasfora将认为光标位于其旁边的括号的范围内,因此内部范围(即光标右侧括号内)将突出显示(即显示包围“(xxx)”的Rainbow Highlight)。
(无论选择哪种,当光标位于右括号外侧时:“{aaa(xxx)|bbb}”,均被认为位于括号之外,外部作用域将突出显示)
String Sequences(字符串序列)
在许多基础语言中轻松识别字符串文字中的转义序列和格式说明符。 可以通过VS的“选项–环境–字体和颜色”中的“Viasfora String Escape Sequence”来自定义设置这些转义呈现的颜色(也可以通过Viasfora自身设置中的“ String Escape Sequences”和“String Format Specifiers”自定义颜色)。
对于C / C ++字符串,格式说明符也会高亮。
Text Obfuscation(文本模糊)
Viasfora提供了一种在演示期间基于正则表达式在编辑器中隐藏文本的简便方法。 您可以从Visual Studio中的“工具 – 选项 – Viasfora – Text Hiding”选项配置模糊表达式。
Options选项可以按以下方式使用:
- HideMatch:正则表达式匹配的整个子字符串将被模糊。
- HideGroups:只有索引> = 1的组才会被模糊。 这允许您将正则表达式中的捕获组与非捕获组(?:)一起使用,以更精确地控制被模糊的内容。
例如,如果使用以下正则表达式:
(?:apiKey\s*=\s*")(.*)(?:")
使用HideGroups,它将查找一个设置为字符串文字的名为apiKey的变量,但只会模糊字符串文字的内容(这不是一个完美的例子,只是用来演示用)。
默认情况下,始终禁用文本模糊。 要启用它,请在VS中点击“视图 – Presentation Mode”选项或使用Ctrl + E,Ctrl + O组合键。
您可以使用相同的命令再次禁用文本模糊。 如果关闭或启动新的VS实例,默认情况下将再次禁用它。
Themes(主题)
在3.6版本中,Viasfora支持主题,允许您轻松更改Viasfora中所有功能使用的颜色。 可以从“工具 – 选项 – Viasfora – Import/Export”选项中导出/导入主题。
主题只是一个JSON格式的文本文件,包含一组这样的条目:
{
"<option_name>": {
"foreground": "<html_color>|automatic",
"background": "<html_color>|automatic",
"style": "None|Bold"
},
...
}
foreground或background颜色的有效值可以是:
- 一个HTML的颜色名称
- 一个以#RRGGBB格式表示的HTML颜色
- automatic:它与VS中的Automati color选项匹配
以下选项有效:
- viasfora.keyword.flowcontrol
- viasfora.keyword.linq
- viasfora.keyword.visibility
- viasfora.string.escape_sequence
- viasfora.string.format.specifier
- viasfora.column.current
- viasfora.text.obfuscated
- viasfora.xml.closing
- viasfora.xml.prefix
- viasfora.xml.closing.prefix
- viasfora.razor.closing.element
- viasfora.rainbow.# (where # is 1 - 9)
- viasfora.rainbow.error
下面的示例说明了默认的Viasfora颜色主题:
{
"viasfora.keyword.flowcontrol": {
"foreground": "OrangeRed",
"background": "automatic",
"style": "None"
},
"viasfora.keyword.linq": {
"foreground": "MediumSeaGreen",
"background": "automatic",
"style": "None"
},
"viasfora.string.escape_sequence": {
"foreground": "Fuchsia",
"background": "automatic",
"style": "None"
},
"viasfora.string.format.specifier": {
"foreground": "MediumSlateBlue",
"background": "automatic",
"style": "None"
},
"viasfora.keyword.visibility": {
"foreground": "DimGray",
"background": "automatic",
"style": "None"
},
"viasfora.column.current": {
"foreground": "LightGrey",
"background": "automatic",
"style": "None"
},
"viasfora.text.obfuscated": {
"foreground": "White",
"background": "WhiteSmoke",
"style": "None"
},
"viasfora.rainbow.1": {
"foreground": "#FF9900",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.2": {
"foreground": "DeepPink",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.3": {
"foreground": "YellowGreen",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.4": {
"foreground": "DarkViolet",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.5": {
"foreground": "DimGray",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.6": {
"foreground": "RoyalBlue",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.7": {
"foreground": "Crimson",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.8": {
"foreground": "DarkTurquoise",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.9": {
"foreground": "Green",
"background": "automatic",
"style": "None"
},
"viasfora.rainbow.error": {
"foreground": "automatic",
"background": "LightCoral",
"style": "None"
},
"viasfora.xml.closing": {
"foreground": "DarkOrange",
"background": "automatic",
"style": "None"
},
"viasfora.xml.prefix": {
"foreground": "ForestGreen",
"background": "automatic",
"style": "None"
},
"viasfora.xml.closing.prefix": {
"foreground": "OrangeRed",
"background": "automatic",
"style": "None"
},
"viasfora.razor.closing.element": {
"foreground": "DarkOrange",
"background": "automatic",
"style": "Bold"
}
}
User Outlining(设置折叠区域)
Viasfora允许您在文本文件上定义任意轮廓(可折叠)区域。 要添加新区域,只需选中要折叠的区域,然后选择“编辑(或者右键)-- Viasfora – Add Outlining”命令:
要删除它,只需将光标放在可折叠的区域内,然后使用“Remove Outlining”命令。 如果光标位于多个区域内,则将删除距离光标位置最近的一个区域。(点击下图中左侧的“V”也可删除)
用户定义的可折叠区域通过* .suo解决方案文件保存。
Visibility Keywords(可见性关键字)
自定义在VS编辑器中与可见性相关的关键字的呈现方式。 您可以在每种语言中选择对哪些控制流关键字生效,可以通过VS的“选项 – 环境 – 字体和颜色”中的“Viasfora Visibility Keyword”来自定义设置这些关键字呈现的颜色(也可以通过Viasfora自身设置中的“Visibility Keywords”自定义颜色)。
XML Editor Extensions(XML编辑扩展)
Viasfora允许您通过VS的“选项 – 环境 – 字体和颜色”中的“Viasfora XML Prefix”来自定义在Visual Studio XML编辑器中呈现的XML名称空间前缀的颜色(也可以通过Viasfora自身设置中的“XML Namespace Prefix Color”自定义颜色)。
您还可以通过VS的“选项 – 环境 – 字体和颜色”中的“Viasfora XML Closing Tag”来自定义结束元素标记的颜色(也可以通过Viasfora自身设置中的“XML Closing Tag Color”自定义颜色)。
使用Viasfora时,XML编辑器还会在光标位于开始元素标记或结束元素标记其中之一时,突出显示匹配的开始/结束元素标记。
解析命名空间前缀
Viasfora还将扩展Visual Studio XML编辑器提供的Intellisense:将光标放在XML名称空间前缀上,工具提示将告诉您在该上下文中映射到的内容。
HTML支持
大多数这些功能也适用于HTML编辑器,包括Razor页面。