Розширення для складання коду для json


15

Я маю справу з файлами json з декількома повторними блоками із зміненим лише одним значенням поля (цілим числом) - насправді кожне змінене значення є лише попереднім відповідним значенням, що збільшується. Щоб зробити такі файли легкими для читання, я хотів би мати можливість скласти весь цей набір повторюваних блоків лише в один блок із певним зазначенням того, якими є діапазони змінного значення для цих блоків. Шукаючи методи складання коду в emacs, я знайшов hs-minor-modeі outline-mode. Однак я не бачу, як перейти від функціоналу, який вони надають, до того, якого я бажаю. Чи міг би хтось надати приблизний огляд того, як я міг цього досягти?

EDIT: Приклад того, що я намагаюся зробити:

Дано файл 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"
        }
    ]
}

Вибачте за дуже відкрите запитання.


1
Хороше запитання - це було б досить корисно.
Дрю

Відповіді:


8

Є більше варіантів складання для Emacs: http://wikemacs.org/wiki/Folding#Yafolding і Yafolding виглядає найкращим для вашого випадку, оскільки він заснований на відступ. Він також включає в себе хороший інтерфейс à-la Magit для виявлення команд.

Однак це не відповідає в повній мірі на ваше запитання, оскільки не відображатиме діапазон полів поза полем.

Yafolding знаходиться в MELPA:

M-x package-install yafolding

1

Використовуйте emacs ' hideshow. Ви можете тримати курсор у будь-якому місці та заховати блоки "n" рівня під ним, використовуючи команду

C-c @ C-l

Тут n - аргумент числового префікса, який встановлюється натисканням

C-u 1 RET

Детальніше про hsmode читайте тут, hs-mode . Більше про аргументи префікса тут, префікс аргументів hs режим не працює в режимі за замовчуванням. Для цього потрібно мати режим js2 (або) js-режим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.