codemirror和ace editor的语法高亮


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

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


 

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

/*

dfsadfas

asdfasd

*/


 

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


 

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

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

##注释

  注释注释注释

  注释注释注释

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM