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': '关键字'})
     }
   }
 }
ace-editor线上代码编辑器的更多相关文章
- 如何利用Grunt生成对应的Source Map文件,线上代码压缩使用chrome浏览器便于调式
		
如何利用Grunt生成对应的Source Map文件,线上代码压缩使用chrome浏览器便于调式 首先我们来说说为何要生成sourceMap文件呢?简单的说,sourceMap是为了压缩后的代码调式提 ...
 - Springboot拦截器线上代码失效
		
今天想测试下线上代码,能否正常的执行未登录的拦截.所以把拦截器的代码给开放出来,但是没想到线上代码addInerceptors(InterceptorRegistry registry) 这个方法一直 ...
 - 不停机替换线上代码? 你没听错,Arthas它能做到
		
写在前边 有没有这样一种感受,自己写的代码在开发.测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,线上调试代码又很麻烦,让人头疼得很.阿里巴巴出了一款名叫Arthas的工 ...
 - 如何用 fiddler 调试线上代码
		
有时代码上线了,突然就碰到了坑爹的错误.或者有时看别人家线上的代码,对于一个文件想 fork 下来试试效果又不想把全部文件拉到本地,都可以使用 fiddler 的线上调试功能. 比方说我们打开携程的首 ...
 - 利用Chrome浏览器调试线上代码
		
前言 之前调试前端bug都是在开发环境中做完并多次测试没有问题之后发布测试环境,验收合格之后发布生产.但生产环境偏偏会有和开发和测试环境不一致的情况,例如测试环境需要加密,而开发环境先不加密,测试环境 ...
 - git 获取线上代码并合并到本地
		
//查询当前远程的版本 $ git remote -v //获取最新代码到本地(本地当前分支为[branch],获取的远端的分支为[origin/branch]) $ git fetch origin ...
 - git让线上代码强制覆盖本地的
		
git强制覆盖本地命令(分步执行): git fetch --all git reset --hard origin/master git pull git强制覆盖本地命令(单条执行): ...
 - 前端通信:SSE设计方案(二)--- 服务器推送技术的实践以及一些应用场景的demo(包括在线及时聊天系统以及线上缓存更新,代码热修复案例)
		
距离上一篇博客,这篇文章的发布大概过了整整三个月.我也从饿了么度过了试用期,成为了正式员工.刚进来恰好遇到项目底层改造和迁移,将项目从angular全部迁移到vue上,所以适应这边的节奏和业务的开发任 ...
 - 线上应用调试利器 --Arthas
		
在之前的文章中,我介绍了使用 Btrace 工具进行线上代码的debug (https://www.cnblogs.com/yougewe/p/10180483.html),其大致原理就是通过字节码注 ...
 
随机推荐
- nginx break-circus
			
upstream : read-timeout,connection-timeout,分级别 500ms,1S,100S,长链接 ---颗粒度[每个服务api health-check]--- --- ...
 - TypeScript初探
			
TypeScript初探 TypeScript什么? 官方给的定义:TypeScript是一种由微软开发的自由和开源的编程语言,它是JavaScript类型的超集,可以编译成纯JavaScript,本 ...
 - 栈->栈的应用
			
e.g.1 数制转换 十进制数N和其它d进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个简单算法基于下列原理. 假设编写一个程序:对于输入的任意一个非负十进制整数,打印输出与其等值的八 ...
 - flutter 学习零碎知识点01
			
1.Expanded组件 占满可用空间 -----可以到达类似flex布局中 第一列占用大量空间,所以它必须包装在Expanded widget中. 写死的高度改成Expanded自动撑满屏幕如果还 ...
 - Redis在windows下安装与配置
			
一.安装Redis 1. Redis官网下载地址:http://redis.io/download,下载相应版本的Redis,在运行中输入cmd,然后把目录指向解压的Redis目录. 2.启动服务命令 ...
 - redis 3.2 新数据结构:quicklist、String的embstr与raw编码方式分界点
			
Redis3.2.0引入了新的quicklist的数据结构做了list的底层存储方案.废弃了原来的两个配置参数, list-max-ziplist-entries list-max-ziplist-v ...
 - 解决SQL Server 2008无法连接127.0.0.1的问题
			
电脑操作系统是Win10中文版,新装的英文版SQL Server 2008,纯默认安装,没有做任何改动. 装完SQL Server 2008之后,发现只能用默认的机器名来登录: 如果用127.0.0. ...
 - 图表管理账单的NABCD
			
首先,我们团队的项目目标是记账本.就我个人理解,记账本中心功能有两项,第一,记录:第二,显示.而本篇博客主要描述用各种不同的图表来显示的NABCD. 首先是N(need),用户的需求就是我们的动力!利 ...
 - Lintcode: Nuts & Bolts Problem
			
Given a set of n nuts of different sizes and n bolts of different sizes. There is a one-one mapping ...
 - xpath详细讲解
			
什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...