Estoy tratando con archivos json con múltiples bloques repetidos con solo un valor de campo (entero) cambiado; de hecho, cada valor modificado es solo el valor correspondiente anterior incrementado. Para hacer que tales archivos sean fáciles de leer, me gustaría poder plegar todo este conjunto de bloques repetidos en un solo bloque con alguna indicación de cuáles son los rangos del valor cambiante en estos bloques. Buscando métodos de plegado de código en emacs, encontré hs-minor-mode
y outline-mode
. Sin embargo, no veo cómo pasar de la funcionalidad que proporcionan a la que deseo. ¿Podría alguien proporcionar una visión general aproximada de cómo podría lograr esto?
EDITAR: Un ejemplo de lo que estoy tratando de hacer:
Dado un archivo json que se ve así:
{
"SomeArray": [
{
"ChangingField": 1,
"ConstantField" : "X"
},
{
"ChangingField": 2,
"ConstantField" : "X"
},
{
"ChangingField": 3,
"ConstantField" : "X"
},
{
"ChangingField": 4,
"ConstantField" : "X"
},
{
"ChangingField": 5,
"ConstantField" : "X"
}
]
}
Me gustaría que se muestre así:
{
"SomeArray": [
{
"ChangingField": 1...5,
"ConstantField" : "X"
}
]
}
Disculpas por la pregunta muy abierta.
fuente
Respuestas:
Hay más opciones de plegado para Emacs: http://wikemacs.org/wiki/Folding#Yafolding y Yafolding parece el mejor para su caso, ya que se basa en la sangría. También incluye una buena interfaz à-la Magit para descubrir los comandos.
Sin embargo, eso no responde completamente a su pregunta, ya que no mostrará el rango de los campos fuera de la caja.
Yafolding está en MELPA:
fuente
Use emacs '
hideshow
. Puede mantener el cursor en cualquier lugar y para ocultar los bloques 'n' nivel debajo de él, use el comandoAquí, n es un argumento de prefijo numérico que se establece presionando
Lea más sobre hsmode aquí, hs-mode . Más información sobre argumentos de prefijo aquí, el modo de prefijo args hs no funciona en el modo predeterminado. Necesita tener js2-mode (o) js-mode en su lugar para que esto funcione.
fuente