vue项目-在页面中插入一个编辑器(monaco)

1. Monaco Editor

https://microsoft.github.io/monaco-editor/

在项目中使用monaco-editor

npm install monaco-editor -S

在组件中引入并使用

<template>
  <div class="home">
    <div id="monaco"></div>
  </div>
</template>

<script>
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
export default {
  mounted() {
    monaco.editor.create(document.getElementById("monaco"),{
            value:`console.log("hello,world")`,
            language:"javascript",
            theme: "vs-dark"
    })
  }
}
</script>

<style lang="less" scoped>
#monaco {
  width: 800px;
  height: 500px;
  border: 1px solid #ebebeb;
  border-radius: 4px;
}
</style>
生成编辑器

如果这里没有语法高亮,在main.js中引入javascript

// main.js
import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution';

2. 一些控件

加入vscode的查找控件

import 'monaco-editor/esm/vs/editor/contrib/find/findController.js';
页面中按下ctrl+F会弹出vscode的查找框

3. Diff Edit

想在页面中加入类似vscode的代码对比功能,可以使用如下

// 这里只展示关键代码
let monacoInstance = monaco.editor.createDiffEditor(document.getElementById("monaco"),{
    language:"javascript",
    theme: "vs-dark"
})
monacoInstance.setModel({
    original: monaco.editor.createModel(a, 'javascript'),    //原版内容
    modified: monaco.editor.createModel(b, 'javascript')     //修改的内容
})
Didd Edit效果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于在开发vue组件编辑工具中需要一款可以嵌入web的代码编辑器,所以对目前的开源的基于javascript的代码...
    videring阅读 11,160评论 0 7
  • 背景 monaco editor本身有react版本https://github.com/react-monaco...
    family2hu阅读 26,370评论 7 9
  • 田埂上草色青绿、雾气弥漫 湿且滑的青草让我滑入水中 还是我梦中要想落入水中 笨重挣扎、寒冷、呼救 腿上的裤子薄薄一...
    枝楼阅读 241评论 1 1
  • 很少有快乐会随时间累积增长 所有欢欣鼓舞的事情都会被更大的欲望冲淡 痛苦不一样,遇见的时候太难受了 每忍受多一秒钟...
    禅与摩托车的维修艺术阅读 111评论 0 0
  • 今天离2019年只剩11天了,世界在进行2018年的倒计时。 今天同事们去北京领奖了,这是莫大的殊荣。所以我也要努...
    Rebecca_2be3阅读 99评论 0 0