Добавляем функцию HTML Beautify/Prettify в Ace!

Всем привет, работая через админку с кодом, часто возмущало, что не могу выровнять код, поэтому постоянно пользовался сторонними сайтами для этого… Но вот моему терпению, настал конец) Решил покопаться в компоненте, поискать, где же там эта функция зарыта?) Скажу так, она там есть, но почему то не работает, в связи с чем, я «прикрутил» стороннюю библиотеку для этого!





Для ленивых, «вшил» функционал в компонент, можете просто скачать его и заменить уже установленный…
Только после скачивания переименуйте архив в: ace-1.9.3-pl.transport.zip

А для тех, кто хочет самостоятельно его добавить:

1) Скачиваем библиотеку beautifier.js и размещаем её в папку
assets/components/ace

2) Тут же, в этой же папке, открываем
assets/components/ace/modx.texteditor.js
и вставляем после 30 строки:
beatify : function() {
    var val = this.editor.session.getValue();
    var array = val.split(/\n/);
    array[0] = array[0].trim();
    val = array.join("\n");
    val = html_beautify(val);
    this.editor.session.setValue(val);
},
далее, после 385 строки новое сочетание клавиш:
this.editor.commands.addCommand({
    name: "beatify",
    bindKey: {win: "Ctrl-Shift-B", mac: "Ctrl-Shift-B"},
    exec: this.beatify.bind(this),
    readOnly: true
});

3) Открываем файл:
core/components/ace/model/ace/ace.class.php
и вписываем после 38 строки:
$this->modx->controller->addJavascript($this->config['assetsUrl'].'beautifier.js');
т.е. перед подключением файла ace/ace.min.js

4) Очищаем кэш сайта.

Готово! Теперь, открыв код чанка или шаблона, жмём Ctrl+Shift+B
Если не работает, возможно опять же дело в кэше, обновите страницу с кэшем
Windows: Ctrl+F5
MacOS: Cmd+Shift+R

P.S. Если Вы не знали, можно открыть у Ace информацию о всех сочетаниях клавиш нажатием: Ctrl+Alt+H

В данный момент ведётся активная работа над MiniShop3 силами сообщества и руками @Николай Савин, поэтому призываю всех неравнодушных поддержать эту работу финансово.
Денис Усманов
03 октября 2023, 12:12
modx.pro
4
337
+10

Комментарии: 3

Arahort
03 октября 2023, 12:36
0
Несовсем понятно что имеется ввиду под «часто возмущало, что не могу выровнять код,» ведь в Ace выравнивание работает через таб. Или имеется ввиду аналог Reformat Code из phpStorm?
    Денис Усманов
    03 октября 2023, 12:38
    0
    Таб — это понятно, когда сам пишешь, всё ровно. А если у тебя скопированный внешне код не ровный, выравнивать его табом быстро надоест…
      Arahort
      03 октября 2023, 12:51
      0
      Если ctrl+a и весь код отформатировать полностью, тогда да, круто, спасибо за гайд!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3