0.0.4 • Published 6 years ago
@wwerner/monaco-editor-vue v0.0.4
monaco-editor-vue
Monaco Editor for Vue.
Attribution
This is a fork of https://github.com/FE-Mars/monaco-editor-vue, v1.0.9
Installation
npm install @wwerner/monaco-editor-vueUsing with Webpack
<template>
<div id="app">
<MonacoEditor
width="800"
height="500"
theme="vs-dark"
language="javascript"
:options="options"
@change="onChange"
></MonacoEditor>
</div>
</template>
<script>
import MonacoEditor from 'monaco-editor-vue';
export default {
name: "App",
components: {
MonacoEditor
},
data() {
return {
options: {
//Monaco Editor Options
}
}
},
methods: {
onChange(value) {
console.log(value);
}
}
};
</script>Add the Monaco Webpack plugin monaco-editor-webpack-plugin to your webpack.config.js:
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
module.exports = {
plugins: [
new MonacoWebpackPlugin({
// available options are documented at https://github.com/Microsoft/monaco-editor-webpack-plugin#options
languages: ['javascript']
})
]
}If using Vue CLI instead of Webpack directly, you can add to vue.config.js:
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
module.exports = {
chainWebpack: config => {
config.plugin('monaco-editor').use(MonacoWebpackPlugin, [
{
// Languages are loaded on demand at runtime
languages: ['json', 'javascript', 'html', 'xml']
}
])
}
}Properties
If you specify value property, the component behaves in controlled mode.
Otherwise, it behaves in uncontrolled mode.
widthwidth of editor. Defaults to100%.heightheight of editor. Defaults to100%.valuevalue of the auto created model in the editor.originalvalue of the auto created original model in the editor.languagethe initial language of the auto created model in the editor. Defaults tojavascript.themethe theme of the editor. Defaults tovs.optionsrefer to Monaco interface IEditorConstructionOptions.change(newValue, event)an event emitted when the content of the current model has changed.editorBeforeMount(monaco)an event emitted before the editor mounted (similar tobeforeMountof Vue).editorMounted(editor, monaco)an event emitted when the editor has been mounted (similar tomountedof Vue).
Events & Methods
Refer to Monaco interface IEditor.
Use multiple themes
Monaco only supports one theme.
How to use the diff editor
<template>
<div id="app">
<MonacoEditor
:diffEditor="true"
original="..."
//...
></MonacoEditor>
</div>
</template>