如何在JavaScript中向Ace编辑器添加验证规则?

时间:2017-07-12 12:38:40

标签: javascript angularjs ace-editor

我已将Ace编辑器实现到我的网页中,并使用它来编写JavaScript函数。

我的页面工作得很好,我出于某些原因制作了一个小解析器,解析器可以完成所有操作,但如果使用以下字符声明它,则不是注释://

我可以阅读大量评论:/* 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>

2 个答案:

答案 0 :(得分:0)

尝试使用

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

答案 1 :(得分:0)

在我看来,您可以挂钩到Ace编辑器的更改事件,并在用户开始使用//时提醒用户。您可能需要正确处理几个用例:

一个。显而易见的一个 - 忽略空白区域,之前的非空行以一个;这开始于// - 所以提醒用户;但

湾用户错过了上一行的分号。

℃。我们在多行引用字符串内或在/ * * / comment内。

d。等

所以挂钩变更事件很容易,但决定何时提醒用户是比较棘手的。有关Ace API详细信息,请参阅https://ace.c9.io/#nav=api&api=edit_session

P.S。作为阻止//注释的替代方法,为什么不在用户移动到新行时将其变为/ * * /注释?