¿Hay algo que pueda alinear automáticamente los caracteres del signo igual (=) en los archivos de texto?

Necesitamos alinear el carácter = en nuestros archivos de terraformación con el nombre de variable más largo. ¿Hay alguna herramienta que pueda hacer esto automáticamente?

Por ejemplo

thomas = "train"
harrypotter = "wizard"
roger = "rabbit"

...se convertiría...

thomas      = "train"
harrypotter = "wizard"
roger       = "rabbit"

Puntos de bonificación: principalmente uso PyCharm, por lo que si fuera un complemento para PyCharm, estaría encantado.

Respuestas (3)

Smart Align es un complemento de PyCharm que hace exactamente eso. Justo,

ventanas y linux

  1. Haga clic en el archivo
  2. Ctrl + un
  3. Alt + ⇧ + -

Mac

  1. Haga clic en el archivo
  2. ⌘ + un
  3. ⌥ + ⇧ + -

Hecho

Simplemente instale el complemento "Terraform and HCL" de Jetbrains. También es compatible con el resaltado de sintaxis y muchas más funciones.

Después de instalarlo, abra su archivo y presione "Ctrl+Alt+L" para reformatear su código.

Tal vez verifique la configuración de "Alinear propiedades" en Configuración-> Editor-> Estilo de código-> Configuración de Terraform y allí en la última pestaña a la derecha llamada "Otro" (ver captura de pantalla). Tiene que ser "En igualdad de condiciones", pero esa es la configuración predeterminada.

ingrese la descripción de la imagen aquí

¿Cómo consigues que este complemento alinee todos los bloques lógicos de la misma manera? Por lo que puedo ver, solo alinea cada bloque lógico por separado.
@James No creo que el complemento pueda hacer eso. El formato se aplica a los bloques por separado, no por igual en todo el archivo. Su pregunta original no implicaba que esta fuera una característica solicitada, pero si le gusta que eso suceda, entonces Smart align podría ser la mejor solución para usted :)
Gracias, y disculpa la omisión. Supongo que no podría preguntarle si sabe cómo agregaría smart aline a la configuración previa a la confirmación, ¿podría?

Como de costumbre, ¡las utilidades de shell de Unix al rescate! En concreto, la columna :

$ column -t
thomas = "train"
harrypotter = "wizard"
roger = "rabbit"

thomas         = "train"
harrypotter    = "wizard"
roger          = "rabbit"

Y también funciona en archivos, por supuesto:

$ cat my_file.txt
thomas = "train"
harrypotter = "wizard"
roger = "rabbit"
$ column -t my_file.txt
thomas         = "train"
harrypotter    = "wizard"
roger          = "rabbit"
Bonito y sencillo! Su respuesta puede beneficiarse al agregar un ejemplo que muestre cómo procesar la entrada de un archivo. De cualquier manera, ¡votado a favor!
@RockPaperLz-MaskitorCasket: Pensé que era obvio, pero está bien.
Sí, es obvio para aquellos de nosotros que sabemos lo fácil que es. :)