赞
踩
<template>
<div class="ace-editor" ref="ace"></div>
</template>
<script> import ace from 'ace-builds' import 'ace-builds/webpack-resolver' // 在 webpack 环境中使用必须要导入 import 'ace-builds/src-noconflict/theme-chrome' // 默认设置的主题 import 'ace-builds/src-noconflict/mode-html' // 默认设置的语言模式 import 'ace-builds/src-noconflict/ext-language_tools' export default { ... mounted () { this.initEditor() } methods: { initEditor() { this.aceEditor = ace.edit(this.$refs.ace, { maxLines: this.maxLines, // 最大行数,超过会自动出现滚动条 minLines: this.minLines, // 最小行数,还未到最大行数时,编辑器会自动伸缩大小 fontSize: this.fontSize, // 编辑器内字体大小 theme: this.themePath, // 默认设置的主题 mode: this.modePath + this.mode, // 默认设置的语言模式 tabSize: 4 // 制表符设置为 4 个空格大小 }) this.aceEditor.setOptions({ enableSnippets: true, enableLiveAutocompletion: true, enableBasicAutocompletion: true }) } } }
this.aceEditor.setTheme("ace/theme/eclipse");
this.aceEditor.getSession().setMode("ace/mode/xml");
this.aceEditor.setValue('hello world');
this.aceEditor.getValue();
this.aceEditor.session.getTextRange(editor.getSelectionRange());
this.aceEditor.setReadOnly(true);
this.aceEditor.find('needle',{ //needle,要查找的字符串或正则表达式
backwards: false,//是否反向搜索,默认为false
wrap: false,//搜索到文档底部是否回到顶端,默认为false
caseSensitive: false,//是否匹配大小写搜索,默认为false
wholeWord: false,//是否匹配整个单词搜素,默认为false
regExp: false//搜索内容是否是正则表达式,默认为false
});
this.aceEditor.findNext(); //查找下一个
this.aceEditor.findPrevious(); //查找上一个
this.aceEditor.find('world');
this.aceEditor.replace('bar');
this.aceEditor.replaceAll('bar');
this.aceEditor.getSession().on('change', function(e) {});// 监听改变事件
this.aceEditor.getSession().selection.on('changeSelection', function(e) {});// 监听选择事件
this.aceEditor.getSession().selection.on('changeCursor', function(e) {});// 监听光标移动
this.aceEditor.insert("Something cool");//在光标处插入:
this.aceEditor.selection.getCursor(); //获取光标所在行或列:
this.aceEditor.gotoLine(2);//跳转到行
this.aceEditor.session.getLength();//获取行数
– 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 | - | 选中多处 |
– renderer选项
选项名 | 值类型 | 默认值 | 可选值 | 备注 |
---|---|---|---|---|
hScrollBarAlwaysVisible | Boolean | false | - | 纵向滚动条始终可见 |
vScrollBarAlwaysVisible | Boolean | false | - | 横向滚动条始终可见 |
highlightGutterLine | Boolean | true | - | 高亮边线 |
animatedScroll | Boolean | false | - | 滚动动画 |
showInvisibles | Boolean | false | - | 显示不可见字符 |
showPrintMargin | Boolean | true | - | 显示打印边距 |
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" |
– mouseHandler选项
选项名 | 值类型 | 默认值 | 可选值 | 备注 |
---|---|---|---|---|
scrollSpeed | Number | - | - | 滚动速度 |
dragDelay | Number | - | - | 拖拽延时 |
dragEnabled | Boolean | true | - | 是否启用拖动 |
focusTimout | Number | - | - | 聚焦超时 |
tooltipFollowsMouse | Boolean | false | - | 鼠标提示 |
– 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" |
– 扩展选项
选项名 | 值类型 | 默认值 | 可选值 | 备注 |
---|---|---|---|---|
enableBasicAutocompletion | Boolean | - | - | 启用基本自动完成 |
enableLiveAutocompletion | Boolean | - | - | 启用实时自动完成 |
enableSnippets | Boolean | - | - | 启用代码段 |
enableEmmet | Boolean | - | - | 启用Emmet |
useElasticTabstops | Boolean | - | - | 使用弹性制表位 |
const INFO_RULES = [ // Disable Heading (h2) has already been defined. warning 'unique-headings', // Disable Heading (h2) should not be qualified. warning 'qualified-headings', 'fallback-colors' ]; const DISABLED_RULES = [ // Disable Don't use adjoining classes. warning 'adjoining-classes', // Disable Rule doesn't have all its properties in alphabetical ordered. warning 'order-alphabetical' ]; // 调用 this.aceEditor.session.$worker.call('setInfoRules', [INFO_RULES.join('|')]) ; this.aceEditor.session.$worker.call('setDisabledRules', [DISABLED_RULES.join('|')]) ; 或者直接填写以‘|’分隔 this.aceEditor.session.$worker.call('setDisabledRules', ['box-sizing|ids|order-alphabetical|universal-selector|fallback-colors|box-model|adjoining-classes|order-alphabetical|unique-headings|qualified-headings'])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。