electron vue2 引入codemirror

发布时间:2023-10-20 14:06:58

找了很多教程,都没有完成整合。后查找到相关vue2的文章,完成整合,记录下来。

1.首先安装依赖

npm i vue-codemirror@4.x --save
npm i codemirror@5.x --save 

2.整合js与样式的引入,在renderer目录新建一个code-setting.js

// cm-setting.js
// 组件样式
import "codemirror/lib/codemirror.css";
// 主题
import "codemirror/theme/3024-day.css"; // 引入主题样式,根据设置的theme的主题引入
import "codemirror/theme/ayu-mirage.css";
import "codemirror/theme/monokai.css";
	mport 'codemirror/theme/rubyblue.css'
// html代码高亮
import "codemirror/mode/htmlmixed/htmlmixed.js"; 
// 语言模式
import 'codemirror/mode/javascript/javascript.js'

3.在main.js中引入

// 引入
import { codemirror } from "vue-codemirror";
// 引入配置对应的文件(样式、主题、代码格式等)
import "@/utils/code-setting.js";
// 注册使用
Vue.component("codemirror", codemirror);

4.使用

!-- 组件 -->
<template>
    <codemirror v-model="code" :options="options" :key="targetPreview.id" ref="codeMirrorRef">
    </codemirror>
</template>
	
<script>
// 文件内引入
import { codemirror } from "vue-codemirror";
// 引入样式、主题、代码风格等配置或样式文件
import "@/utils/code-setting.js";
import 'codemirror/addon/display/autorefresh'
export default {
    // 注册使用
    components: {
        codemirror,
    },
    props: {
        // 排序字段
        preview: {
            type: Object,
            default: "",
        },
    },
    data() {
        return {
            code: "",
            options: {
                line: true,
                theme: "eclipse", // 主题
                tabSize: 4, // 制表符的宽度
                indentUnit: 2, // 一个块应该缩进多少个空格(无论这在编辑语言中意味着什么)。默认值为 2。
                firstLineNumber: 1, // 从哪个数字开始计算行数。默认值为 1。
                readOnly: false, // 只读
                autoRefresh: true,
                smartIndent: true, // 上下文缩进
                lineNumbers: true, // 是否显示行号
                styleActiveLine: true, // 高亮选中行
                viewportMargin: Infinity, //处理高度自适应时搭配使用
                showCursorWhenSelecting: true, // 当选择处于活动状态时是否应绘制游标
                mode: 'text/x-java',
            },
        };
    },
    mounted() {
        this.targetPreview = this.preview;
    }
};
</script>

Card image cap
APP STORE
Card image cap
应用宝
Card image cap
小米
Card image cap
华为