版本信息:
vue版本:2.x
vue-codemirror版本:4.x
codemirror版本:5.x
问题描述
codemirror编辑器内的代码不能高亮
代码示例:
<template>
<div id="glueInfo">
<codemirror style="height:100%" v-model="codeSnippets" :options="cmOptions"/>
</div>
</template>
<script>
import {codemirror} from 'vue-codemirror';
import 'codemirror/lib/codemirror.css'; // 核心样式
import 'codemirror/mode/htmlmixed/htmlmixed.js';
export default {
name: 'glueInfo',
components: {codemirror},
computed: {},
data() {
return {
codeSnippets: '<div>code</div>',
cmOptions: {
autorefresh: true,
mode: 'text/x-html',// 语言类型
theme: 'default',// 样式
lineNumbers: true,// 编辑器左侧是否显示行号
line: true,
showCursorWhenSelecting: true,// 选择内容的时候是否显示光标
firstLineNumber: 1,
viewportMargin: Infinity, // 处理高度自适应时搭配使用
autofocus: false,
indentUnit: 4,// 编辑器中缩进的大小
smartIndent: true,// 是否使用mode提供的上下文的缩进
readOnly: false, // 只读
styleActiveLine:true,
matchBrackets: true,// 括号匹配
autoCloseBrackets:true, //自动补全括号
},
}
},
}
</script>
解决办法:在 cmOptions 中加入如下配置,并把对应代码的高亮 js引入进去
gutters: ["CodeMirror-lint-markers","CodeMirror-linenumbers","CodeMirror-foldgutter"],
highlightSelectionMatches: {
minChars: 2,
style: "matchhighlight",
showToken: true
},