Mam do czynienia z plikami json z wieloma powtórzonymi blokami z jedną zmienną tylko jednej wartości pola (liczbą całkowitą) - w rzeczywistości każda zmieniona wartość jest tylko poprzednią odpowiednią zwiększoną wartością. Aby takie pliki były łatwe do odczytania, chciałbym móc złożyć cały zestaw powtarzających się bloków w jeden blok z pewnymi wskazaniami, jakie są zakresy zmieniającej się wartości w tych blokach. Szukając metod składania kodu w emacs, znalazłem hs-minor-mode
i outline-mode
. Jednak nie widzę, jak przejść od funkcji, które zapewniają, do tych, których pragnę. Czy ktoś mógłby przedstawić ogólny zarys tego, jak mogę to osiągnąć?
EDYCJA: Przykład tego, co próbuję zrobić:
Biorąc pod uwagę plik json, który wygląda następująco:
{
"SomeArray": [
{
"ChangingField": 1,
"ConstantField" : "X"
},
{
"ChangingField": 2,
"ConstantField" : "X"
},
{
"ChangingField": 3,
"ConstantField" : "X"
},
{
"ChangingField": 4,
"ConstantField" : "X"
},
{
"ChangingField": 5,
"ConstantField" : "X"
}
]
}
Chciałbym, aby wyświetlał się w następujący sposób:
{
"SomeArray": [
{
"ChangingField": 1...5,
"ConstantField" : "X"
}
]
}
Przepraszamy za bardzo otwarte pytanie.
źródło
Odpowiedzi:
Istnieje więcej opcji składania Emacsa: http://wikemacs.org/wiki/Folding#Yafolding i Yafolding wygląda najlepiej w twoim przypadku, ponieważ opiera się na wcięciach. Zawiera także przyjemny interfejs à-la Magit do odkrywania poleceń.
Jednak to nie w pełni odpowiada na twoje pytanie, ponieważ nie pokaże zakresu pól po wyjęciu z pudełka.
Yafolding jest w MELPA:
źródło
Użyj emacsa ”
hideshow
. Możesz trzymać kursor w dowolnym miejscu i ukryć pod nim poziom bloków, użyj poleceniaTutaj n jest argumentem przedrostka numerycznego, który ustawia się przez naciśnięcie
Przeczytaj więcej o hsmode tutaj, hs-mode . Więcej informacji o argumentach przedrostka tutaj, przedrostek argumenty Tryb hs nie działa w trybie domyślnym. Aby to działało, musisz mieć zainstalowany tryb js2 (lub) js-mode.
źródło