精华帖 (7) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-01
最后修改:2011-09-06
注:由于中国网络的问题,有时网站可能被墙,若一定要访问,请使用在线代理!
经过几天的整理,终于将1k组件之Js语法高亮整出来了!
目前组件具有
请别问源码在哪里? 或者说楼主不真诚,一切自力更生,鼠标右键查看源代码或者滚动到文件下载来获取源码!
上效果图:
你可以你在下面输入测试代码,选择加亮类型和皮肤
你可以右键鼠标呼出功能菜单,其中的html和js是可以执行的,当然你也可以先编辑在执行,或者再加亮!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-01
最后修改:2011-09-02
建议添加个Table缩进功能
|
|
返回顶楼 | |
发表时间:2011-09-02
var abc = 'ss'; var g = 1; {}/abc/g.exec('abc') 高亮错误,/abc/g应该是个正则,但没高亮出来,似乎当成除法了 |
|
返回顶楼 | |
发表时间:2011-09-02
int08h 写道
var abc = 'ss'; var g = 1; {}/abc/g.exec('abc') 高亮错误,/abc/g应该是个正则,但没高亮出来,似乎当成除法了
不错,相当不错,发现这个问题还真不好修正!
比如+{}/abc/g;可以算除法,{}/abc/g;又可以是正则,这两者之前目前没有做出判断! +function(){} /abc/g 又是除法,额,这个不好搞啊!
括号的多义性!Js的无分号注定他解析难度的提升! |
|
返回顶楼 | |
发表时间:2011-09-02
和这一款类似
http://1stjs.googlecode.com/svn/trunk/fw4/api/index.html |
|
返回顶楼 | |
发表时间:2011-09-02
呵呵,楼主的这款高亮速度蛮快的,准确率也高,我写的高亮也是借鉴了很多它的优点,没有楼主写的完善,只是拿来加亮下API而已,建议大家多关注高亮所用的算法^_^
|
|
返回顶楼 | |
发表时间:2011-09-02
1kjs 写道
int08h 写道
var abc = 'ss'; var g = 1; {}/abc/g.exec('abc') 高亮错误,/abc/g应该是个正则,但没高亮出来,似乎当成除法了
不错,相当不错,发现这个问题还真不好修正!
比如+{}/abc/g;可以算除法,{}/abc/g;又可以是正则,这两者之前目前没有做出判断! +function(){} /abc/g 又是除法,额,这个不好搞啊!
括号的多义性!Js的无分号注定他解析难度的提升! 对头,我还没拿分号省略的特性来测呢,一测又会出一大堆事情的…… |
|
返回顶楼 | |
发表时间:2011-09-02
我说哪些js代码怎么那么好看,我还以为是某种编辑器呢,原来是自己写的组件...
|
|
返回顶楼 | |
发表时间:2011-09-02
int08h 写道
1kjs 写道
int08h 写道
var abc = 'ss'; var g = 1; {}/abc/g.exec('abc') 高亮错误,/abc/g应该是个正则,但没高亮出来,似乎当成除法了
不错,相当不错,发现这个问题还真不好修正!
比如+{}/abc/g;可以算除法,{}/abc/g;又可以是正则,这两者之前目前没有做出判断! +function(){} /abc/g 又是除法,额,这个不好搞啊!
括号的多义性!Js的无分号注定他解析难度的提升! 对头,我还没拿分号省略的特性来测呢,一测又会出一大堆事情的……
好吧,我现在先直接贴出正则判断的条件先!
contains:{ brackets:{cls:'brackets',reg:/(\[|\()/},//括号开始 keyword:{cls:'keyword',reg:/(typeof|void|return|in|throw|case)/},//关键字开头 cop:{cls:'#',reg:/(^|[-~:=?,!>]|\/\s+)/},//赋值运算符开头 cop2:{reg:/(<)/,restr:[restr['<']]} }
凡上面这些字符或者关键字开头的,我皆当作正则来处理,否则就算他是除号! 其中中间当然可以跟很多注释,换行,空格等非关键字符!
说实在的,每次看到bug,真想给他来个语法分析,创建个语法树出来,看还能不能错的来,额,编译原理没到家,
|
|
返回顶楼 | |
发表时间:2011-09-03
估计要完善得重看编译原理了
|
|
返回顶楼 | |