2017-07-12 5 views
0

私はWebページにAceエディタを実装しました。私はそれを使ってJavaScript関数を記述しています。JavaScriptのAceエディタに検証ルールを追加するにはどうすればよいですか?

、私はいくつかの理由のための小さなパーサは、パーサはすべてを成し遂げることができますが、それは次の文字を使用して宣言されている場合ではないコメントうまく作られた作品マイページ://

私は大のコメントを読むことができます:/* some code */

ではなく、通常1:// 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エディタのchangeイベントに追加し、//を使用して行を開始するときにユーザに警告します。正しく処理する必要があるユースケースがいくつかあります。

a。明白なもの - 空白を無視し、前の空でない行はaで終わります。これは//で始まります - ユーザーに警告します。しかし

b。ユーザーは前の行のセミコロンを見逃しました。

c。複数行の引用符付きの文字列の中か、/ * * /コメントの中にあります。

d。

変更イベントをフックするのは簡単ですが、ユーザーに警告するタイミングを決めるのは難しいです。 Ace APIの詳細については、https://ace.c9.io/#nav=api&api=edit_sessionを参照してください。

P.S. //コメントを防止する代わりに、ユーザーが新しい行に移動したときに/ * * /コメントに変換してみてはどうでしょうか?

関連する問題