如何使用ACE或CodeMirror自动缩进/格式化groovy脚本

如何使用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

我正在开发一个需要嵌入式groovy脚本编辑器的web应用程序,我尝试了CodeMirror和ACE,但都没有提供自动缩进和格式化

我从数据库中获取脚本代码,然后将其放在名为myScript的javascript变量中; 然后,我使用ACE执行以下操作:

    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


你能帮忙吗?谢谢。

您解决了这个问题吗?