Code-Folding-Erweiterungen für JSON


15

Ich habe es mit JSON-Dateien mit mehreren wiederholten Blöcken zu tun, bei denen nur ein Feldwert (Ganzzahl) geändert wurde - tatsächlich wird jeder geänderte Wert nur um den vorherigen entsprechenden Wert erhöht. Um das Lesen solcher Dateien zu vereinfachen, möchte ich in der Lage sein, diesen gesamten Satz von sich wiederholenden Blöcken in nur einen Block zu falten, wobei einige Angaben zu den Bereichen des sich ändernden Werts in diesen Blöcken gemacht werden sollen. Auf der Suche nach Code Folding Methoden in Emacs habe ich hs-minor-modeund gefunden outline-mode. Ich verstehe jedoch nicht, wie ich von der Funktionalität, die sie bieten, zu der gewünschten übergehen soll. Könnte jemand einen groben Überblick darüber geben, wie ich dies erreichen könnte?

EDIT: Ein Beispiel für das, was ich versuche zu tun:

Gegeben eine JSON-Datei, die so aussieht:

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

Ich möchte es so anzeigen lassen:

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

Entschuldigung für die sehr offene Frage.


1
Gute Frage - das wäre ganz nützlich.
Drew

Antworten:


8

Es gibt weitere Faltoptionen für Emacs: http://wikemacs.org/wiki/Folding#Yafolding und Yafolding scheinen die besten für Ihren Fall zu sein, da sie auf Einrückungen basieren. Es enthält auch eine schöne Schnittstelle à la Magit, um die Befehle zu entdecken.

Dies ist jedoch keine vollständige Antwort auf Ihre Frage, da der Bereich der Felder nicht sofort angezeigt wird.

Yafolding ist in MELPA:

M-x package-install yafolding

1

Verwenden Sie Emacs hideshow. Sie können den Cursor an einer beliebigen Stelle platzieren und die darunter liegenden Blöcke mit dem Befehl "n" ausblenden

C-c @ C-l

Hier ist n ein numerisches Präfixargument, das durch Drücken von festgelegt wird

C-u 1 RET

Lesen Sie hier mehr über hsmode, hs-mode . Weitere Informationen zu Präfix-Argumenten finden Sie hier. Der Präfix- Modus args hs funktioniert im Standardmodus nicht. Sie müssen js2-mode (oder) js-mode installiert haben, damit dies funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.