Я пытаюсь отредактировать файл Swagger JSON в emacs. Он содержит большие вложенные объекты JSON, поэтому я хочу свернуть и скрыть некоторые из них.
Я пробовал origami-mode
, настроил как origami-c-style-parser
в origami-parser-alist
, но это довольно простое (слово «парсер» кажется чрезмерно грандиозным словом для того, что он делает). Он не замечает, что подстроки параметров URL Swagger, например, {id}
находятся внутри строк JSON, поэтому он тоже радостно их сворачивает, когда я прошу его свернуть все узлы в буфере, кроме текущего. Я не хочу этого делать. Я хочу способ разрушения только JSON поддерев , как объекты, а не подстроки JSON строки , которые случаются иметь фигурные скобки в них. Как я могу достичь этой цели?
code-folding
json
outline
Робин Грин
источник
источник
js2-mode
есть сворачивание, которое также может сворачивать файлы JSON.Ответы:
Emacs поставляется с hs-minor-mode, который можно использовать для выборочного скрытия / отображения блоков кода и комментариев на нескольких языках, включая JavaScript. По умолчанию это позволит вам скрывать и показывать блоки JSON, разделенные символами «{» и «}», но его легко изменить, чтобы «[» и «] также можно было использовать в качестве разделителей блоков. Для этого нам нужно изменить
js-mode
запись вhs-special-modes-alist
что-то вроде:Затем вы должны обнаружить, что блоки [...] могут быть скрыты и показаны, а также блоки {...}.
источник
У My
json-mode
есть функция сворачивания кода, которая не должна пытаться складывать вещи, похожие на объекты или массивы внутри строк. Это не зрелый мажорный режим, но его следует использовать.источник