如何在Ace Editor中使用beautify?

1.2*_*tts 11 ace-editor

我在Ace编辑器中找到了美化扩展,但我没有看到任何如何使用它的例子.这是我到目前为止所拥有的:

var beautiful = ace.require("ace/ext/beautify");
beautiful.beautify();
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

Result of expression 'e' [undefined] is not an object.
Run Code Online (Sandbox Code Playgroud)

1.2*_*tts 13

它看起来像这样:

var beautify = ace.require("ace/ext/beautify"); // get reference to extension
var editor = ace.edit("editor"); // get reference to editor
beautify.beautify(editor.session);
Run Code Online (Sandbox Code Playgroud)

它要求您将Ace Editor会话作为第一个参数传递.在我原来的问题中,我没有传递任何变量,这是一个错误.

注意:它在扩展发行说明中提到的效果不佳.它的使用效果不佳.

  • 别忘了包括ext-beautify.js (4认同)
  • 将此行添加到您的 html:```<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.6/ext-beautify.js" type="text/javascript" charset= "utf-8"></script>``` (2认同)
  • 我是这个扩展的作者.我最近提交了一个重大改写,它的效果要好得多,特别是混合模式文件,js美化不是很好. (2认同)

Era*_*cht 9

我没有让它发挥作用

var beautify = ace.require("ace/ext/beautify"); // get reference to extension
Run Code Online (Sandbox Code Playgroud)

总是美化undefined.

过了一会儿,我放弃了.

并使用外部Beautify库(链接)

function beatify() {
    var val = editor.session.getValue();
  //Remove leading spaces
    var array = val.split(/\n/);
    array[0] = array[0].trim();
    val = array.join("\n"); 
  //Actual beautify (prettify) 
    val = js_beautify(val);
  //Change current text to formatted text
    editor.session.setValue(val);
}
Run Code Online (Sandbox Code Playgroud)