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

286359931

286359931

2016-02-19 16:15

下面是个javascript实现的超强语法高亮引擎教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

SyCODE Syntax Highlighter是一个基于javascript实现的语法高亮程序,实现方式借鉴了著名的db.SyntaxHighlighter采用正则表达式进行关键字匹配,处理速度比db.SyntaxHighlighter高出 5~10倍,是目前处理速度最快的javascript语法高亮程序。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

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

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

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('/*[sS]*?*/', '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;ialiases.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(//g, '    ');
            str = str.replace(/[ ]{2}/g, '  ');
            return str.replace(//g, 'br/');
        }
    }
};

展开更多 50%)
分享

猜你喜欢

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

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

firefox下javascript实现高亮关键词的方法

Web开发
firefox下javascript实现高亮关键词的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JavaScript版代码高亮

Web开发
JavaScript版代码高亮

JavaScript教程:JS的语句及语法

Web开发
JavaScript教程:JS的语句及语法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Mozilla的JavaScript引擎__noSuchMethod__()方法

Web开发
Mozilla的JavaScript引擎__noSuchMethod__()方法

listview 选中高亮显示实现方法

编程语言 网络编程
listview 选中高亮显示实现方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在Visual C#中使用XML指南之读取XML

在Visual C#中使用XML指南之读取XML

非常简洁的动态加载js和css的jquery plugin

非常简洁的动态加载js和css的jquery plugin
下拉加载更多内容 ↓