1. 程式人生 > >Ace Editor線上Web編輯程式碼強力武器

Ace Editor線上Web編輯程式碼強力武器

首先說明:ACE 是一個實現了語法著色功能的基於 Web 的程式碼編輯器,具有良好的程式碼提示功能和大量的主題,所以在Web端你想擁有一個編輯器,ACE是不二選擇。

正是因為在這上面踩了一個大大的坑,而且文件基本都是英文的,並不是說英文文件就看不懂,但是麻煩啊,所以有必要特此說明下這玩意到底應該怎麼用。

先上一個我最後的結果


是不是很棒?

好,然後接下來就是我研究的步驟了

1.下載

(需要git環境)

git clone https://github.com/ajaxorg/ace.git
沒什麼好說的就是git

2.生成build版

下載後可釋出build版,減輕頻寬壓力。你只需進入專案根目錄,執行一下命令(需要node環境)

npm install
node ./Makefile.dryice.js
兩條命令都執行,然後在build檔案就會有了


3.引入

在html引入核心依賴檔案

<script src="/build/src/ace.js" type="text/javascript"></script>

注意事項:

1.mode打頭的檔案一般為開發語言支援依賴包,你只需要保留你所要編輯語言依賴包就夠了
2.theme打頭是編輯器面板檔案,這個東西一般情況一個就夠了
3.相關依賴包的載入都是ace內部定義的require載入動態載入的,當呼叫了相關功能,瀏覽器會發請求載入相關依賴包,所以慎重選擇你需要剔除的依賴包。真刪了也不用著急,找到相應的包檔案加回去就可以了

簡單的說就是 整個包你都給我放好


4.常用的一些api

鑑於官網好多api方法undocumented,以下列出幾個常用的方法,供大家使用:

1.初始化editor()

ace.edit(domIdStr[string])

domIdStr: dom元素id字串(不加#)
return  : editor物件

使用樣例:
<style>
     #editor{
         width:100px;
         height:300px;
     }
</style>
<div id="editor"></div>
<script>
     var editor = ace.edit('editor');
</script>

2.設定主題

editor.setTheme(moduleId)

moduleId:  theme檔案路徑

例如:

editor.setTheme("ace/theme/monokai");
editor.setTheme("ace/theme/twilight");

3.設定編輯語言

editor.getSession().setMode("ace/mode/html");

4.獲取編輯內容

editor.getValue();

5.設定編輯內容

var editorValue='<body></body>';
editor.setValue(editorValue);

6.移動游標

editor.moveCursorTo(0, 0);//移動游標至第0行,第0列

7.編輯內容搜尋

editor.execCommand('find');//與ctrl+f功能一致

這些一般基本夠用了,附上我的配置
ace.require("ace/ext/language_tools");
var editor = ace.edit("editor");
editor.$blockScrolling = Infinity;
editor.setFontSize(16);
editor.session.setMode("ace/mode/c_cpp");
editor.setOptions({
    enableBasicAutocompletion: true,
    enableSnippets: true,
    enableLiveAutocompletion: true
});
editor.setTheme("ace/theme/chrome");