CodeMirror
构造函数和 fromTextArea
函数都有配置对象参数(可选)。
没有该参数的其他函数会从 CodeMirror.defaults
属性中获取默认配置,默认配置是可修改的。
虽然所有函数都不校验配置的正确性,但如果配置错误,将会引发奇怪的异常。
所有支持的配置如下:
value: string|CodeMirror.Doc
mode: string|object
"null"
:不处理代码高亮。name
属性,可含有配置参数(如:{name: "javascript", json: true}
)。CodeMirror.modes
和 CodeMirror.mimeModes
来查看已成功引入的 Mode,
CodeMirror.modes
返回 Mode 的构造函数,CodeMirror.mimeModes
返回 Mode 的 MIME 类型。lineSeparator: string|null
"null"
:文档使用 CRLFs 分割(CRs+LFs),输出值使用 LF 分割 (如使用 getValue
获取值时)。theme: string
"default"
:默认值,在 codemirror.css
中定义。"foo bar"
表示同时使用 cm-s-foo
和 cm-s-bar
。.cm-s-[name]
的 CSS 文件(参考 theme
目录)。indentUnit: integer
smartIndent: boolean
tabSize: integer
indentWithTabs: boolean
tabSize
个空格替换为 N 个 Tab 来作为缩进块。默认为 false。electricChars: boolean
specialChars: RegExp
/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/
。specialCharPlaceholder: function(char) → Element
specialChars
匹配到的字符,替换成 DOM 元素来占位。
默认为红色的圆点(•)。direction: "ltr" | "rtl"
rtlMoveVisually: boolean
false
,在其他操作系统中默认为 true
。keyMap: string
"default"
,这是 codemirror.js
唯一定义的快捷键表。
参考 keymap
目录,和 快捷键 章节。extraKeys: object
keyMap
基础上增加额外的快捷键。可以是 null 或有效的快捷键。configureMouse: fn(cm: CodeMirror, repeat: "single" | "double" | "triple", event: Event) → Object
unit: "char" | "word" | "line" | "rectangle" | fn(CodeMirror, Pos) → {from: Pos, to: Pos}
"word"
,
连点三下是 "line"
,
按下 Alt 并点击是 "rectangle"
(Chrome OS 中是 meta-shift-clicks),
其他情况下是 "single"
。extend: bool
addNew: bool
moveOnDrag: bool
lineWrapping: boolean
lineNumbers: boolean
firstLineNumber: integer
lineNumberFormatter: function(line: integer) → string
gutters: array<string | {className: string, style: ?string}>
width
。CodeMirror-linenumbers
样式来调整行号侧边栏的位置(默认为所有侧边栏的右侧)。setGutterMarker
函数的参数。fixedGutter: boolean
scrollbarStyle: string
"native"
使用系统滚动条,"null"
时隐藏滚动条。coverGutterNextToScrollbar: boolean
fixedGutter
为 true 时,水平滚动条左边的侧边栏可见。
当该参数为 true 时,会使用样式名为 CodeMirror-gutter-filler
的 DOM 元素覆盖水平滚动条左边的部分侧边栏。inputStyle: string
"textarea"
和 "contenteditable"
两种模式。"contenteditable"
,桌面浏览器默认使用 "textarea"
。"contenteditable"
对 IME 和屏幕阅读器的支持比较好,未来会成为桌面浏览器的默认值。readOnly: boolean|string
"nocursor"
可以禁止编辑器获得焦点。showCursorWhenSelecting: boolean
lineWiseCopyCut: boolean
pasteLinesPerSelection: boolean
selectionsMayTouch: boolean
undoDepth: integer
historyEventDelay: integer
tabindex: integer
autofocus: boolean
fromTextArea
函数初始化编辑器时,如果 Textarea 已经获得焦点,
或 Textarea 有 autofocus
属性且其他元素未获得焦点时,该值为 true。phrases: ?object
phrase
函数实现翻译功能。下面是不常用的配置,只有遇到非常具体的问题时才会用到,第一次阅读该手册时可以选择跳过。
dragDrop: boolean
allowDropFileTypes: array<string>
null
),参数是由 MIME 类型组成的数组。
编辑器会用浏览器返回的 File
的 type
来确定其合法性。
cursorBlinkRate: number
cursorScrollMargin: number
cursorHeight: number
0.85
)可以实现更好的视觉效果。resetSelectionOnContextMenu: boolean
workTime, workDelay: number
workTime
微秒后休眠 workDelay
微秒,默认为200 和 300。pollInterval: number
flattenSpans: boolean
addModeClass: boolean
"cm-m-"
前缀开头的 CSS 样式,代表该 Token 是由哪个 inner Mode 提供的,
比如 cm-m-xml
表示该 Token 来自 XML Mode。
默认为 false。maxHighlightLength: number
Infinity
时,渲染所有行。viewportMargin: integer
Infinity
时,渲染所有行,可以使用浏览器的搜索功能,但在渲染大文档时会影响编辑器的性能。spellcheck: boolean
autocorrect: boolean
autocapitalize: boolean