Я имею дело с файлами json с несколькими повторяющимися блоками, в которых изменилось только одно значение поля (целое число) - фактически каждое измененное значение - это просто предыдущее увеличенное соответствующее значение. Чтобы сделать такие файлы легкими для чтения, я хотел бы иметь возможность складывать весь этот набор повторяющихся блоков в один блок с некоторым указанием того, каковы диапазоны изменения значения в этих блоках. В поисках методов свертывания кода в emacs я нашел hs-minor-mode
и outline-mode
. Однако я не понимаю, как перейти от функциональности, которую они предоставляют, к той, которую я желаю. Может ли кто-нибудь дать приблизительный обзор того, как мне этого добиться?
РЕДАКТИРОВАТЬ: пример того, что я пытаюсь сделать:
Учитывая файл JSON, который выглядит так:
{
"SomeArray": [
{
"ChangingField": 1,
"ConstantField" : "X"
},
{
"ChangingField": 2,
"ConstantField" : "X"
},
{
"ChangingField": 3,
"ConstantField" : "X"
},
{
"ChangingField": 4,
"ConstantField" : "X"
},
{
"ChangingField": 5,
"ConstantField" : "X"
}
]
}
Я хотел бы, чтобы это отображалось так:
{
"SomeArray": [
{
"ChangingField": 1...5,
"ConstantField" : "X"
}
]
}
Извиняюсь за очень открытый вопрос.
источник
Ответы:
Для Emacs есть и другие варианты сворачивания: http://wikemacs.org/wiki/Folding#Yafolding, а Yafolding выглядит лучше всего для вашего случая, поскольку основан на отступе. Он также включает в себя приятный интерфейс а-ля Magit для обнаружения команд.
Тем не менее, это не полностью отвечает на ваш вопрос, так как он не показывает диапазон полей из коробки.
Яфолдинг находится в MELPA:
источник
Используйте emacs '
hideshow
. Вы можете держать курсор в любом месте и, чтобы скрыть блоки уровня 'n' под ним, используйте командуЗдесь n - числовой префиксный аргумент, который устанавливается нажатием
Узнайте больше о hsmode здесь, hs-mode . Подробнее о префиксных аргументах здесь: префиксный аргумент Режим hs не работает в режиме по умолчанию. Вам нужно иметь js2-mode (или) js-mode, чтобы это работало.
источник