专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Javascript教程 » javascript实现的超强语法高亮引擎 »正文

javascript实现的超强语法高亮引擎

来源: 发布时间:星期一, 2009年4月13日 浏览:4次 评论:0
="t18">SyCODE Syntax Highlighter是个基于javascript实现语法高亮实现方式借鉴了著名db.SyntaxHighlighter采用正则表达式进行关键字匹配处理速度比db.SyntaxHighlighter高出 5~10倍是目前处理速度最快javascript语法高亮

SyCODE Syntax Highlighter具有速度高可扩展性强特点台当前主流PC机上可以轻松完成32KB代码高亮处理能够次性完成64KB代码高亮处理而不出现脚本缓慢提示通过添加区别正则表达式可以实现任何种编程语言语法高亮处理

SyCODE Syntax Highlighter 1.0 内部已经实现 2十于种语系语法高亮包括:
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. UNIX Shell
18. AWK
19. Sql
20. xml/xhtml

example: Highlighter.Execute(cleanCode, language);

Effect:
var Highlighter = {
Brushes: {},
RegexLib: {
MultiLineCComments : RegExp('/\\*[\\s\\S]*?\\*/', 'gm'),
SingleLineCComments : RegExp('//.*$', 'gm'),
SingleLinePerlComments : RegExp('#.*$', 'gm'),
DoubleQuotedString : RegExp('"(?:\\.|(\\\\\\")|[^\\""\\n])*"','g'),
SingleQuotedString : RegExp("'(?:\\.|(\\\\\\')|[^\\''\\n])*'", 'g')
},
Match: function(value, index, css) {
this.value = value;
this.index = index;
this.length = value.length;
this.css = css;
},
Execute: function(str,lang) {
var registered = Object;
for(var brush in Highlighter.Brushes)
{
var aliases = Highlighter.Brushes[brush].Aliases;
(aliases null) continue;
for(var i=0;i<aliases.length;i) registered[aliases[i].toLowerCase] = brush;
};
(!!registered[lang.toLowerCase]) {
var ht = Highlighter.Brushes[registered[lang.toLowerCase]];
ht.Highlight(str);
}
{
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/\t/g, ' ');
str = str.replace(/[ ]{2}/g, ' ');
str.replace(/\n/g, '<br/>');
}
}
};


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: