codemirror和ace editor的语法高亮
两个javascript库用做在线代码编辑器都是非常优秀的选择
我这两天对这两个类库做了简单的研究,重点是语法高亮的自定义:
ace editor的主要思路是生成状态机,从一个startstate开始,使用正则表达式匹配,返回token,然后next,next...这样返回token,其中用到push和pop这样的概念,以便于匹配多行注释这样类似的情况:
/*
dfsadfas
asdfasd
*/
codemirror的主要思路是提供字节流,通过对给定字节流的读取返回token,提供的读取方法非常方便好用,状态数据可以自定义,在全局中使用。
我要做到的是缩排处理,这种情况下,只有codemirror比较适合了。
比如,我希望##开头的行及紧随此行并且缩进级别较高的行形成的段落辨认为注释:
##注释
注释注释注释
注释注释注释
不是注释不是注释不是注释
codemirror和ace editor的语法高亮的更多相关文章
- ace -- 语法高亮
Creating a Syntax Highlighter for Ace 给ace创建一个语法高亮 Creating a new syntax highlighter for Ace is extr ...
- 前端代码编辑器ace 语法高亮
代码编辑器codemirror和ace,都有接触过,主要是简单的api使用下.现在项目选用的ace.主要结合官网的文档,加入些自己的理解.官方原文链接https://ace.c9.io/#nav=hi ...
- 在线编辑器ACE Editor的使用
ACE 是一个开源的.独立的.基于浏览器的代码编辑器,可以嵌入到任何web页面或JavaScript应用程序中.ACE支持超过60种语言语法高亮,并能够处理代码多达400万行的大型文档.ACE开发团队 ...
- ACE Editor在线代码编辑器简介及使用引导
转自博客:https://www.cnblogs.com/cz-xjw/p/6476179.html ACE 是一个开源的.独立的.基于浏览器的代码编辑器,可以嵌入到任何web页面或JavaScrip ...
- ABAP的语法高亮是如何在浏览器里显示的
这篇文章的原文我发表在SAP官方社区上:https://blogs.sap.com/2018/03/09/how-abap-syntax-highlight-is-implemented-in-web ...
- ABAP开发环境语法高亮的那些事儿
关于SAP ABAP开发环境,Jerry之前写过几篇公众号文章: 那些年我用过的SAP IDE 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧 使用Visual Studio Code ...
- 12款最佳的 WordPress 语法高亮插件推荐
语法高亮工具增强了代码的可读性,美化了代码,让程序员更容易维护.语法高亮提供各种方式由以提高可读性和文本语境,尤其是对于其中可以结束跨越多个页面的代码,以及让开发者自己的程序中查找错误.在这篇文章中, ...
- github atom创建自己的语法高亮
使用atom一段时间了,有些插件还不是很成熟.比如项目中使用protobuf,早就有人写了语法高亮(https://github.com/podgib/atom-protobuf),但是效果不是很好. ...
- Android 代码编辑器中实现代码语法高亮
想写一款Android手机上的代码编辑器,实现类似c4droid中代码语法高亮 通过Android中的控件WebView中嵌入html网页,html引入CodeMirror这个第三方库就可以了,其实就 ...
随机推荐
- log4net 记录到数据库和本地文件
1)配置代码 <?xml version="1.0" encoding="utf-8" ?> <configuration> <c ...
- socket传数据并记录到文件中
最近在新项目中要通过socket传一些数据,下面是程序: 功能: 将客户端发送的json数据写入到日志文件中,如果数据不是json的,丢弃. 程序如下: #!/usr/bin/env python # ...
- LDA(转发)
主题模型-LDA浅析 分类: 数据挖掘 机器学习2012-09-03 14:09 24937人阅读 评论(16) 收藏 举报 文档allocationsemanticeach算法网络 上个月参加了在北 ...
- Java数据库——CallableStatement接口
建立一个过程,建立的时候要加DELIMITER // IN——只能输入,不能输出,修改之后保留修改的数据 INOUT——可以的输入,也可以输出,修改时输出的是修改后的数据,但是再次输出的时候是最先的数 ...
- header的安全配置指南
0x00 背景 在统计了Alexa top 100万网站的header安全分析之后(2012年11月 - 2013年3月 - 2013年11月),我们发现其实如何正确的设置一个header并不是一件容 ...
- [Redis]如何通过Powershell创建Redis服务
目前Redis在中国上线了,不过只是预览版而且不能通过Portal进行操作,不过可以通过Powershell创建,具体如下: 下载最新的Powershell SDK:http://www.window ...
- QT入门
QT += core gui widgets //引入需要用到的库 qDebug()<<"t="<<t<<QTime::currentTime( ...
- 两个select转移
<table> <tr> <td> <select multiple="multiple" id="leftSelect&quo ...
- Ubuntu终端常用的快捷键
Ubuntu终端常用的快捷键 Ubuntu中的许多操作在终端(Terminal)中十分的快捷,记住一些快捷键的操作更得心应手.在Ubuntu中打开终端的快捷键是Ctrl+Alt+T.其他的一些常用的快 ...
- java的集合框架最全详解
java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...