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