CodeMirror
是一个用于编辑器文本框textarea
代码高亮javascript
插件,为各种编程语言实现关键字,函数,变量等代码高亮显示,丰富的api和可扩展功能以及多个主题样式,能满足您各种项目的需求。
CodeMirror支持大量语言的语法高亮,包括C
、C++
、C#
、Java
、Perl
、PHP
、JavaScript
、Python
、Lua
、Go
、Groovy
、Ruby
等,以及diff
、LaTeX
、SQL
、wiki
、Markdown
等文件格式。此外,CodeMirror
还支持代码自动完成、搜索/替换、HTML预览、行号、选择/搜索结果高亮、可视化tab、Emacs/VIM键绑定、代码自动格式等。
CodeMirror采用MIT开源许可协议,目前已经被集成到各种应用程序中,如Adobe Brackets
、CoDev
、Light Table
等开发环境,还被作为各种SQL
、Haxe
、JavaScript
在线编辑器的基础库来使用。
CodeMirror开发者近日发布了3.0版本。该版本进行了一些改进,如果你使用之前的版本,则需要注意,3.0中的API与2.0存在一些不兼容的问题,详细信息见升级向导。此外,重要的是,3.0放弃了对IE7的支持。
使用方法
本文将做简单的介绍,如何使用CodeMirror
插件和提交表单。
引入核心文件
<link rel="stylesheet" href="lib/codemirror.css">
<script src="lib/codemirror.js"><//script>
codemirror.css
和codemirror.js
文件是CodeMirror插件的核心文件,无论你要高亮的代码是何种语言,都要引入这两个文件。
引入代码高亮js
接下来要引入的文件可以根据您的项目需求引入,不必要引入所有文件,比如您要显示html代码,则引入:
<script src="xml.js"><//script>
代码调用
<script>
myTextarea = document.getElementById("code");
var editor = CodeMirror.fromTextArea(myTextarea, {
mode: "text/html"
});
<//script>
myTextarea
为您的编辑器dom
元素ID
,一般使用document.getElementById(“code”)
方法获取文本框,如果您使用的jquery,那么需要在代码后面加入[0]
,比如$(‘#code’)[0]
;
获取CodeMirror的值
// 该方法得到的结果是经过转义的数据
editor.getValue();
// 该方法得到的结果是未经过转义的数据
editor.toTextArea();
editor.getTextArea().value;
如果是通过 JS 进行表单提交,可以在提交的 JS 代码中这样使用:
// 将 Codemirror 的内容赋值给 Textarea
$("#content").text(editor.getValue());
strong textCodemirror赋值
editor.setValue('为codemirror赋值');
Codemirror Events change事件
Editor.on("change", function (Editor, changes) {
while (changes) {
Editor1.replaceRange(changes.text.join("\n"), changes.from, changes.to);
changes = changes.next;
}
});
changes.next
不是每次change事件都会有
项目地址:https://codemirror.net/
在线使用手册:https://codemirror.net/doc/manual.html
github地址:https://github.com/marijnh/codemirror