如何使用ACE或CodeMirror自动缩进/格式化groovy脚本
我正在开发一个需要嵌入式groovy脚本编辑器的web应用程序,我尝试了CodeMirror和ACE,但都没有提供自动缩进和格式化 我从数据库中获取脚本代码,然后将其放在名为myScript的javascript变量中; 然后,我使用ACE执行以下操作:如何使用ACE或CodeMirror自动缩进/格式化groovy脚本,groovy,codemirror,ace-editor,auto-indent,autoformatting,Groovy,Codemirror,Ace Editor,Auto Indent,Autoformatting,我正在开发一个需要嵌入式groovy脚本编辑器的web应用程序,我尝试了CodeMirror和ACE,但都没有提供自动缩进和格式化 我从数据库中获取脚本代码,然后将其放在名为myScript的javascript变量中; 然后,我使用ACE执行以下操作: var editor = ace.edit("editor"); editor.setTheme("ace/theme/monokai"); editor.getSession().setMode("ace/mode/g
var editor = ace.edit("editor");
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/groovy");
editor.getSession().setUseWrapMode(true);
editor.setShowPrintMargin(false);
editor.setValue(myScript);
我用CodeMirror这样做:
var myCodeMirror = CodeMirror(document.body, {
value: myScript,
mode: "groovy",
theme: "monokai",
lineWrapping: true,
lineNumbers: true
});
编辑器工作得很完美,问题是它显示的代码没有缩进,也没有格式化,而且非常难看。例如:
def信誉映射=[];def totalReputation=0;def userReputationResult=message.properties['reputation'];对于(userReputationResult中的行){reputationMapping[row[0]]=行[1];totalReputation=行[1];};def computedRank=0;def reviewResult=message.properties['reviews'];对于(reviewResult中的行){if(信誉映射[行[0]]!=null){def信誉=信誉映射[行[0]];computedRank=computedRank+(信誉*行[1]);};};message.payload=computedRank
你能帮忙吗?谢谢。您解决了这个问题吗?