ace-editor线上代码编辑器

package.json

{
"name": "vue-cli",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "lizhi@camelotchina.com",
"private": true,
"scripts": {
...
},
"dependencies": {
...
},
"devDependencies": {
...

"brace": "^0.11.0",
"emmet": "git+https://github.com/cloud9ide/emmet-core.git",
...
},
"engines": {
...
},
"browserslist": [
...
]
}

component文件夹——>editor.vue文件

<template>
  <div style="width: 100%;height: 330px"></div>
</template>

<script>
  require([‘emmet/emmet‘], function (data) {
    window.emmet = data.emmet
  });
const ace = require(‘brace‘);
export default {
  name: ‘editor‘,
  props: {
    value: {
      type: String,
      required: true
    }
  },
  data () {
    return {
      editor: null,
      contentBackup: ‘‘
    }
  },
  watch: {
    value (val) {
      if (this.contentBackup !== val) {
        this.editor.setValue(val, 1)
      }
    },
    theme: function (newTheme) {
      this.editor.setTheme(‘ace/theme/‘ + newTheme)
    },
    lang: function (newLang) {
      this.editor.getSession().setMode(‘ace/mode/‘ + newLang)
    }
  },
  mounted () {
    let vm = this
    require(‘brace/ext/emmet‘)
    require(‘brace/ext/language_tools‘)
    let editor = vm.editor = ace.edit(this.$el)
    this.$emit(‘init‘, editor)
    let staticWordCompleter = {
      getCompletions: function (editor, session, pos, prefix, callback) {
        vm.$emit(‘setCompletions‘, editor, session, pos, prefix, callback)
      }
    }
    editor.completers = [staticWordCompleter]
    editor.setOptions({
      enableBasicAutocompletion: true,
      enableLiveAutocompletion: true
    })
    editor.$blockScrolling = Infinity
    editor.setFontSize(16)
    editor.setOption(‘enableEmmet‘, true)
    editor.getSession().setMode(‘ace/mode/mysql‘)
    editor.setTheme(‘ace/theme/xcode‘)
    editor.setValue(this.value, 1)
    editor.on(‘change‘, function () {
      let content = editor.getValue()
      vm.$emit(‘input‘, content)
      vm.contentBackup = content
    })
  }
}
</script>

<style scoped>
</style>

view文件夹的 你的页面文件

<editor v-model="formDynamic" @init="editorInit" @setCompletions="setCompletions"></editor>

methods:{
  editorInit(){
    require(‘brace/mode/mysql‘)
    require(‘brace/theme/xcode‘)
  },
  setCompletions (editor, session, pos, prefix, callback) {//自动提示方法
    callback(null, this.wordList.map(function (word) {
      return {
        caption: word.vl,
        value: word.vl,
        meta: word.meta
      }
    }))
  },
}

mounted(){
  if(!!configHighlight){//输入提示
    for (let i of configHighlight.split(‘|‘)) {
      this.wordList.push({‘vl‘: i, ‘meta‘: ‘关键字‘})
    }
  }
}

原文地址:https://www.cnblogs.com/MisterHe/p/10465963.html

时间: 2024-11-07 12:34:19

ace-editor线上代码编辑器的相关文章

前端开发调试线上代码的两款工具

用过 Charles 和 Fiddler 这两款,记录如下. 一.Charles Charles 界面简单直观,易于上手,数据请求控制容易,修改也简单,抓取数据的开始暂停也方便.支持 win,mac,linux. 1. 安装前提Charles 需要有 Java 环境,请提前下载安装 JDK.JDK 已经 8 了. 根据自己的系统选择对应的JDK.我的是 win7,双击安装,一直下一步就哦了.在命令行窗口输入以下命令,出现截图所示就表示 JDK 安装成功了 2. 下载 Charles Charle

如何利用Grunt生成对应的Source Map文件,线上代码压缩使用chrome浏览器便于调式

首先我们来说说为何要生成sourceMap文件呢?简单的说,sourceMap是为了压缩后的代码调式提供方便,比如线上的JS文件已经压缩了,但是线上比如说有bug,但是代码已经是压缩后的,对于开发并不好调式,所以想生存一个对应的Map文件,然后使用chrome浏览器在源文件未压缩的JS文件下调式. 那么Map文件到底是什么呢?简单的来讲它就是记录信息,记录一些为压缩之前的js文件的位置,及压缩后的文件对应未压缩之前的文件,对应第几行第几列的那些代码! 在讲解使用grunt生存Map文件之前,我们

Git常用命令和场景(一)--线上代码更新 和 项目代码提交

转:http://blog.csdn.net/lxlzhn/article/details/9206197 1.  项目查看或执行,用于测试环境和线上环境: git初始化: git init git拉取代码: git pull [email protected]:project.git 2. 项目开发,用于开发环境: (在 1 的基础上进行开发之后) 首先,提交代码涉及到一个配置,配置的内容是标记改代码是由哪个用户提交的,需要name和email两项,通过如下命令设置: git config -

phpstorm线上代码同步(转)

一.首先找到工具,进行一下选择 二.点击“+”进行添加 三.填写一下信息 四.选择线下和线上需同步的路径并进行保存 五.初次进行配置需进行以下操作 原文地址:https://www.cnblogs.com/jerryliuxin/p/12068124.html

idea如何远程调试线上代码

1.在sh文件脚本文件中加上 # JVM DEBUG参数,用于调试,默认不开启# ClassLoader和Method Compile日志,用于调试COMPILE_LOADER_OPTS="-XX:+TraceClassLoading -XX:+TraceClassUnloading -XX:-PrintCompilation" # 远程调试参数REMOTE_DEBUG_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,

1-1 用本地代码调试线上环境代码

方法1:fillder             第一步:抓包抓取线上代码, 第二步:将远程代码拖到AutoResponder面板 第三步:浏览本地文件 第四步:修改你的文件刷新浏览器,成功,哈哈. 来自为知笔记(Wiz)

使用chrome调试前端线上代码

家都知道在前端开发过程中,为加快网站静态资源加载速度都会对js/css等静态资源进行压缩合并再部署到生产环境,而在实际开发过程中开发人员一般都是在开发环境进行源码文件开发调试的,当部署平台或部署人员将开发人员提交的前端代码进行压缩合并为压缩文件后,当遇到生产环境出现问题之后很难通过压缩文件去定位问题,所以如何让开发人员便利的调试线上代码,并迅速定位问题是部署及运维网站需要考虑的重要考量的地方,此文档教程将描述如何使用chrome浏览器进行线上调试源码问题. Step-by-step guide

线上应用调试利器 --Arthas

在之前的文章中,我介绍了使用 Btrace 工具进行线上代码的debug (https://www.cnblogs.com/yougewe/p/10180483.html),其大致原理就是通过字节码注入的方式进行辅助排查. 可以说,btrace 已经给我们的开发调试一带来了许多的方便,我们在上面做任何想要的调试!但是,明显, btrace 的使用还是有一定成本的,比如:安装应用,写调试脚本... 所以,今天我们再来看一大利器: arthas (阿尔萨斯) arthas 官网地址:https://

Fiddler调试线上JS代码

强力推荐一款js调试神器,Fiddler 大家平时肯定都用过火狐的Firebug或者谷歌的调试工具来调试JS,但遗憾的是我们不能像编辑html,css那样来直接新增或者删除JS代码. 虽然可以通过调试工具的控制台来动态执行JS代码,但有时候却远远不够用. 特别是当产线环境不能随意修改文件情况下,用线上环境来调试本地代码更是迫切的需求. (往往本地测试通过,上线后却是各种bug.) 今天分享一下如何用Fiddler来修改并调试线上的JS代码. 以博客园首页为例子,用我本地的一个js文件来替换它的一