论坛首页 Web前端技术论坛

JSSC 3 rc(js语法高亮器 ver3 rc)&& JSSC 2.2 发布。

浏览 12953 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-05-05  
代码折叠之后仍然是“-”号而不是我想的“+”号。
0 请登录后投票
   发表时间:2008-05-05  
再提2个新的特性要求:
1. 支持未知语言格式的基本显示:比如在论坛中有人可能会发表一些未在列表中语言格式,<textarea name="code" class="lua"> ,我希望JSSC不报错,能够保持缩进的样式就可以了。
2. 支持语言的别名,这个是SH中有的,可以用class名为js/javascript,c#/csharp

另外是一个改进的建议:
一些代码高亮是可以重用的,比如csharp的keyWords可以扩展c的keyWords, 而reglib, collapse都是和C/Java完全一样的,能否设置成
jssc.csharp = {
  extends: "c",
  keyWords: "csharp多出来的keywords"
}

这样可以减少all-in-one.js的大小
0 请登录后投票
   发表时间:2008-05-05  
Quake Wang 写道
再提2个新的特性要求:
1. 支持未知语言格式的基本显示:比如在论坛中有人可能会发表一些未在列表中语言格式,<textarea name="code" class="lua"> ,我希望JSSC不报错,能够保持缩进的样式就可以了。
2. 支持语言的别名,这个是SH中有的,可以用class名为js/javascript,c#/csharp

另外是一个改进的建议:
一些代码高亮是可以重用的,比如csharp的keyWords可以扩展c的keyWords, 而reglib, collapse都是和C/Java完全一样的,能否设置成
jssc.csharp = {
  extends: "c",
  keyWords: "csharp多出来的keywords"
}

这样可以减少all-in-one.js的大小


第一点大体就是保持原样,但是可以支持行号之类的功能。



关于扩展关键字那个我不太赞同,毕竟这些语言之间并不是直接继承的关系。但可以考虑把相同的提取出来作为一个常量字符串。
0 请登录后投票
   发表时间:2008-05-05  
to dwwind:
好的。

to icank:
是+号,那个图片没存好,有30多k,重存了下变成190b了。可能网速原因当时有问题造成显示慢了些……

1. 支持未知语言格式的基本显示:
的确,当初有个模糊的理念没有细想,这个是必须的。

2.语言的别名问题:
加载某个语法的时候是用的eval(语言名称),我想应该可以用指向相同引用来解决:
jssc.csharp = {定义...}
jssc.c# = jssc.csharp

3.到可以考虑最基本的像if else提取出来作为共同的基础。

---

终于发现为何ff处理大量代码的问题了:

若用textarea节点的话,用oTextarea.firstChild.nodeValue提取的代码只有4096字节,ff可能只支持这么大的容量,其它浏览器没问题。

若用oTextarea.value来提取内容则没有这个限制。可是若是pre标签又不支持oPre.value属性,它将是null。

所以只能写成这样了oTarget.value || oTarget.firstChild.nodeValue。

另外我改了下名字,每种语言的标题名称可以自己定义,更新了,可以看到cpp变成C++,csharp变成c#了。
0 请登录后投票
   发表时间:2008-05-05  
oXmr.open("get", sUrl, false);

这句要修改。
同步请求必然导致假死。
而且你这个地方,修改成异步方式也很容易。
0 请登录后投票
   发表时间:2008-05-05  
Army 写道
是+号,那个图片没存好,有30多k,重存了下变成190b了。可能网速原因当时有问题造成显示慢了些……


建议+和-放在一个图片里。

引用
终于发现为何ff处理大量代码的问题了:

若用textarea节点的话,用oTextarea.firstChild.nodeValue提取的代码只有4096字节,ff可能只支持这么大的容量,其它浏览器没问题。

若用oTextarea.value来提取内容则没有这个限制。可是若是pre标签又不支持oPre.value属性,它将是null。


它可以有若干个text node。所以可以考虑用textContent属性。
0 请登录后投票
   发表时间:2008-05-05  
能讲解一下制作过程和心得就更好了。
0 请登录后投票
   发表时间:2008-05-05  
jindw 写道
oXmr.open("get", sUrl, false);

这句要修改。
同步请求必然导致假死。
而且你这个地方,修改成异步方式也很容易。


改成异步吗?

hax 写道
建议+和-放在一个图片里。

那样要如何改变显示?

hax 写道
它可以有若干个text node。所以可以考虑用textContent属性。

OK

ps:别名更改完了,未知语法可以了,取消使用eval,参考sh的方式。集合了下c里重复率较高的关键字。

dlovek  写道
能讲解一下制作过程和心得就更好了。

这个……这可是长篇大论了……能自己看懂源码最好了……

而且,不知道,制作思路这种文章适不适合发。
0 请登录后投票
   发表时间:2008-05-05  
jindw 写道
oXmr.open("get", sUrl, false);

这句要修改。
同步请求必然导致假死。
而且你这个地方,修改成异步方式也很容易。

异步按需装载改得不是很好,其它浏览器还行,ie下第一次浏览还行,刷新一下就看不到了。

http://army.512j.com/creations/code/jssc3/autoload.js
0 请登录后投票
   发表时间:2008-05-05  
把那3个图片都放在一个图片里了…… 貌似找到原因 了……递归调用xhr自动装载脚本,ie下递归超过12次左右会栈溢出产生错误……
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics