Estensioni con codice pieghevole per json


15

Ho a che fare con file json con più blocchi ripetuti con un solo valore di campo (intero) modificato - in effetti, ogni valore modificato è solo il precedente valore corrispondente incrementato. Per rendere questi file facili da leggere, vorrei poter piegare l'intero insieme di blocchi ripetuti in un solo blocco con qualche indicazione di quali siano gli intervalli del valore che cambia attraverso questi blocchi. Alla ricerca di metodi di piegatura del codice in emacs, ho trovato hs-minor-modee outline-mode. Tuttavia, non vedo come passare dalla funzionalità che forniscono a quella che desidero. Qualcuno potrebbe fornire una visione d'insieme di come potrei ottenere questo?

EDIT: un esempio di ciò che sto cercando di fare:

Dato un file json che assomiglia a questo:

{
    "SomeArray": [
        {
        "ChangingField": 1,
        "ConstantField" : "X"
        },
        {
        "ChangingField": 2,
        "ConstantField" : "X"
        },
        {
        "ChangingField": 3,
        "ConstantField" : "X"
        },
        {
        "ChangingField": 4,
        "ConstantField" : "X"
        },
        {
        "ChangingField": 5,
        "ConstantField" : "X"
        }
    ]
}

Vorrei che fosse visualizzato in questo modo:

{
    "SomeArray": [
        {
        "ChangingField": 1...5,
        "ConstantField" : "X"
        }
    ]
}

Ci scusiamo per la domanda molto aperta.


1
Bella domanda: sarebbe abbastanza utile.
Estratto il

Risposte:


8

Esistono più opzioni di piegatura per Emacs: http://wikemacs.org/wiki/Folding#Yafolding e Yafolding sembrano le migliori per il tuo caso poiché si basano sul rientro. Include anche una bella interfaccia alla Magit per scoprire i comandi.

Tuttavia, ciò non risponde completamente alla tua domanda poiché non mostrerà la gamma dei campi fuori dalla scatola.

Yafolding è in MELPA:

M-x package-install yafolding

1

Usa emacs ' hideshow. Puoi tenere il cursore ovunque e per nascondere i blocchi 'n' sotto il livello, usa il comando

C-c @ C-l

Qui, n è un argomento con prefisso numerico che viene impostato premendo

C-u 1 RET

Maggiori informazioni su hsmode qui, hs-mode . Maggiori informazioni sugli argomenti prefisso qui, il prefisso args hs mode non funziona in modalità predefinita. Devi avere js2-mode (o) js-mode in atto per farlo funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.