F# 实用工具:F# Depth Colorizer

色彩区分代码结构在F#中已经实现

上周提到我一直致力于一个编辑器的扩展的开发,如今,它已经可用了,并且你可以尝试一下!你可以从Visual Studio Gallery中获取F# Depth Colorizer(也就是我说的扩展)。鼠标单击进行安装;安装完成后,你可以在Visual Studio中的“工具\扩展管理器”菜单中找到它。

FSDCEM

安装完成后, 你的代码结构会在编辑器中被高亮的显示出来,如下图所示:

FSDCGreyScaleScreenshot

或者像这样:

FSDCRedBlueScreenshot

而不是像原来那样平铺着代码:

FSDCDisabledScreenshot

明白了么?就像前两幅图中显示的那样,颜色是可以自己配制的。我并不是太擅长界面颜色的配制,所以用户可以通过注册表来配置这些颜色。(编辑:亦可见这里)。如果你没有这个注册表项,你的编辑器中会默认的显示为灰色,就像第一个截图那样。下面的注册表值代表灰度值:

 

Windows RegistryEditor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TextEditor\FSharpDepthColorizer]
"Depth0"="190,190,190,230,230,230"
"Depth1"="170,170,170,210,210,210"
"Depth2"="184,184,184,224,224,224"
"Depth3"="164,164,164,204,204,204"
"Depth4"="178,178,178,218,218,218"
"Depth5"="158,158,158,198,198,198"
"Depth6"="172,172,172,212,212,212"
"Depth7"="152,152,152,192,192,192"
"Depth8"="166,166,166,206,206,206"
"Depth9"="146,146,146,186,186,186"

另外,第二副截图中的红-蓝色彩的注册表值如下所示:

 

Windows RegistryEditor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\TextEditor\FSharpDepthColorizer]
"Depth0"="240,180,180,240,220,220"
"Depth1"="180,180,240,220,220,240"
"Depth2"="240,172,172,240,216,212"
"Depth3"="172,172,240,212,216,240"
"Depth4"="240,164,164,240,212,204"
"Depth5"="164,164,240,204,212,240"
"Depth6"="240,156,156,240,208,196"
"Depth7"="156,156,240,196,208,240"
"Depth8"="240,148,148,240,204,188"
"Depth9"="148,148,240,188,204,240"

通常这个扩展会查找这些注册表值。(你可以保存上面的注册表值到文件“foo.reg中,然后运行这个文件来写入注册表,或者通过“regedit工具来检查\更改这些值。一定要小心的更改你的注册表!)

六个数字字符串组成了DepthN的值,它代表了两组RGB值,如:

DepthN = R1G1B1R2G2B2

N代表代码嵌套的结构层次数时,RGB1代表了左边边缘的高亮颜色(目的是为了让边缘界线更明显),RGB2的值将成为应用在嵌套层次上的主要高亮色彩。下图会有10层的嵌套,颜色会被循环使用在一层层的代码结构上:

 FSDCDeepNestingScreenshot

而且这些颜色会越来越暗,直到第10层,当到达11层时,又会循环到色彩集合中最亮的粉色。

我会很快发布此VSIX扩展的源代码。(编辑:可以在这里察看发布情况。)现在,我鼓励大家尝试一下,你可以将反馈留在我的博客或画廊。用的开心!

(非常感谢Noah帮我完成了这个扩展在编辑器中的部分。谢谢那些帮我完成Beta版测试和提供反馈的朋友们。)

 

原文链接:http://lorgonblog.wordpress.com/2010/11/18/f-source-code-structural-colorizer-available/

posted @ 2011-12-30 10:28  tryfsharp  阅读(282)  评论(0编辑  收藏  举报