2017-07-12 41 views
0

我已經在我的網頁中實現了Ace編輯器,並用它來編寫JavaScript函數。如何在JavaScript中的Ace編輯器中添加驗證規則?

我的頁面工作得很好,我做了一些原因,一個小的解析器,解析器可以完成這一切,但沒有評論如果同時具有下列特徵聲明://

我可以閱讀大量評論:/* some code */

,但不正常的一個:// some code

所以我需要防止用戶輸入在控制檯正常評論(//)。

所以我需要一個驗證規則添加到編輯器。我使用JavaScript和AngularJS。

下面是我的一些代碼,我如何添加編輯:

控制器:

editor = ace.edit("fileInfo"); 
var JavaScriptMode = ace.require("ace/mode/javascript").Mode; 
editor.session.setMode(new JavaScriptMode()); 

HTML頁面:

<div id="top-content"> 
    <div style="width: 100%;height:100%; top:6px;" id="fileInfo"> 
    </div> 
</div> 
+0

您需要另一個解析器來警告//,所以修復解析器以支持//比分離器更容易警告它。 –

回答

0

嘗試使用

editor.getSession().setMode("ace/mode/javascript"); 
+0

這是怎麼回事?我的意思是,這不會驗證我的評論問題:) – newb

0

似乎對我來說,你可以掛鉤進入ACE編輯器的更改事件,並在用戶啓動一行時提醒用戶//。將會有幾個用例需要正確處理:

a。顯而易見的一個 - 忽略空白,以前的非空行以a結尾;並以//開頭 - 提醒用戶;但是

b。用戶錯過了前一行的分號。

c。我們在一個多行引用的字符串中或在/ * * /註釋中。 d)。等等

所以掛鉤的變化事件很容易,但決定何時提醒用戶更棘手。有關Ace API的詳細信息,請參閱https://ace.c9.io/#nav=api&api=edit_session

P.S.作爲防止//註釋的替代方法,爲什麼不在用戶移動到新行時將其轉換爲/ * * /註釋?