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\nlet 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.實現的效果

 

附:主題預覽

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM