Я використовую, spacemacs
але, мабуть, тут потрібні знання emacs.
У мене є файл JSON з одним довгим рядком, скажімо, цей JSON від json.org/example:
{"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}}
Я хотів би, щоб Emacs нагадав про це, а це означає, що я не змінював крайній лівий символ рядка на належний рівень відступу, а розбивав рядок на кілька рядків.
Якщо я використовую spacemacs/indent-region-or-buffer
( SPC j =
), то текст взагалі не змінюється.
Як я можу попросити у Emacs насправді перервати цю довгу лінію і нагадати, щоб отримати щось подібне:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Мене не цікавить відповідь JSON, наприклад, я вважаю, що intelliJ робить це для будь-якої мови, яку вона підтримує (java, json ...). Я думаю, що це досяжно для будь-якої мови emacs має головний режим для, або скажімо, найбільш популярних.
EDIT Я виявив, M-x json-reformat-region
що spacemacs
працює і працює, але так, я хотів би це для будь-якої мови та з завжди однаковим ярликом, заснованим на головному режимі ...
EDIT2 Добре, тому мій висновок полягає в тому, що він реалізований для різних мов, принаймні JSON & lisp, імовірно, інших, і це було б легко ще більше (XML / XHTML, go, який має go-fmt, а також використовуючи clang). Однак немає загальної назви функції, яка б робила це для всіх мов. Тут є простір для його реалізації в spacemacs
шарах для різних мов ... Я не знайшов реалізації X / HTML, що мене трохи дивує.
web-beautiful.el
. Це найкраще, що я знайшов, але це залежить від node.js.