Próbuję edytować plik Swagger JSON w emacsie. Zawiera duże zagnieżdżone obiekty JSON, więc chcę zwinąć i ukryć niektóre z nich.
Próbowałem origami-mode
, skonfigurowałem jak origami-c-style-parser
w origami-parser-alist
, ale jest dość niewyszukany (słowo „parser” wydaje się być zbyt imponującym słowem do tego, co robi). Nie zauważa, że podciągi parametrów adresu URL Swagger, takie jak, {id}
są wewnątrz ciągów JSON, więc z radością je również zwija, gdy proszę o zwinięcie wszystkich węzłów w buforze oprócz bieżącego. Nie chcę tego robić. Chcę sposób zawaleniem tylko JSON poddrzewa takich obiektów, a nie podciągi ciągów JSON, które zdarzają się mieć nawiasów klamrowych w nich. Jak mogę osiągnąć ten cel?
code-folding
json
outline
Robin Green
źródło
źródło
js2-mode
ma składanie, które może również składać pliki JSON.Odpowiedzi:
Emacs posiada tryb hs-minor, którego można używać do selektywnego ukrywania / pokazywania kodu i blokowania komentarzy w kilku językach, w tym JavaScript. Domyślnie pozwala to ukryć i pokazać bloki JSON rozdzielone znakami „{” i „}”, ale można je łatwo modyfikować, aby zezwolić także na „[” i „]” jako ograniczniki bloków. Aby to zrobić, musimy zmodyfikować
js-mode
wpis zahs-special-modes-alist
pomocą czegoś takiego:Powinieneś wtedy stwierdzić, że [...] bloki mogą być ukryte i pokazane, a także bloki {...}.
źródło
Mój
json-mode
ma funkcję składania kodu, która nie powinna próbować składać rzeczy, które wyglądają jak obiekty lub tablice wewnątrz ciągów. To nie jest dojrzały tryb główny, ale powinien być użyteczny.źródło