1、介绍
Ace是一个用JavaScript编写的可嵌入代码编辑器。它与Sublime,Vim和TextMate等本机编辑器的功能和性能相匹配。它可以轻松地嵌入任何网页和JavaScript应用程序中。
2、在项目中配置Ace
// 将代码模式配置到ace选项
ace.edit(element, {
mode: "ace/mode/javascript",
selectionStyle: "text"
})
// 使用setOptions方法一次设置多个选项
editor.setOptions({
autoScrollEditorIntoView: true,
copyWithEmptySelection: true,
});
// 单独设置setOptions方法
editor.setOption("mergeUndoDeltas", "always");
// 一些选项也直接设置,例如:
editor.setTheme(...)
// 获取选项设置值
editor.getOption("optionName");
// 核心Ace组件包括(editor, session, renderer, mouseHandler)
setOption(optionName, optionValue)
setOptions({
optionName : optionValue
})
getOption(optionName)
getOptions()
3、API选项
以下是目前所有支持的选项的列表。除非另有说明,否则选项值皆为布尔值,可以通过editor.setOption来设置。
3.1 editor选项
| 选项名 |
值类型 |
默认值 |
可选值 |
备注 |
| selectionStyle |
String |
text |
line|text |
选中样式 |
| highlightActiveLine |
Boolean |
true |
- |
高亮当前行 |
| highlightSelectedWord |
Boolean |
true |
- |
高亮选中文本 |
| readOnly |
Boolean |
false |
- |
是否只读 |
| cursorStyle |
String |
ace |
ace|slim|smooth|wide |
光标样式 |
| mergeUndoDeltas |
String|Boolean |
false |
always |
合并撤销 |
| behavioursEnabled |
Boolean |
true |
- |
启用行为 |
| wrapBehavioursEnabled |
Boolean |
true |
- |
启用换行 |
| autoScrollEditorIntoView |
Boolean |
false |
- |
启用滚动 |
| copyWithEmptySelection |
Boolean |
true |
- |
复制空格 |
| useSoftTabs |
Boolean |
false |
- |
使用软标签 |
| navigateWithinSoftTabs |
Boolean |
false |
- |
软标签跳转 |
| enableMultiselect |
Boolean |
false |
- |
选中多处 |
3.2 renderer选项
| 选项名 |
值类型 |
默认值 |
可选值 |
备注 |
| hScrollBarAlwaysVisible |
Boolean |
false |
- |
纵向滚动条始终可见 |
| vScrollBarAlwaysVisible |
Boolean |
false |
- |
横向滚动条始终可见 |
| highlightGutterLine |
Boolean |
true |
- |
高亮边线 |
| animatedScroll |
Boolean |
false |
- |
滚动动画 |
| showInvisibles |
Boolean |
false |
- |
显示不可见字符 |
| showPrintMargin |
Boolean |
false |
- |
显示打印边距 |
| printMarginColumn |
Number |
80 |
- |
设置页边距 |
| printMargin |
Boolean|Number |
false |
- |
显示并设置页边距 |
| fadeFoldWidgets |
Boolean |
false |
- |
淡入折叠部件 |
| showFoldWidgets |
Boolean |
true |
- |
显示折叠部件 |
| showLineNumbers |
Boolean |
true |
- |
显示行号 |
| showGutter |
Boolean |
true |
- |
显示行号区域 |
| displayIndentGuides |
Boolean |
true |
- |
显示参考线 |
| fontSize |
Number|String |
inherit |
- |
设置字号 |
| fontFamily |
String |
inherit |
|
设置字体 |
| maxLines |
Number |
- |
- |
至多行数 |
| minLines |
Number |
- |
- |
至少行数 |
| scrollPastEnd |
Boolean|Number |
0 |
- |
滚动位置 |
| fixedWidthGutter |
Boolean |
false |
- |
固定行号区域宽度 |
| theme |
String |
- |
- |
主题引用路径,例如"ace/theme/textmate" |
3.3 mouseHandler选项
| 选项名 |
值类型 |
默认值 |
可选值 |
备注 |
| scrollSpeed |
Number |
- |
- |
滚动速度 |
| dragDelay |
Number |
- |
- |
拖拽延时 |
| dragEnabled |
Boolean |
true |
- |
是否启用拖动 |
| focusTimout |
Number |
- |
- |
聚焦超时 |
| tooltipFollowsMouse |
Boolean |
false |
- |
鼠标提示 |
3.4 session选项
| 选项名 |
值类型 |
默认值 |
可选值 |
备注 |
| firstLineNumber |
Number |
1 |
- |
起始行号 |
| overwrite |
Boolean |
- |
- |
重做 |
| newLineMode |
String |
auto |
auto|unix|windows |
新开行模式 |
| useWorker |
Boolean |
- |
- |
使用辅助对象 |
| useSoftTabs |
Boolean |
- |
- |
使用软标签 |
| tabSize |
Number |
- |
- |
标签大小 |
| wrap |
Boolean |
- |
- |
换行 |
| foldStyle |
String |
- |
markbegin|markbeginend|manual |
折叠样式 |
| mode |
String |
- |
- |
代码匹配模式,例如“ace/mode/text" |
3.5 扩展选项
| 选项名 |
值类型 |
默认值 |
可选值 |
备注 |
| enableBasicAutocompletion |
Boolean |
- |
- |
启用基本自动完成 |
| enableLiveAutocompletion |
Boolean |
- |
- |
启用实时自动完成 |
| enableSnippets |
Boolean |
- |
- |
启用代码段 |
| enableEmmet |
Boolean |
- |
- |
启用Emmet |
| useElasticTabstops |
Boolean |
- |
- |
使用弹性制表位 |
转载于:https://www.jianshu.com/p/fb49c843a679