`
天梯梦
  • 浏览: 13730228 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

在线代码编辑器 CodeMirror 配置说明 - javascript开发的代码语法高亮显示引擎

 
阅读更多

edit-lineheightdf

 

CodeMirror是一款在线的支持语法高亮的代码编辑器。官网: http://codemirror.net/

下载后,解压开得到的文件夹中,lib下是放的是核心库和核心css,mode下放的是各种支持语言的语法定义,theme目录下是支持的主题样式。一般在开发中,添加lib下的引用和mode下的引用就够了。

 

使用示例

首先,要引用是 lib 目录下的 codemirror.js,还有一个就是同目录下的codemirror.css 文件

<script src="lib/codemirror.js"></script>
<link rel="stylesheet" href="/lib/codemirror.css">

 

接下来要引用的就是在mode目录下编辑器中要编辑的语言对应的js文件,下面以js文件为例:

<script src="mode/javascript/javascript.js"></script>

 

引用的文件用于支持对应语言的语法高亮。

然后,调用脚本以创建编辑器:

var myCodeMirror = CodeMirror(document.body);

 

这里的调用会在body中添加编辑器,这里因为直接在上面引用了javascript.js,所以这个编辑器会对javascript的关键字高亮显示。


想要高级一点,给编辑器添加一些元素,也可以通过传入配置参数来实现。

var myCodeMirror = CodeMirror(document.body,{
lineNumbers: true
});

 

这样,就给编辑器添加了行号。

上面说的是实现编辑器的最简单的方式,然后在实际项目中,一般都不会直接把body作为编辑器的容器。而最常用的,是使用textarea。


要把 textarea 实现成一个支持高亮的编辑器,CodeMirror 提供了非常简单的方法:

<textarea id="editor" name="editor"></textarea>

var myTextarea = document.getElementById('editor');
var CodeMirrorEditor = CodeMirror.fromTextArea(myTextarea, {
    mode: "text/javascript",
lineNumbers: true
});

 

配置说明

在使用CodeMirror的时候,不管是直接使用 CodeMirror() 还是使用 fromTextArea() ,都可以通过传递第二个参数来配置编辑器。


使用方法如下:

var myCodeMirror = CodeMirror(el, {
    // options...
});

 

或者

var myCodeMirror = CodeMirror.fromTextArea(el, {
    // options...
});

 

options 可以使用的参数

CodeMirror函数和它的fromTextArea方法都可以使用一个配置对象作为第二个参数。

 

value: string | CodeMirror.Doc
编辑器的初始值(文本),可以是字符串或者CodeMirror文档对象(不同于HTML文档对象)。

 

mode: string | object
通用的或者在CodeMirror中使用的与mode相关联的mime,当不设置这个值的时候,会默认使用第一个载入的mode定义文件。一般地,会使用 关联的mime类型来设置这个值;除此之外,也可以使用一个带有name属性的对象来作为值(如:{name: “javascript”, json: true})。可以通过访问CodeMirror.modes和CodeMirror.mimeModes获取定义的mode和MIME。

 

lineSeparator: string|null
明确指定编辑器使用的行分割符(换行符)。默认(值为null)情况下,文档会被 CRLF(以及单独的CR, LF)分割,单独的LF会在所有的输出中用作换行符(如:getValue)。当指定了换行字符串,行就只会被指定的串分割。

 

theme: string
配置编辑器的主题样式。要使用主题,必须保证名称为 .cm-s-[name] (name是设置的theme的值)的样式是加载上了的。当然,你也可以一次加载多个主题样式,使用方法和html和使用类一样,如: theme: foo bar,那么此时需要cm-s-foo cm-s-bar这两个样式都已经被加载上了。

 

indentUnit: integer
缩进单位,值为空格数,默认为2 。

 

smartIndent: boolean
自动缩进,设置是否根据上下文自动缩进(和上一行相同的缩进量)。默认为true。

 

tabSize: integer
tab字符的宽度,默认为4 。

 

indentWithTabs: boolean
在缩进时,是否需要把 n*tab宽度个空格替换成n个tab字符,默认为false 。

 

electricChars: boolean
在输入可能改变当前的缩进时,是否重新缩进,默认为true (仅在mode支持缩进时有效)。

 

specialChars: RegExp
需要被占位符(placeholder)替换的特殊字符的正则表达式。最常用的是非打印字符。默认为:/[\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/。

 

specialCharPlaceholder: function(char) → Element
这是一个接收由specialChars选项指定的字符作为参数的函数,此函数会产生一个用来显示指定字符的DOM节点。默认情况下,显示一个红点(•),这个红点有一个带有前面特殊字符编码的提示框。

 

rtlMoveVisually: boolean
Determines whether horizontal cursor movement through right-to-left (Arabic, Hebrew) text is visual (pressing the left arrow moves the cursor left) or logical (pressing the left arrow moves to the next lower index in the string, which is visually right in right-to-left text). The default is false on Windows, and true on other platforms.(这段完全不晓得搞啥子鬼)

 

keyMap: string
配置快捷键。默认值为default,即 codemorrir.js 内部定义。其它在key map目录下。

 

extraKeys: object
给编辑器绑定与前面keyMap配置不同的快捷键。

 

lineWrapping: boolean
在长行时文字是换行(wrap)还是滚动(scroll),默认为滚动(scroll)。

 

lineNumbers: boolean
是否在编辑器左侧显示行号。

 

firstLineNumber: integer
行号从哪个数开始计数,默认为1 。

 

lineNumberFormatter: function(line: integer) → string
使用一个函数设置行号。

 

gutters: array<string>
用来添加额外的gutter(在行号gutter前或代替行号gutter)。值应该是CSS名称数组,每一项定义了用于绘制gutter背景的宽度(还 有可选的背景)。为了能明确设置行号gutter的位置(默认在所有其它gutter的右边),也可以包含CodeMirror-linenumbers 类。类名是用于传给setGutterMarker的键名(keys)。

 

fixedGutter: boolean
设置gutter跟随编辑器内容水平滚动(false)还是固定在左侧(true或默认)。

 

scrollbarStyle: string
设置滚动条。默认为”native”,显示原生的滚动条。核心库还提供了”null”样式,此样式会完全隐藏滚动条。Addons可以设置更多的滚动条模式。

 

coverGutterNextToScrollbar: boolean
当fixedGutter启用,并且存在水平滚动条时,在滚动条最左侧默认会显示gutter,当此项设置为true时,gutter会被带有CodeMirror-gutter-filler类的元素遮挡。


inputStyle: string
选择CodeMirror处理输入和焦点的方式。核心库定义了textarea和contenteditable输入模式。在移动浏览器上,默认是 contenteditable,在桌面浏览器上,默认是textarea。在contenteditable模式下对IME和屏幕阅读器支持更好。

 

readOnly: boolean|string
编辑器是否只读。如果设置为预设的值 “nocursor”,那么除了设置只读外,编辑区域还不能获得焦点。

 

showCursorWhenSelecting: boolean
在选择时是否显示光标,默认为false。

 

lineWiseCopyCut: boolean
启用时,如果在复制或剪切时没有选择文本,那么就会自动操作光标所在的整行。

 

undoDepth: integer
最大撤消次数,默认为200(包括选中内容改变事件) 。

 

historyEventDelay: integer
在输入或删除时引发历史事件前的毫秒数。

 

tabindex: integer
编辑器的tabindex。

 

autofocus: boolean
是否在初始化时自动获取焦点。默认情况是关闭的。但是,在使用textarea并且没有明确指定值的时候会被自动设置为true。

 

低级选项

下面的选项仅用于一些特殊情况。

 

dragDrop: boolean
是否允许拖放,默认为true。

 

allowDropFileTypes: array<string>
默认为null。当设置此项时,只接收包含在此数组内的文件类型拖入编辑器。文件类型为MIME名称。

 

cursorBlinkRate: number
光标闪动的间隔,单位为毫秒。默认为530。当设置为0时,会禁用光标闪动。负数会隐藏光标。

 

cursorScrollMargin: number
当光标靠近可视区域边界时,光标距离上方和下方的距离。默认为0 。

 

cursorHeight: number
光标高度。默认为1,也就是撑满行高。对一些字体,设置0.85看起来会更好。

 

resetSelectionOnContextMenu: boolean
设置在选择文本外点击打开上下文菜单时,是否将光标移动到点击处。默认为true。

 

workTime, workDelay: number
通过一个假的后台线程高亮 workTime 时长,然后使用 timeout 休息 workDelay 时长。默认为200和300 。(完全不懂这个功能是在说啥)

 

pollInterval: number
指明CodeMirror向对应的textarea滚动(写数据)的速度(获得焦点时)。大多数的输入都是通过事件捕获,但是有的输入法(如IME)在某些浏览器上并不会生成事件,所以使用数据滚动。默认为100毫秒。

 

flattenSpans: boolean
默认情况下,CodeMirror会将使用相同class的两个span合并成一个。通过设置此项为false禁用此功能。

 

addModeClass: boolean
当启用时(默认禁用),会给每个标记添加额外的表示生成标记的mode的以cm-m开头的CSS样式类。例如,XML mode产生的标记,会添加cm-m-xml类。

 

maxHighlightLength: number
当需要高亮很长的行时,为了保持响应性能,当到达某些位置时,编辑器会直接将其他行设置为纯文本(plain text)。默认为10000,可以设置为Infinity来关闭此功能。

 

viewportMargin: integer
指定当前滚动到视图中内容上方和下方要渲染的行数。这会影响到滚动时要更新的行数。通常情况下应该使用默认值10。可以设置值为Infinity始终渲染整个文档。注意:这样设置在处理大文档时会影响性能。

 

转自:http://www.hyjiacan.com/codemirror-config/

项目地址:http://codemirror.net/

在线使用手册:http://codemirror.net/doc/manual.html

github地址:https://github.com/marijnh/codemirror

下载:CodeMirror-master

 

原文/转自:在线代码编辑器 CodeMirror 配置说明 - javascript开发的代码语法高亮显示引擎

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    在线代码编辑器(CodeMirror)

    CodeMirror是一款广泛使用的开源在线代码编辑器,专为在Web浏览器中实现代码编辑功能而设计。它支持多种编程语言,并提供了丰富的自定义选项,使得开发者可以根据项目需求进行定制。这款编辑器以其强大的语法高亮、...

    codemirror-5.2(web在线代码编辑器)

    3. **初始化编辑器**:使用JavaScript调用`CodeMirror.fromTextArea()`函数,传入`&lt;textarea&gt;`元素作为参数,并配置所需选项,如语法高亮和主题。 4. **添加插件和功能**:根据需求,你可以加载额外的模式文件(如`...

    CodeMirror在线代码编辑器

    CodeMirror是一款功能强大的开源在线代码编辑器,专为在网页上提供高质量的代码编辑体验而设计。这款编辑器以其灵活性、可扩展性和丰富的特性集而备受赞誉,支持多种编程语言,包括但不限于Java。以下是关于Code...

    codeMirror代码格式化(官方demo)

    CodeMirror是一款著名的开源在线代码编辑器,它支持多种编程语言的语法高亮和代码格式化功能。在网页应用中,CodeMirror常被用于提供一个交互式的代码编辑界面,让用户能够直接在浏览器中编写、编辑和格式化代码。这...

    代码高亮插件codemirror

    CodeMirror是一款广泛使用的开源代码编辑器,主要功能是为网页上的源代码提供语法高亮显示。这个插件能够提升开发者在网页上编写和展示代码时的体验,使其更易读、更美观。在"codemirror.zip"压缩包中,包含的是Code...

    gwt-codemirror-widget:在gwt中具有语法高亮显示的源代码编辑器-Source code editor

    `gwt-codemirror-widget` 是一个GWT的扩展库,它为GWT应用程序引入了CodeMirror,一个强大的、可定制的、支持多种编程语言语法高亮的源代码编辑器。 CodeMirror是一个流行的开源文本编辑器组件,广泛应用于在线代码...

    代码高亮显示javascript插件

    CodeMirror是一个流行的开源代码编辑器组件,广泛应用于在线编辑器、代码示例和教程网站。CodeMirror-2.22是其早期的一个版本,尽管如此,它依然提供了丰富的功能: 1. 多语言支持:CodeMirror不仅支持JavaScript,...

    codemirror

    **CodeMirror** 是一个强大的、开源的代码编辑器组件,主要应用于网页和Web应用程序中,为用户提供语法高亮、代码自动完成、错误检测等高级功能。这个插件因其易用性和丰富的特性,被广泛赞誉为网络上最好用的代码...

    新一代的CodeMirror一个浏览器中的开源代码编辑器

    综上所述,新一代的CodeMirror是一个全面的、高度可定制的浏览器内代码编辑器,它的出现极大地提升了Web开发中的代码编辑体验,对于JavaScript开发者尤其具有价值。通过不断进化和社区的支持,CodeMirror将继续为Web...

    codemirror-5.2

    CodeMirror是一个开源的、强大的在线代码编辑器,广泛用于网页开发中,允许用户在浏览器内直接编辑代码。这个"codemirror-5.2"压缩包包含了CodeMirror 5.2版本的所有文件,该版本发布于某个时间点,提供了一些新特性...

    codemirror在线代码编辑器

    CodeMirror是一款广泛使用的开源在线代码编辑器,专为Web开发者设计,可以在浏览器环境中提供便捷的代码编辑体验。这款编辑器以其高效、灵活和强大的特性深受开发者喜爱,支持多种编程语言的语法高亮显示,以及一...

    在线代码编辑器源码,开源在线代码编辑器

    在线代码编辑器是一种基于Web的工具,允许用户在浏览器中编写、编辑和运行代码,而无需在...对于想要构建自己的在线代码编辑器或者改进现有编辑器体验的开发者来说,理解和掌握CodeMirror的使用和开发是十分有益的。

    使用CodeMirror实现Python3在线编辑器的示例代码

    - **CodeMirror简介**:CodeMirror是一款非常强大的文本编辑器插件,主要用于网页上编辑代码,支持多种编程语言的语法高亮显示、自动补全等功能。它不仅适用于开发人员调试代码,也非常适合用于教学场景。 - **...

    codemirror-4.2示例代码

    CodeMirror 是一个强大的开源代码编辑器,常用于网页应用程序中,提供多种编程语言的语法高亮、自动补全、括号匹配等功能。在"codemirror-4.2示例代码"中,我们可以深入理解如何集成和使用这个库。这个压缩包包含了...

    codemirror下载包

    ** Codemirror** 是一个开源的、功能强大的代码编辑器组件,它可以在网页上实现各种编程语言的语法高亮、自动完成、错误检测等功能。这款编辑器广泛应用于在线编程环境、代码示例展示、教育平台等场景,允许用户在...

    CodeMirror-master

    CodeMirror是一款著名的开源代码编辑器,它以JavaScript编写,可以在网页上实现代码的实时编辑和高亮显示。这个"CodeMirror-master"压缩包文件很可能是CodeMirror项目的源码仓库,通常包含项目的核心代码、示例、...

    js代码高亮显示 JavaScript代码高亮 jsp

    3. CodeMirror:不仅是一个代码高亮工具,还是一个强大的在线代码编辑器,可用于创建代码编辑器组件。 三、在JSP中集成代码高亮 在JSP页面中集成JavaScript代码高亮,通常需要以下步骤: 1. 引入库:在JSP页面的`...

    CodeMirror在线代码编辑器 v5.65.16.zip

    CodeMirror的核心功能包括语法高亮、自动缩进、代码折叠、行号显示、错误检测以及拖放支持等。这些特性使得它成为开发者和学习者在Web应用中进行代码编辑的理想选择。此外,CodeMirror还提供了丰富的API和可扩展的...

    CodeMirror-2.25.zip

    CodeMirror是一款广泛应用于网页开发中的开源代码编辑器,它的主要功能是为网页中的代码片段提供语法高亮显示,提升代码的可读性和编辑体验。在编程教育、在线编程平台、博客文章以及各种Web应用程序中都能看到Code...

    前端开源库-react-code-mirror

    **React Code Mirror** 是一个基于 Facebook 的 **React** 框架开发的代码编辑器组件,它利用了 **CodeMirror** 这个流行的、可高度定制的文本编辑器库。这个开源库允许开发者在他们的 React 应用程序中集成一个功能...

Global site tag (gtag.js) - Google Analytics