我已将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>
答案 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。作为阻止//注释的替代方法,为什么不在用户移动到新行时将其变为/ * * /注释?