codemirror和ace editor的语法高亮

两个javascript库用做在线代码编辑器都是非常优秀的选择

我这两天对这两个类库做了简单的研究,重点是语法高亮的自定义:


 

ace editor的主要思路是生成状态机,从一个startstate开始,使用正则表达式匹配,返回token,然后next,next...这样返回token,其中用到push和pop这样的概念,以便于匹配多行注释这样类似的情况:

/*

dfsadfas

asdfasd

*/


 

codemirror的主要思路是提供字节流,通过对给定字节流的读取返回token,提供的读取方法非常方便好用,状态数据可以自定义,在全局中使用。


 

我要做到的是缩排处理,这种情况下,只有codemirror比较适合了。

比如,我希望##开头的行及紧随此行并且缩进级别较高的行形成的段落辨认为注释:

##注释

  注释注释注释

  注释注释注释

不是注释不是注释不是注释

 

posted @ 2014-03-23 23:48  真幻de现实  阅读(3399)  评论(0编辑  收藏  举报