发布语法加亮编辑器控件(SyntaxTextBox)
来源:互联网 发布:js 合计不能超过数字 编辑:程序博客网 时间:2024/06/06 11:40
一直对语法加亮编辑器控件非常感兴趣,想弄个过来在项目中show一把以挣点眼球。遂上网搜搜,发现ActiproSoftware公司的SyntaxEditor是个好冬冬啊(SnippetCompiler就是用的这个控件),VS的功能它都基本实现了,流口水啊(http://www.chinaaspx.com/comm/dotnetbbs/Showtopic.aspx?Forum_ID=45&id=146786&PPage=8&Page=1)。
但好东西都是要银子买的,人家要银子3000大洋,咱们穷人没办法,没银两,又搜不到,只好自己动手编了。边上网参考网友代码,加上废寝忘食三五天,雏形出来了,能满足一般性的代码加亮展示要求,免费奉送!
功能概述
语法加亮
加亮规则由XML文件进行配置
AutoComplete(ctrl+shift+space)
可控步数Undo/Redo
全选、拷贝、粘贴快键(Ctrl+A, Ctrl+C, Ctrl+V)
直接操作RTF文档格式,提高效率
效果
示例代码
this.txtSyntax.ConfigFile = "csharp.xml";
this.txtSyntax.AcceptsTab = true;
this.txtSyntax.CaseSensitive = false;
this.txtSyntax.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtSyntax.FilterAutoComplete = true;
this.txtSyntax.Location = new System.Drawing.Point(0, 0);
this.txtSyntax.MaxUndoRedoSteps = 50;
this.txtSyntax.Name = "txtSyntax";
this.txtSyntax.Size = new System.Drawing.Size(464, 257);
this.txtSyntax.TabIndex = 0;
this.txtSyntax.Text = "if then while begin";
this.txtSyntax.WordWrap = false;
this.txtSyntax.AcceptsTab = true;
this.txtSyntax.CaseSensitive = false;
this.txtSyntax.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtSyntax.FilterAutoComplete = true;
this.txtSyntax.Location = new System.Drawing.Point(0, 0);
this.txtSyntax.MaxUndoRedoSteps = 50;
this.txtSyntax.Name = "txtSyntax";
this.txtSyntax.Size = new System.Drawing.Size(464, 257);
this.txtSyntax.TabIndex = 0;
this.txtSyntax.Text = "if then while begin";
this.txtSyntax.WordWrap = false;
XML配置文件示例(csharp.xml)
<?xml version="1.0" encoding="utf-8"?>
<DescriptorCollection>
<Descriptor>
<Token>/*</Token>
<CloseToken>*/</CloseToken>
<Color>0,100,0</Color>
<Font>宋体,20</Font>
<DescriptorType>ToCloseToken</DescriptorType>
<DescriptorRecognition>StartsWith</DescriptorRecognition>
<UseForAutoComplete>False</UseForAutoComplete>
</Descriptor>
<Descriptor>
<Token>[</Token>
<CloseToken>]</CloseToken>
<Color>255,0,0</Color>
<Font>宋体,20</Font>
<DescriptorType>ToCloseToken</DescriptorType>
<DescriptorRecognition>StartsWith</DescriptorRecognition>
<UseForAutoComplete>False</UseForAutoComplete>
</Descriptor>
<Descriptor>
<Token>public</Token>
<CloseToken />
<Color>0,0,255</Color>
<Font>宋体,20</Font>
<DescriptorType>Word</DescriptorType>
<DescriptorRecognition>WholeWord</DescriptorRecognition>
<UseForAutoComplete>True</UseForAutoComplete>
</Descriptor>
...
</DescriptorCollection>
<DescriptorCollection>
<Descriptor>
<Token>/*</Token>
<CloseToken>*/</CloseToken>
<Color>0,100,0</Color>
<Font>宋体,20</Font>
<DescriptorType>ToCloseToken</DescriptorType>
<DescriptorRecognition>StartsWith</DescriptorRecognition>
<UseForAutoComplete>False</UseForAutoComplete>
</Descriptor>
<Descriptor>
<Token>[</Token>
<CloseToken>]</CloseToken>
<Color>255,0,0</Color>
<Font>宋体,20</Font>
<DescriptorType>ToCloseToken</DescriptorType>
<DescriptorRecognition>StartsWith</DescriptorRecognition>
<UseForAutoComplete>False</UseForAutoComplete>
</Descriptor>
<Descriptor>
<Token>public</Token>
<CloseToken />
<Color>0,0,255</Color>
<Font>宋体,20</Font>
<DescriptorType>Word</DescriptorType>
<DescriptorRecognition>WholeWord</DescriptorRecognition>
<UseForAutoComplete>True</UseForAutoComplete>
</Descriptor>
...
</DescriptorCollection>
下载地址:/Files/surfsky/SyntaxTextBox.rar
- 发布语法加亮编辑器控件(SyntaxTextBox)
- 发布语法加亮控件(SyntaxTextBox)
- JScud语法加亮程序初次发布
- 加亮语法代码
- eclipse 不能语法加亮
- C++源代码的语法加亮
- 程序代码语法加亮插件比较
- 配置 vim 自动语法加亮
- android ultredit smali语法加亮
- Android:UltraEdit Smali语法加亮
- 关于语法加亮的一些讨论
- 启用代码语法加亮CSS统一风格
- JS实现的PHP语法加亮函数
- 为 CSDN Blog 加入语法加亮功能
- 代码编辑器关键字加亮显示功能示例
- 方便 Weblog 显示加亮语法 PHP 代码的小程序
- UltraEdit-32 的PL/SQL语法加亮样式
- UltraEdit-32的PL/SQL语法加亮样式
- dreamweaver8抢先看
- dynamic_cast
- [今日图书推荐]如何做好SQLServer数据库性能的优化
- NHibernate中文翻译文档(整理自DDLLY命名空间)
- Java 的多态
- 发布语法加亮编辑器控件(SyntaxTextBox)
- IE关闭之--在onunload()触发的函数却在onload出发的解决方案(原创)
- 今日开始博客
- 关于WEB应用中乱码解决方法
- 电脑主板资料库 索引 【FreeXploiT整理】
- STL 之sort使用
- 搜索引擎设计实用教程-以百度为例 (1-4) 【FreeXploiT整理】【转至http://blog.csdn.net/malefactor/】
- 第五章: Hiding the Implementation
- gzip原理与实现(转贴)