本着想写系列文章《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) {
…
Posts Tagged ‘beta’
国庆期间的努力,TAT~
http://code.google.com/p/jssc/
这里有预览:
http://ff9.ffsky.cn/temp/jssc5/index.html
改进:
相对于alpha版性能至少提升1个数量级而言,beta版也提升了数倍,其中个别逻辑性能提升近10倍。
整体架构有明显变化,体积减小约10%。
改进了对php的支持。
修正了细微的bug,删改细节功能体验。

本博客所有文章均采用