CodeMirror中文說明文檔

文檔大綱

本文檔並未完全翻譯完成,我需要你的幫助。前往GitHub編輯

插件

該部分包含一系列可複用的組件,能用來爲編輯器擴展額外的功能(類似 defineOptiondefineExtension,和 registerHelper)。如下:

dialog/dialog.js
提供一种非常简单的方式来查询用户的文本输入。 添加 openDialog(template, callback, options) → closeFunction 函数给 CodeMirror 對象, 可以由 inputbutton 标签调用,返回一个处理用户出入的回调函數。 返回值 closeFunction 函數,調用該函數將立刻關閉對話框。 openDialog 的參數:
closeOnEnter: bool
默認爲true,輸入回車時關閉對話框。
closeOnBlur: bool
對話框失去焦點時是否應該自動關閉。默認爲 true
onKeyDown: fn(event: KeyboardEvent, value: string, close: fn()) → bool
對話框 keydown 事件的回调函數。 返回 true 时對話框不会向下传递该事件。
onKeyUp: fn(event: KeyboardEvent, value: string, close: fn()) → bool
onKeyDown
onInput: fn(event: InputEvent, value: string, close: fn()) → bool
onKeyDown
onClose: fn(instance):
對話框关闭后的回调函數。无返回值。

新增 openNotification(template, options) → closeFunction 函数,在編輯器的顶部添加 HTML 片段来显示提示。 选项只有一个参数: duration 提示自動關閉的時間。 duration 爲0時不自動關閉。

依賴 addon/dialog/dialog.css

search/searchcursor.js
新增 getSearchCursor(query, start, options) → cursor 函數,用來實現搜索和替換功能。 query 可爲正則表達式。 start 爲匹配的起始位置,可以是 {line, ch} 對象,或省略該參數使用默認值,文檔的開始。 options 对象可选,包含 `caseFold: false` 属性来忽视大小写,包含 `multiline: disable` 属性来关闭多行匹配(可提高性能)。 该对象有以下函数:
findNext() → boolean
findPrevious() → boolean
上一个或下一个搜索结果。 返回之旐示是否搜索到结果。 使用正则搜索时,返回值是一个由 match 函數返回的數組,可以用來提取匹配到的組。
from() → {line, ch}
to() → {line, ch}
這兩個函數只有在 findNextfindPrevious 返回 fasle 时有用。 返回 {line, ch} 對象指向匹配的開始和結束。
replace(text: string, ?origin: string)
使用提供的文本替換當前的匹配結果,並調整光標的位置到替換處。
實現搜索命令。CodeMirror 默认会绑定快捷键,但不会处理该事件。 依賴于 searchcursor.js ,並且會調用 openDialog 來美化搜索界面。
search/jump-to-line.js
實現 jumpToLine 命令並綁定 Alt-G 快捷键。 接受 linenumber+/-linenumberline:charscroll%:linenumber 格式。 使用 openDialog 來使行號提示更整潔。
search/matchesonscrollbar.js
新增 showMatchesOnScrollbar 函数,接受一个查询參數(字符串或正则表达式), 可选折叠标志(只用于字符串),可选class名(默認)CodeMirror-search-match。 调用时,把所有匹配结果显示在編輯器的垂直滚动条上。 该函数返回对象里的 clear 函数可以用来清除匹配。 依賴 annotatescrollbar 插件, 和 matchesonscrollbar.css 文件,提供一个默认的CSS定義作为匹配结果的显示。 注意只有在滚动条的上面和下面没有按钮时才能完美的显示。 你可以使用 simplescrollbar 插件来确保能完美的显示。 如果加载了该插件,search 插件會自動調用該插件。
edit/matchbrackets.js
添加 matchBrackets 选项,設置爲 true 或默认时,高亮显示光标处的括号和對應的括号。 新增 matchBrackets 函数来强制一次高亮括号, 和 findMatchingBracket 函数,可用于运行内部使用的包围式查找算法。 它采用起始位置和可选的config对象。 默认情况下,它将在光标之前或之后找到匹配的可匹配字符(优先选择匹配的字符),但是您可以使用以下选项控制其行为:
afterCursor
僅在開始位置之後使用該字符,而不在其之前使用該字符.
strict
僅考慮兩個方括號都位于起始位置同一側的匹配項.
maxScanLines
在没有匹配成功的情况下,扫描此行数后停止。 默认为1000。
maxScanLineLength
忽略比这更长的行。 默认为10000
maxHighlightLineLength
不要在一行中突出显示一个比这更长的括号。 预设为1000。
edit/closebrackets.js
定義一個 autoCloseBrackets 选项,将自动补全括号和引号。 默认情况下,它将自动补全 ()[]{}''"",但是您可以向其傳遞與之相似的字符串(包含成對的匹配字符),或傳遞具有 pairs 的對象,還可以用 explode 属性自定義 。 explode 应该是一个相似的字符串,该字符串应提供成对的字符,當在它们之间按Enter键时,应该让第二个字符也移到自己的行。 默认情况下,如果活动模式具有 closeBrackets 属性,则该属性将覆盖该选项中给定的配置。 但是,您可以添加带有真实值的 override 屬性以覆蓋特定于模式的配置。 參考Demo
edit/matchtags.js
新增 matchTags 選項,可以讓光標處的標簽高亮顯示(使用 CodeMirror-matchingtag 样式)。 新增 toMatchingTag 命令 , 可以绑定一个快捷键来将光标移动到闭合标签处。 依賴 addon/fold/xml-fold.js 插件。 參考Demo
edit/trailingspace.js
新增 showTrailingSpace 選項,使用 cm-trailingspace 样式标注到行位的空白。 參考使用下划线标注的 Demo
edit/closetag.js
新增 autoCloseTags 选项,當输入 '>' 或 '/' 时自动闭合 XML 标签, 新增 closeTag 命令,用来关闭打开的标签。 依賴 fold/xml-fold.js 插件。 參考 Demo
edit/continuelist.js
Markdown 的插件。 新增 "newlineAndIndentContinueMarkdownList" 命令, 按下 enter 键时自动插入列表头字符。 參考 Markdown mode demo
comment/comment.js
注釋和取消注釋。增加四個函數:
toggleComment(?options: object)
嘗試取消選擇區域的注釋,如果失敗,則注釋該行。
lineComment(from: {line, ch}, to: {line, ch}, ?options: object)
对给定行进行行注释。 如果當前Mode未定義行注释样式,则使用 blockComment
blockComment(from: {line, ch}, to: {line, ch}, ?options: object)
对指定范围进行块注释。 如果當前Mode未定義块注释样式,则使用 lineComment
uncomment(from: {line, ch}, to: {line, ch}, ?options: object) → boolean
取消指定范围的注释。 指定范围内有注释并成功取消注释,则返回 true
這四個函數的 options 對象可包含一下屬性:
blockCommentStart, blockCommentEnd, blockCommentLead, lineComment: string
使用自定義注釋字符覆蓋Mode的 comment 属性
padding: string
關閉注釋標記之前,在打開和頭標記之後插入一個字符串。默認是一個空格。
commentBlankLines: boolean
添加行注釋時,判斷是否爲空白行進行注釋。
indent: boolean
當爲true時,在添加行注釋時,將該行與注釋快的第一行進行縮進來對齊。
fullLines: boolean
处理块注释时,该选项用来决定应该将整行缩进,还是仅缩进指定范围。 默认 true
該插件還增加了 toggleComment 命令,方便調用無配置的 toggleComment 函數。
fold/foldcode.js
折叠代码块。 新增 foldCode 函数,在指定的行处尝试折叠,或展开已折叠的代码块。 第一个参数为应该开始折叠的行(可以是行号或 Pos), 第二个可选参数可以是一个范围查找函数或一个配置對象,支持以下配置:
rangeFinder: fn(CodeMirror, Pos)
范围查找函數。 默認使用 CodeMirror.fold.auto , 即使用 getHelpers 函数来查找當前 mode 下 "fold" 类型對應的查找函數。 addon/fold/ 目錄下的文件提供 CodeMirror.fold.brace, 可以在多种编程语言(JavaScript、C、Java等)中查找代码块, CodeMirror.fold.indent 用來給縮進確定代碼塊的編程語言(Python、Haskell), CodeMirror.fold.xml 用来给 XML 类型的变成语言查找代码块, CodeMirror.fold.comment 判斷注釋代碼塊。
widget: string | Element | fn(from: Pos, to: Pos) → string|Element
用来代表被折叠代码块的小部件。 可以是一个由 CodeMirror-foldmarker 样式修饰的字符串,或一个DOM元素。 为了动态的生成小部件,该参数可以是一个返回字符串或DOM元素的函數。 该函数被调用时,会传递需要折叠的代码块的范围。
scanUp: boolean
为 true 时(默认 false),如果指定行不可折叠,该插件会尝试从该行向上查找可折叠的代码块。
minFoldSize: integer
最少多少行可以被折疊。默認0,表示可折疊單行。
參考 Demo
fold/foldgutter.js
新增 foldGutter 选项,可以用来创建一个侧边标记,标示可被折叠的块。 使用 gutters 选项创建一个侧边栏, 给它一个 CodeMirror-foldgutter 样式或其他样式, 然后该插件会在被折叠处或可折叠处在侧边栏上显示标记,并处理侧边栏的点击事件。 注意:需要为侧边栏指定CSS样式,并包含折叠标记的样式。 默认CSS样式在 addon/fold/foldgutter.css 中定義。 该选项可以是 true 或包含以下屬性的對象:
gutter: string
侧边栏的CSS样式。 默认为 "CodeMirror-foldgutter"。 你需要自己设置它的宽度(和背景)。 參考上面的侧边栏规则。
indicatorOpen: string | Element
一个 CSS 样式或 DOM 元素用来标示可折叠的块。 默认为 "CodeMirror-foldgutter-open"
indicatorFolded: string | Element
一个 CSS 样式或 DOM 元素用来标示已被折叠的块。 默认为 "CodeMirror-foldgutter-folded"
rangeFinder: fn(CodeMirror, Pos)
用来确定可折叠块的范围查找函數。 默认为 CodeMirror.fold.auto
編輯器的 foldOptions 选项可以設置爲一个對象,提供大量默认配置。 參考Demo
runmode/runmode.js
不创建编辑器实例,使用 mode 渲染文本。 參考 Demo。 还有备用文件版本,addon/runmode/runmode-standalone.js 单机版(不引入CodeMirror), 和 addon/runmode/runmode.node.jsnode.js 环境(參考 bin/source-highlight)。
runmode/colorize.js
一个在网页中高亮代码的简单方法。 依賴于 runmode 插件(或它的变种)。 增加 CodeMirror.colorize 函数,参数为一个包含需要被高亮处理的DOM元素的数组(或可数组化的集合)。 默认为所有 pre 标签。 需要读取 data-lang 属性来确定它们的编程语言,和對應Mode的颜色(你需要自己引入相关Mode的依賴文件)。 第二个参数为默认的Mode,用来修饰其他元素。 本手册中就是用的该方法。
mode/overlay.js
Mode 组合器,可以在基础 Mode 上扩展一个 Mode ,在不干扰基础 Mode 的基础上高亮部分文本。 Defines CodeMirror.overlayMode, which is used to create such a mode. 定義 CodeMirror.overlayMode 来创建这样一个mode。 參考 Demo
mode/multiplex.js
Mode 组合器,可以混合多个 Mode。 定義 CodeMirror.multiplexingMode ,第一个参数为Mode對象, 第二个参数为包含 {open, close, mode [, delimStyle, innerStyle, parseDelimiters]} 任意数量的對象, 将会返回一个 Mode 對象,使用第一个参数传递的Mode来解析, 但是在遇到 open 字段中的字符串时立马切换为另一种Mode。 在子Mode中,遇到 close 定義的字符串时返回父Mode。 将 openclose 設置爲 "\n" 來在遇到空白行時切換Mode。
  • 指定 delimStyle 時,會使用該樣式來修飾切換關鍵詞([delimStyle]-open 修飾開始關鍵詞,[delimStyle]-close 修飾結束關鍵詞)。
  • 指定 innerStyle 時,會修飾子Mode中所有的切換關鍵詞。
  • parseDelimiters 为 true 时,切换关键词也会被定義为内部Mode(delimStyle 參數將會被忽略)。
外部Mode不会关注内部的内容。 參考 Demo
hint/show-hint.js
自动补全提示框架。 增加 editor.showHint 配置,弹出一个小部件让用户选择补全。 由参数为编辑器实例和配置的函数(hint配置)完成查找, 返回 {list, from, to} 對象,list 爲字符串或對象組成的數組(補全列表), fromto 爲需要替換字符串的開始與結束位置,爲 {line, ch} 对象。 补全對象的 selectedHint 是可選屬性(數字),用來控制默認選擇的提示。
如果沒有提供提示函數,插件會使用 CodeMirror.hint.auto, 基于 "hint" 類型調用 getHelpers 函数来查找可用的提示函数,并一个一个地尝试。 如果失败,将查找 "hintWords" 工具類來提取該Mode下可補全的單詞,並調用 CodeMirror.hint.fromList 來完成自動補全。
當补全对象不是字符串时,应该是包含一下属性的对象:
text: string
補全文本,這是唯一必傳的參數。
displayText: string
菜單中展示的文本。
className: string
菜單中補全行的CSS樣式名。
render: fn(Element, self, data)
使用第一个参数来创建补全的DOM结构的函數。
hint: fn(CodeMirror, self, data)
应用补全的函数,可用来替代默认的补全函數。
from: {line, ch}
指定 pick() 的開始位置,而不是整個補全列表。
to: {line, ch}
指定 pick() 的結束位置,而不是整個補全列表。
插件可以理解以下選項,這些選項可以直接傳遞到 showHint 的參數中,或通過爲編輯器設置 hintOptions 选项来提供(前者优先)。 options对象也将传递给提示功能,该功能可能会理解其他选项。
hint: function
补全函數。 可以将提示函数的 async 属性設置爲true,在这种情况下,它将使用参数(cm, callback, ?options)进行调用, 并且仅當提示函数调用回调时才会弹出完成界面,并向回调传递包含补全對象的参数。 补全函数也可以返回 Promise 對象,當 Promise 完成时再弹出补全界面。 补全函数默认只在没有选区时启用。 你可以把 supportsSelection 属性設置爲真实的值给补全函数来启用对选区的支持。
completeSingle: boolean
當只有一个补全对象可用时是否完成补全而不显示對話框。默认为true。
alignWithWord: boolean
彈出菜單應該與單詞的頭部對齊(默認),還是應該與光標對齊(false)。
closeOnUnfocus: boolean
當编辑器失去焦点时,自动关闭弹出菜单(默認)。
customKeys: keymap
自定義在弹出菜单显示时的快捷键。 快捷键的处理函数在被调用时会被传递额外的参数,如被 moveFocus(n)setFocus(n)pick()close() 函数(參考源代码)调用时, 这些函数用来修改选中對象,选择當前元素或关闭當前菜单。 另外 menuSize() 函数可以获取當前菜单中补全對象的数量, length 屬性爲可用補全對象的數量, data 屬性可以獲取補全函數的返回對象。
extraKeys: keymap
類似 customKeys,用來給默認快捷鍵做補充,而不是覆蓋默認快捷鍵。
在補全過程中,會觸發以下事件:
"shown" ()
菜單彈出時觸發。
"select" (completion, Element)
補全對象被選中時觸發。參數爲補全對象(字符串或對象)和菜單中的DOM元素。
"pick" (completion)
補全對象被應用時觸發。參數爲補全對象(字符串或對象)。
"close" ()
補全完成時觸發。
该插件依賴 addon/hint/show-hint.css 样式。 參考 Demo
hint/javascript-hint.js
为 JavaScript(CodeMirror.hint.javascript)和 CoffeeScript(CodeMirror.hint.coffeescript)實現了一个简单的代码提示函數。 只提供对象及其属性的信息提示。
hint/xml-hint.js
定義 CodeMirror.hint.xml ,为 XML 标签名、属性名、属性值提供提示, 由 schemaInfo 选项控制(hinting 函数的第二个参数,或 CodeMirror.showHint 函數的第三個參數)。
该参数应该为一个定義了标签名和信息对照信息的對象, 和可选参数 "!top",包含顶级标签的名字列表。 这些参数有可选的 children 属性(由可用子类元素名子组成数组,省略时允许所有元素出现), 和 attrs 參數(null 時不作提示,和屬性禁止使用的值)。
額外的屬性:
matchInMiddle: boolean
是否可以在任意位置進行匹配,不只在行首處進行匹配。默認爲false。
參考Demo
hint/html-hint.js
为 HTML 提供 xml 提示。 增加 CodeMirror.htmlSchema 對象,可以传递给 schemaInfo 选项, 和 CodeMirror.hint.html 命中函數,自動調用 CodeMirror.hint.xml 函數。 參考Demo
hint/css-hint.js
为 CSS、SCSS、和 LESS 提供命中函數。 增加 CodeMirror.hint.css
hint/anyword-hint.js
一個非常簡單的命中函數(CodeMirror.hint.anyword ),只查找代码附近的单词并提示补全。 参数 word 可选,匹配单词的正则表达式(一个或多个字符), 参数 range 可選,補全時應該搜索多少行(默認500)。
hint/sql-hint.js
SQL 提示。新增 CodeMirror.hint.sql。 参数 tables,表名与其對應字段名的對象, 参数 defaultTable,自動補全對應表名的字符串。
search/match-highlighter.js
增加 highlightSelectionMatches 选项,高亮内容中所有与选择的单词一致的单词。 可以为 true 或拥有以下属性的对象: minChars,高亮處理最少的單詞數量(默認2), style,高亮的樣式(默認"matchhighlight"對應 cm-matchhighlight CSS樣式), trim,是否應該排除選擇區域前後的空白符, showToken 可爲 true,或由一个单词组成的正则表达式。 为 true 时,没有选区时将當前单词高亮显示(默认关闭)。 參考Demo
lint/lint.js
为源代码增加可插拔的格式警告界面(參考addon/lint/html-lint.jsaddon/lint/json-lint.jsaddon/lint/javascript-lint.jsaddon/lint/coffeescript-lint.jsaddon/lint/css-lint.js)。 增加 lint 選項,可以是注解源(如 CodeMirror.lint.javascript), 可以是一个配置对象(包含 getAnnotations 屬性作爲注解源),或 true。 没有指定注解源时,使用 getHelper 函數查找類型爲 "lint" 的注解函數。 注解函数的参数应该包含:内容字符串、选项对象和编辑器实例,应该返回由 {message, severity, from, to} 對象組成的數組,代表所出现的问题。 當注解函数的 async 属性可用时,注解函数被调用时会被传递第二个参数,一个带有问题数组的回调函數。 注解函数也可以返回 Promise 對象,仅當 Promise 对象完成后处理格式警告。 默认的,每當修改文档时,格式警告函数都会被调用。 可以设置 lintOnChange: false 选项来禁用。 可以设置 selfContain: true 选项来在编辑器实例内渲染提示。 依賴 addon/lint/lint.css。 參考Demo
selection/mark-selection.js
當启用 styleSelectedText 選項時,使用 CodeMirror-selectedtext CSS 样式来标记指定区域的文字。 用来修改指定区域的颜色(背景色)。 參考Demo
selection/active-line.js
增加 styleActiveLine 选项,启用时, 为當前行增加由 CodeMirror-activeline 样式修饰的 wrapper, 增加由 CodeMirror-activeline-background 样式修饰的背景, 为當前行的侧边栏增加 CodeMirror-activeline-gutter 样式。 这些选项可以是 boolean 或包含下面属性的对象:
nonEmpty: bool
判断有选区时是否标记當前行。默认false(不标记)。
參考Demo
selection/selection-pointer.js
增加 selectionPointer 选项,用来控制當鼠标悬浮在选区上是的样式。 可以是一个字符串,例如 "pointer",或 true,使用 "default" (箭头)。 參考 mode/htmlmixed/index.html
mode/loadmode.js
增加 CodeMirror.requireMode(modename, callback) 函数,加载指定的 Mode,成功后调用回调函數。 你需要指定 CodeMirror.modeURL 作为Mode加载路径, 例如 "mode/%N/%N.js"%N 为Mode名。 增加 CodeMirror.autoLoadMode(instance, mode) 函数,确保给定的Mode被加载,并在加载成功后刷新指定编辑器实例的Mode。 參考Demo
mode/meta.js
Provides meta-information about all the modes in the distribution in a single file. 将所有 Mode 的meta信息集中在一个文件中。 增加 CodeMirror.modeInfo,由 {name, mime, mode} 對象組成的數組, name 是可閱讀的名字,mime 是 MIME 类型,mode 是定義了该 MIME 的 Mode 的名字。 该对象还包含可选属性 mimes,是具有多个 MIME 关联的 Mode 的 MIME 数组, 可选属性 ext,为所关联的文件扩展名数组。 增加四个便捷的函数:CodeMirror.findModeByMIMECodeMirror.findModeByExtensionCodeMirror.findModeByFileNameCodeMirror.findModeByName, 可根据MIME、扩展名、文件名、Mode名来查找 Mete 对象。 注意:由于历史原因,该文件位于根目录下的 mode 目錄,而不是 addon 目录。 參考Demo
comment/continuecomment.js
增加 continueComments 选项,當在注释块内按下回车键时,是否应该继续添加注释行。 可以是 boolean 值来启用/关闭该功能。 为字符串时,使用自定義字符来添加注释行。 为对象时,key 属性来自定義字符,continueLineComment 判斷是否應該繼續添加注釋(默認爲true)。
display/placeholder.js
增加 placeholder 选项,在编辑器为空且为选中时替换編輯器的内容。 可以是字符串或DOM元素。 增加 CodeMirror-empty CSS 样式,當编辑器内容为空时使用。 參考Demo
display/fullscreen.js/dt>
增加 fullScreen 选项,當为 true 时,将编辑器設置爲浏览器全屏。 依賴 addon/display/fullscreen.css。 參考Demo
display/autorefresh.js
使用隱藏的DOM元素初始化編輯器時,很難在編輯器可見時調用 refresh 函數。 增加 autoRefresh 属性,設置爲 true 来确保启用,如果编辑器初始化时不可见,这将确保在编辑器可见时进行刷新。 每 250 微秒(可以用 {delay: 500} 来配置该时间)调用一次。 注意:该插件只在编辑器可见时刷新一次编辑器,无视后续的 restyling 和 resizing 。
scroll/simplescrollbars.js
增加兩個滾動條模式 "simple""overlay"(參考 Demo), 可由 scrollbarStyle 配置进行选择。 依賴 addon/scroll/simplescrollbars.css,可以覆盖该样式来自定義滚动条样式。
scroll/annotatescrollbar.js
在滚动条上增加标记,可以跳转到文档的對應位置。 增加 annotateScrollbar 函数,参数为 CSS 样式名,来创建一组注释。 该函数返回 update 函數,參數爲由 {from: Pos, to: Pos} 对象组成的有序数组,标记需要高亮的范围。 调用對象的 clear 函數可以清除標記。
display/rulers.js
增加 rulers 选项,为编辑器增加多条垂直标尺。 该值为 {column [, className, color, lineStyle, width]} 组成的数组或数字(列)组成的数组。 标尺在 column 屬性指定的列處顯示。 className 属性定義标尺使用的样式。 參考Demo
display/panel.js
增加 addPanel 函数,可以在编辑器实例的上方或下方添加DOM元素,并缩小编辑器来为该元素腾出空间。 该函数第一个参数为DOM元素,第二个参数为可选的对象。 该函数返回的 Panel 對象的 clear 函數可以清除該面板, changed 函數可以在面板的尺寸改變時通知插件。
該函數由下面的選項:
position: string
新增面板的位置:
top(默認)
最頂部。
after-top
頂部區域內的底部。
bottom
最底部。
before-bottom
底部區域內的頂部。
before: Panel
指定面板的前面。
after: Panel
指定面板的後面。
replace: Panel
替換指定面板。
stable: bool
在指定面板上方添加面板時,是否滾動編輯器來確保文字的垂直位置固定。默認爲false。
使用 afterbeforereplace 時,如果指定面板不存在或已被刪除,將會使用 position 選項作爲備用。
參考Demo
wrap/hardwrap.js
段落硬換行插件。添加如下函數:
wrapParagraph(?pos: {line, ch}, ?options: object)
分割指定位置的段落。 如果没有指定 pos ,默認將會使用光標的位置。
wrapRange(from: {line, ch}, to: {line, ch}, ?options: object)
將指定範圍歸爲一段。
wrapParagraphsInRange(from: {line, ch}, to: {line, ch}, ?options: object)
將指定範圍內的段落歸爲一段。
支持配置:
paragraphStart, paragraphEnd: RegExp
一般把空白行作爲段落分割。該配置可以把指定規則作爲段落的開始和結束。
column: number
行的列數。默認80。
wrapOn: RegExp
正则表达式,只允许使用两个匹配字符进行分段。 该插件默认只在空白符和破折号后分段。
killTrailingSpace: boolean
判斷分段後應該保留這串空格還是刪除這串空格。默認爲true。
參考Demo
merge/merge.js
使用2或3視圖來合並更改。 CodeMirror.MergeView 構造函數與 CodeMirror 构造函数的参数類似, 第一个参数为界面的DOM元素,第二个参数为配置对象。 配置会传递到视图内的编辑器中。 支持以下额外的配置:
origLeft and origRight: string
如果提供了文档的多个原始版本,将会在左右两边创建只读的编辑器实例。 合并界面会高亮显示在原文件和可编辑文件直接的修改。 2视图(相对于3视图)只有一个原视图。
revertButtons: boolean
是否显示还原更改按钮,默认为 true。
revertChunk: fn(mv: MergeView, from: CodeMirror, fromStart: Pos, fromEnd: Pos, to: CodeMirror, toStart: Pos, toEnd: Pos)
自定義还原一个块的更改的行为。
connect: string
修改块的连接器的样式。默认,连接器可见。設置爲 "align" 時,使用更小的連接器。
collapseIdentical: boolean|number
When true (default is false), stretches of unchanged text will be collapsed. 为true时(默认 false),无修改的文本将被折叠。 为数字时,该段的头多少行将保留可见(默认为2)。
allowEditingOriginals: boolean
原始編輯器是否可編輯,默認爲false。
showDifferences: boolean
为true时(默認),改动的文本高亮显示。
chunkClassLocation: string|Array
默認使用 addLineClass 函数来为高亮行添加 "background" 。 使用该参数可以自定義。
該插件還提供 "goNextDiff""goPrevDiff" 函数来快速跳转修改块。 參考Demo
tern/tern.js
基于 Tern JavaScript 分析引擎,为补全、查找定義和重构提供帮助。 參考 Demo。 更多使用场景參考 addon/tern/tern.jsTern官網上的例子