• CodeMirror---实现关键词高亮


    这周前端vue项目有一小需求,需要实现在文本框中输入不同编程语言代码块并且让关键词高亮显示。

    经过调研决定使用vue-codemirror和codemirror;

    原因如下:

    • vue-codemirror是基于codemirror,适用于 Vue 的 Web 代码编辑器;
    • 但是导入vue-codemirror后并没有发现codemirror的核心css以及使用的语言语法定义文件,如下图;

    实现过程如下:

    1.导入插件

    //导入codemirror 插件
    npm install codemirror --save
    
    //导入vue-codemirror 插件
    npm install vue-codemirror --save  

     2.全局挂载

    3.在需要使用该插件的组件中挂载

     1 <template>
     2     <codemirror v-model="code" :options="cmOptions" class="code"></codemirror>
     3 </template>
     4 <script>
     5 //导入组件
     6 import { codemirror } from "vue-codemirror";
     7 //导入使用的语言语法定义文件
     8 require("codemirror/mode/python/python.js");
     9 require("codemirror/mode/javascript/javascript.js");
    10 require("codemirror/mode/clike/clike.js");
    11 require("codemirror/mode/shell/shell.js");
    12 //导入选中的theme文件
    13 require("codemirror/theme/blackboard.css");
    14 //导入自动提示核心文件及样式
    15 require("codemirror/addon/hint/show-hint.css");
    16 require("codemirror/addon/hint/show-hint.js");
    17 //导入指定语言的提示文件
    18 require("codemirror/addon/hint/javascript-hint.js");
    19 export default {
    20    //注册组件 
    21   components: {
    22     codemirror
    23   },
    24   data() {
    25     return {
    26       //编辑器的默认输入值
    27       code: "var a=1
    let b=2",
    28       cmOptions: {
    29         tabSize: 4,
    30         mode: "text/javascript", //识别的语言javascript
    31         // mode:"text/x-java",  //识别的语言java
    32         // mode:"text/x-sh",   //识别的语言shell脚本
    33         theme: "blackboard",  //编辑器的主题
    34         lineNumbers: true,   //显示行号
    35         line: true
    36       }
    37     };
    38   }
    39 </script>
    View Code

    4.实现的效果

    附:主题预览

  • 相关阅读:
    演示Eclipse插件实现代码提示和补全
    重拾《 两周自制脚本语言 》- Eclipse插件实现语法高亮
    Kindle Windows版本 中文字体修改工具
    MD5加密算法原理及实现
    Spring boot 发送邮件示例
    ubuntu下svn的命令使用
    数据库的分区、分表、分库、分片的简介
    Vue 入门之目录结构介绍
    MQTT简单介绍与实现
    SVN使用规范
  • 原文地址:https://www.cnblogs.com/yy136/p/9838732.html
Copyright © 2020-2023  润新知