Как отформатировать код Java в редакторе Ace

1

Я использую редактор ACE для отображения кода Java. Я хочу отформатировать java-код в редакторе. Я пробовал код следующим образом:

var editor = $('.file-content').ace(),
JavaMode = ace.require('ace/mode/java').Mode,
beautify = ace.require("ace/ext/beautify");

editor.getSession().setValue(content);
editor.getSession().setMode(new JavaMode());
beautify.beautify(editor.getSession());

Но я получил красивый код:

publicclassHelloWorld{publicstaticvoidmain(String args[]){System 
.out.println(1);
}}

Как я могу отформатировать Java-код в редакторе Ace?

Теги:
ace-editor

2 ответа

1
Лучший ответ

Вот пример подключения JS Beautifier в существующий редактор Ace.

var editor = ace.edit('editor');
var txtAra = document.querySelector('textarea[name="editor"]');
var jsbOpts = {
  indent_size : 2
};

editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/java");
syncEditor();

// Main Logic
setTimeout(formatCode, 1000); // Format sample Java after 1 second.

// Functions
function syncEditor() {
  editor.getSession().setValue(txtAra.value);
}
function commitChanges() {
  txtAra.value = editor.getSession().getValue();
}
function formatCode() {
  var session = editor.getSession();
  session.setValue(js_beautify(session.getValue(), jsbOpts));
}
.title {
  font-size: 1.67em;
  font-weight: bold;
  text-align: center;
}
#editor {
  height: 75vh;
  width: 100%;
}
textarea[name="editor"] {
  display: none;
}

.as-console-wrapper {
  display: none !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.6/ace.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-beautify/1.6.8/beautify.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css" rel="stylesheet"/>
<div>
  <div class="title">Ace Editor - Java Format</div>
  <textarea name="editor">public class SpringTest {public static void main(String[] args) throws Exception {System.out.print("Hello world");}}</textarea>
  <div id="editor"></div>
</div>

Вот демон jsFiddle

  • 0
    Пожалуйста, помните, что если вы добавите код с <и> и т. Д. В свою логику, например, ArrayList <String>, то JS Beautifier преобразуется в ArrayList <String> - и это вызовет проблемы компиляции. Поэтому будьте уверены в содержании и риске, который возникает при попытке форматирования.
0

Туз не предоставляет способ украсить java, вам нужно будет использовать для этого другую программу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню