SyCODE Syntax Highlighter是一个基于javascript实现的语法高亮程序,实现方式借鉴了著名的db.SyntaxHighlighter采用正则表达式进行关键字匹配,处理速度比db.SyntaxHighlighter高出 5~10倍,是目前处理速度最快的javascript语法高亮程序。
SyCODE Syntax Highlighter具有速度高可扩展性强的特点,在一台当前主流PC机上可以轻松完成32KB的代码高亮处理,能够一次性完成64KB的代码高亮处理而不出现脚本缓慢提示,通过添加不同的正则表达式可以实现任何一种编程语言的语法高亮处理。
SyCODE Syntax Highlighter 1.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. UNIX Shell 18. AWK 19. Sql 20. xml/xhtml
example: Highlighter.Execute(cleanCode, language);
Effect: var Highlighter = { Brushes: {}, RegexLib: { MultiLineCComments : new RegExp('/\\*[\\s\\S]*?\\*/', 'gm'), SingleLineCComments : new RegExp('//.*$', 'gm'), SingleLinePerlComments : new RegExp('#.*$', 'gm'), DoubleQuotedString : new RegExp('"(?:\\.|(\\\\\\")|[^\\""\\n])*"','g'), SingleQuotedString : new 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 = new Object(); for(var brush in Highlighter.Brushes) { var aliases = Highlighter.Brushes[brush].Aliases; if(aliases == null) continue; for(var i=0;i<aliases.length;i++) registered[aliases[i].toLowerCase()] = brush; }; if(!!registered[lang.toLowerCase()]) { var ht = new Highlighter.Brushes[registered[lang.toLowerCase()]](); return ht.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, ' '); return str.replace(/\n/g, '<br/>'); } } };
(责任编辑:admin) |