利用ICSharpCode.TextEditor实现多文件类型的文本语法高亮(包括官方不包含的T-SQL脚本语法高亮)(含VS.NET2003解决方案)
SharpDevelop (#develop)有很多“副产品”,其中最出名的应算SharpZipLib (#ziplib),纯C#的ZIP类库,而在SharpDevelop (#develop)中,“隐藏”了很多优秀的类库,其中ICSharpCode.TextEditor是表表者。
ICSharpCode.TextEditor源代码隐匿在\SharpDevelop\src\Libraries\ICSharpCode.TextEditor中,可以利用SharpDevelop (#develop)打开ICSharpCode.TextEditor.cmbx,也可以看看其例子(\SharpDevelop\samples\SharpPad中)SharpPad.cmbx。
我在简便的MS SQL 数据库 表内容 脚本 生成器,支持多级关联(含源代码)(更新:重购代码、添加对NVARCHAR的特别支持、结果保存、SQL语法高亮)中提及,需要实现T-SQL的语法高亮,但ICsharpCode官方没有包含对T-SQL的支持。
于是我想到,既然是开源,而且公开了格式,应该会有开发人员有和我一样的需求,会写出一个T-SQL的语法高亮文件(tsql-mode.xshd),连这个文件名称我都是猜出来的,因为我分析了ICSharpCode.TextEditor的语法文件命名规则后,推导出来的,然后google一下,还竟然有,在http://www.imhoproject.org/plugins.aspx,http://imhoproject.org/download/TSQL-Mode.zip;下载完该文件,添加到SharpDevelop (#develop)的源代码(\SharpDevelop\src\Libraries\ICSharpCode.TextEditor中),作为资源编译,但编译之前先修改SyntaxModes.xml文件,在最后添加如下内容:
<Mode file = "TSQL-Mode.xshd"
name = "TSQL"
extensions = ".sql"/>
然后编译出ICSharpCode.TextEditor.dll,引用之。
ICSharpCode.TextEditor优点:
1、具备优秀的文本编辑器的大部分功能;
2、扩展性高:可任意扩展为对任何新文件格式/语法的支持;
3、高效:其语法高亮速度非常非常快,无论文件有多膨大。我曾经用一个6M的SQL文件进行测试,某个语法高亮工具崩溃了,ICSharpCode.TextEditor却在瞬间内完成了工作
可能会有朋友需要直接的源代码,所以我特别创建了VS.NET2003的解决方案,打包上传了,方便大家。
点击这里下载:ICSharpCode.TextEditor.zip
http://www.cnblogs.com/unruledboy/archive/2005/07/19/TSQLSyntaxHighlight.html