vue项目中引入monaco editor

58 篇文章 2 订阅
本文介绍了如何在Web项目中集成和使用Monaco-Editor,这是微软开源的代码编辑器组件,用于实现类似VSCode的功能。通过npm安装后,在Vue项目中导入并创建编辑器实例,配置编辑器选项如语言、主题、行号等,并展示了编辑器的常用方法,如搜索、滚动、内容获取与设置、布局调整等。
摘要由CSDN通过智能技术生成

monaco-editor概述

monaco-editor 是微软开源的一款web代码编辑器,vscode就是集成monaco-editor来实现的。

官方示例

官方文档

使用

安装

npm安装

npm install monaco-editor

在vue项目中使用

引入相关js文件:

import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';

代码编辑器的容器div:

<div ref="monaco"></div>

编辑器实例化:

mounted () {
    // 编辑器实例化
    this.monacoInstance = monaco.editor.create(this.$refs.monaco, {
        ...this.options
    })
    // console.log(this.monacoInstance.getActions())
    this.model = this.monacoInstance.getModel()
    // console.log(this.model)
}

data(){
    return {
         options: {
        // Monaco Editor Options
        // automaticLayout: true,
        // folding: true,
        value: this.value,      // 编辑器内容
        language: "plaintext",
        theme: 'myCustomTheme',  // 主题
        lineNumbers: 'on',   // 行号
        wordWrap: 'off',     // 自动换行
        readOnly: false,     // 是否只读
        minimap: {           // 缩略图
          enabled: false
        },
        'semanticHighlighting.enabled': true    // 高亮
      },
    }
}

销毁实例:

destroyed () {
    this.monacoInstance.dispose();//使用完成销毁实例
},

monaco editor常用方法和事件

搜索功能

搜索功能要引入相关js文件

import 'monaco-editor/esm/vs/editor/contrib/find/browser/findController.js';
// 搜索关键字
findKeyWorld () {
    // console.log(this.monacoInstance.getAction("actions.find"))
    this.monacoInstance.getAction("actions.find").run()
}

滚动

// 滚动到最后一行
scrollToBottom () {
    if (!this.monacoInstance) { return }
    this.model && (this.monacoInstance.revealLine(this.model.getLineCount(), 'Smooth'))
}

获取编辑器内容

this.monacoInstance.getValue()

设置编辑器内容

this.monacoInstance.setValue(value)

编辑器自适应

this.monacoInstance.layout();

编辑器设置更新:

this.monacoInstance.updateOptions({lineNumbers: "on" })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值