1.0.5 • Published 2 years ago

cafe-monaco v1.0.5

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Cafe-Monaco

线上例子:Demo

安装

NPM

npm i cafe-monaco -S

Webpack 打包

使用 monaco-editor-webpack-plugin

由于组件使用 monaco-editor 的版本为 0.30.0,所以请安装 6.0.0版本的 monaco-editor-webpack-plugin

npm i monaco-editor-webpack-plugin@6.0.0 -D

webpack.config.js 配置:

const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
module.exports = {
  plugins: [
    new MonacoWebpackPlugin({
      languages: ['abap', 'apex', 'azcli', 'bat', 'cameligo', 'clojure', 'coffee', 'cpp', 'csharp', 'csp', 'css', 'dockerfile', 'fsharp', 'go', 'graphql', 'handlebars', 'html', 'ini', 'java', 'javascript', 'json', 'kotlin', 'less', 'lua', 'markdown', 'mips', 'msdax', 'mysql', 'objective-c', 'pascal', 'pascaligo', 'perl', 'pgsql', 'php', 'postiats', 'powerquery', 'powershell', 'pug', 'python', 'r', 'razor', 'redis', 'redshift', 'ruby', 'rust', 'sb', 'scheme', 'scss', 'shell', 'solidity', 'sophia', 'sql', 'st', 'swift', 'tcl', 'twig', 'typescript', 'vb', 'xml', 'yaml']
    })
  ]
}

vue.config.js 配置:

const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
module.exports = {
  chainWebpack: config => {
    config.plugin('monaco-editor').use(MonacoWebpackPlugin, [
      {
        languages: ['abap', 'apex', 'azcli', 'bat', 'cameligo', 'clojure', 'coffee', 'cpp', 'csharp', 'csp', 'css', 'dockerfile', 'fsharp', 'go', 'graphql', 'handlebars', 'html', 'ini', 'java', 'javascript', 'json', 'kotlin', 'less', 'lua', 'markdown', 'mips', 'msdax', 'mysql', 'objective-c', 'pascal', 'pascaligo', 'perl', 'pgsql', 'php', 'postiats', 'powerquery', 'powershell', 'pug', 'python', 'r', 'razor', 'redis', 'redshift', 'ruby', 'rust', 'sb', 'scheme', 'scss', 'shell', 'solidity', 'sophia', 'sql', 'st', 'swift', 'tcl', 'twig', 'typescript', 'vb', 'xml', 'yaml']
      }
    ])
  }
}

全局使用

// main.js
import Vue from 'vue'
import App from './App.vue'
// ...
import cafeMonaco from 'cafe-monaco'
Vue.use(cafeMonaco)
// ...
new Vue({
  el: '#app',
  render: h => h(App)
})
<template>
  <cafe-monaco v-model="code" height="800px" width="800px"></cafe-monaco>
</template>

<script>
  export default {
    data() {
      return {
        code:'',
      };
    },
  }
</script>

局部引入

基本用法

<template>
  <monaco v-model="code" height="800px" width="800px"></monaco>
</template>

<script>
  import monaco from 'cafe-monaco'
  export default {
    data() {
      return {
        code:'',
      };
    },
    components:{
      monaco
    }
  }
</script>

代码对比

设置 diff-editor 开启对比模式,需要定义 original

<template>
  <monaco
    v-model="code"
    :diff-editor="true"
    :original="original"
    :width="500"
    :height="300"
    language="javascript"
  ></monaco>
</template>

<script>
  import monaco from 'cafe-monaco'
  export default {
    data() {
      return {
        code: 'aaa',
        original: 'aaa',
      };
    },
  };
</script>

属性

参数说明类型可选值默认值
value / v-model绑定值String
width编辑器宽度String, Number100%
height编辑器高度String, Number100%
theme主题Stringvs
language语言Stringhtml
diff-editor代码对比模式Booleanfalse
original对比代码,在开启 diff-editor 后可以使用String
options编辑器配置Object可查看:Monaco Editor Options
read-only只读模式Booleanfalse
minimap代码地图模式Booleantrue
editorBeforeMount编辑器初始化前回调,参数 monacoFunction
editorMounted编辑器初始化后回调,参数 editor,monacoFunction

事件

事件名说明参数
change改变时触发value, event

方法

事件名说明参数
destroyMonaco组件再离开时会自动销毁,此方法提供手动销毁

插槽

参数说明
header头部插槽
footer底部插槽
1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago