Estoy tratando de editar un archivo Swagger JSON en emacs. Contiene grandes objetos JSON anidados, por lo que quiero colapsar y ocultar algunos de ellos.
Lo he intentado origami-mode
, configurado como origami-c-style-parser
en origami-parser-alist
, pero es bastante poco sofisticado (la palabra "analizador" parece ser una palabra demasiado grandiosa para lo que hace). No se da cuenta de que las subcadenas de parámetros de Swagger URL como {id}
están dentro de las cadenas JSON, por lo que felizmente las colapsa también cuando le pido que contraiga todos los nodos en el búfer excepto el nodo actual. No quiero que haga eso. Quiero una forma de colapso sólo subárboles JSON como objetos, no subcadenas de cadenas JSON que sucedan tener llaves en ellos. ¿Cómo puedo lograr este objetivo?
fuente
js2-mode
tenga plegado que también pueda plegar archivos JSON.Respuestas:
Emacs viene con el modo hs-minor-mode que se puede usar selectivamente para mostrar / ocultar código y comentar bloques en varios idiomas, incluido JavaScript. De manera predeterminada, esto le permitirá ocultar y mostrar bloques JSON delimitados por '{' y '}', pero también se puede modificar fácilmente para permitir '[' y ']' como delimitadores de bloque. Para hacer esto, necesitamos modificar la
js-mode
entradahs-special-modes-alist
con algo como:Debería encontrar que los [...] bloques pueden ocultarse y mostrarse, así como {...} bloques.
fuente
My
json-mode
tiene una función de plegado de código que no debería intentar doblar cosas que se parecen a objetos o matrices dentro de las cadenas. No es un modo mayor maduro, pero debería ser utilizable.fuente