[转]利用ICSharpCode.TextEditor实现多文件类型的文本语法高亮

http://blog.donews.com/shanyou/archive/2005/07/24/478485.aspx

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.aspxhttp://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

作者: 火地晋
出处: http://yelaiju.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/yelaiju/p/1878142.html