SyCODESyntaxHighlighter是一个基于javascript实现的语法高亮程序,实现方式借鉴了著名的db.SyntaxHighlighter采用正则表达式进行关键字匹配,处理速度比db.SyntaxHighlighter高出5~10倍,是目前处理速度最快的javascript语法高亮程序。
SyCODESyntaxHighlighter具有速度高可扩展性强的特点,在一台当前主流PC机上可以轻松完成32KB的代码高亮处理,能够一次性完成64KB的代码高亮处理而不出现脚本缓慢提示,通过添加不同的正则表达式可以实现任何一种编程语言的语法高亮处理。
SyCODESyntaxHighlighter1.0内部已经实现二十于种语系的语法高亮,包括:
1.C/C++
2.C#
3.CSS
4.Delphi/Kylix
5.Pascal
6.Java
7.Vb/Vb.net
8.J(ava)Script
9.ActionScript
10.Php
11.Python
12.Ruby/Rails
13.Perl
14.Assembly
15.Bat批处理
16.UNIXShell
18.AWK
19.Sql
20.xml/xhtml
example:Highlighter.Execute(cleanCode,language);
Effect:
varHighlighter={
Brushes:{},
RegexLib:{
MultiLineCComments:newRegExp('/\*[\s\S]*?\*/','gm'),
SingleLineCComments:newRegExp('//.*$','gm'),
SingleLinePerlComments:newRegExp('#.*$','gm'),
DoubleQuotedString:newRegExp('"(?:\.|(),
SingleQuotedString:newRegExp("'(?:\.|(",'g')
},
Match:function(value,index,css){
this.value=value;
this.index=index;
this.length=value.length;
this.css=css;
},
Execute:function(str,lang){
varregistered=newObject();
for(varbrushinHighlighter.Brushes)
{
varaliases=Highlighter.Brushes[brush].Aliases;
if(aliases==null)continue;
for(vari=0;ialiases.length;i++)registered[aliases[i].toLowerCase()]=brush;
};
if(!!registered[lang.toLowerCase()]){
varht=newHighlighter.Brushes[registered[lang.toLowerCase()]]();
returnht.Highlight(str);
}
else{
str=str.replace(//g,'');
str=str.replace(//g,'');
str=str.replace(//g,'');
str=str.replace(/t/g,'');
str=str.replace(/[]{2}/g,'');
returnstr.replace(/n/g,'br/');
}
}
};
已投稿到:阅读||||前一篇:
后一篇:评论[发评论]发评论
验证码:
发评论
0 评论:
发表评论