十月 30th, 2009

修复了jssc 5 beta中的两个错误

jssc, by army8735.

本着想写系列文章《web端语法高亮原理:走进jssc的世界》,介绍jssc的历史和核心算法的,结果无意间发现两个bug,真是丢脸啊。

一是数字高亮的bug,最终处理上居然一小步布尔逻辑写错了,造成长串数字的误认;二是ie下的复制按钮,定位的复制对象居然是“关于”,而不是源代码(少了个parentNode)。

这么明显的失误啊,真想跳楼谢罪了……

话归正题,系列文章会逐步出炉的,将jssc的一切毫无保留地叙述出来。这次失误的收获倒是知晓了其它几个web端的语法高亮器(以前只知道syntax highlighter,貌似也是最知名的),其中最吸引我的是prettify,貌似是google官方的东东。不愧是大佬啊!拿我常用的一段js代码测试了下,prettify是目前我所知js解析器中最为准确的!当然还有一点点小瑕疵,那就是正则的flag(i、m、g)没有跟随正则一起被高亮。不过最让我搞不懂的是,相对简单的flag没有解析正确,反而更难的跨行除法却做到了。

以下是我常用的测试代码,如果web端语法高亮器能解析到jssc的程度,才能够说明是正确了。

//javascript
function none(){
}
/** javascript
jscript
*/
var reg = /[\/][*]([\S\s]*?)(?:[*][/;\[\]]|$)|[\/][/g;](.*)|"((?:\\\\|\\"|[^"])*)"|'((?:\\\\|\\'|[^'])*)'/gm; ''; /\d/.test(1);
reg = 12;
a / b
/reg/;
var num1 = 0.541f;
function f(test) {
    return (test/*
    /* //
    ' "
    { ;
    \*/ && // /* // " ' { ; \
    test &&
    " /* // \
    \" ' \
    { ;" &&
    ' /* // \
    " \' \
    { ;' &&
    test);
}

Back Top

回复自“修复了jssc 5 beta中的两个错误”

  1. 没有任何评论。
  1. 没有任何引用。

发表回复

Back Top