当前位置:   article > 正文

vue中使用vue2-ace-editor

vue2-ace-editor
1.下载

npm install vue2-ace-editor

2.引入到项目中

import editor from "vue2-ace-editor"

  1. <editor
  2. v-model="content"
  3. @init="editorInit"
  4. :options="options"
  5. :width="width"
  6. :height="height"
  7. :theme="themeSet"
  8. lang="java"
  9. ref="myTextEditor">
  10. </editor>

@init引用主题 语言 按需加载

  1. editorInit() {
  2. require("brace/theme/chrome");
  3. require("brace/theme/solarized_light");
  4. require("brace/ext/language_tools");
  5. require("brace/mode/yaml");
  6. require("brace/mode/javascript");
  7. require("brace/mode/java");
  8. require("brace/mode/less");
  9. require("brace/mode/json");
  10. require("brace/theme/tomorrow_night_blue");
  11. require("brace/theme/monokai");
  12. require("brace/theme/tomorrow_night_eighties");
  13. require("brace/theme/ambiance");
  14. require("brace/theme/tomorrow_night");
  15. require("brace/theme/chaos");
  16. require("brace/theme/tomorrow");
  17. require("brace/snippets/javascript");
  18. require("brace/snippets/java");
  19. require("brace/ext/emmet");
  20. require("brace/ext/searchbox");
  21. require("brace/mode/json");
  22. require("brace/snippets/json");
  23. },
  1. options: {
  2. /*vue2-ace-editor编辑器配置自动补全等*/
  3. enableBasicAutocompletion: true,
  4. enableSnippets: true,
  5. enableLiveAutocompletion: true /*自动补全*/,
  6. wrap: true, //自动换行
  7. },

区域宽度:width

区域高度:height

脚本使用语言:lang=“java”

一般常用操作
设置字号
  1. this.$refs.myTextEditor.editor.setFontSize(this.size);
代码只读
  1. this.$refs.myTextEditor.editor.setReadOnly(true);
区域适配
  1. this.$refs.myTextEditor.editor.resize();
搜索
  1. this.$refs.myTextEditor.editor.find();
替换
  1. this.$refs.myTextEditor.editor.replaceAll()
跳转到某行
  1. this.$refs.myTextEditor.editor.gotoLine()
获取总行数
  1. this.$refs.myTextEditor.editor.session.getLength();
光标所在位置
  1. this.$refs.myTextEditor.editor.selection.getCursor().column;
  2. this.$refs.myTextEditor.editor.selection.getCursor().row;
监听选择事件
  1. this.$refs.myTextEditor.editor.getSession().selection.on("changeSelection", function(e) {
  2. ...
  3. });
获取鼠标框选内容
  1. this.$refs.myTextEditor.editor.getSession().selection.on("changeCursor", function(e) {
  2. _this.value = _this.editor.session.getTextRange(
  3. _this.editor.getSelectionRange()
  4. );
  5. });
监听脚本改变
  1. this.$refs.myTextEditor.editor.getSession().on("change", function(e) {
  2. ...
  3. });
在光标处插入指定内容
  1. this.$refs.myTextEditor.editor.insert(添加内容);
自定义高亮内容
  1. const session = this.$refs.myTextEditor.editor.session;
  2. session.setMode('ace/mode/java', function () {
  3. const rules = session.$mode.$highlightRules.getRules();
  4. for (const stateName in rules) {
  5.     //regex 匹配文字 也可以是正则表达式
  6.     //token 为满足条件的添加class名字
  7. rules[stateName].unshift({
  8. token: 'transaction',
  9. regex: 'jl_start_transaction',
  10. });
  11. }
  12. session.$mode.$tokenizer = null;
  13. session.bgTokenizer.setTokenizer(session.$mode.getTokenizer());
  14. session.bgTokenizer.start(0);
  15. });
  16. //css
  17. .ace_transaction{
  18.     //此处设置你高亮文字的颜色
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/415418
推荐阅读