Ver código con sangría diferente a la guardada en el disco

13

Trabajo en algunos proyectos con estilos de sangría que me parecen realmente irritantes. Me gustaría ver el código con un cierto estilo de sangría, pero siempre guardar en el disco con el estilo de sangría prescrito.

Específicamente, me gusta el estilo de sangría predeterminado de emacs en argumentos de función de varias líneas ...

void foo(int a, int b,
         string c)

Pero el proyecto es solo una pestaña, una sola sangría en todo ...

void foo(int a, int b,
    string c)

¿Puedo ver el primer caso, pero compartir el segundo?

Spacemoose
fuente
¿Qué pasa con: desactivar el modo de reversión automática, luego ejecutar un comando (por ejemplo, astyle) que formatea el archivo al estilo de su equipo en suafter-save-hook
niñera
¿ha considerado un enlace de formato de nivel de control de versión, por ejemplo, git pre-commit hook?
erjoalgo

Respuestas:

1

Un enfoque obvio para esto sería

  • sangrar una copia del búfer usando c-mode; y entonces
  • coloque la sangría de la copia como propiedades de visualización en el espacio de sangría en el búfer original.

Nota 1: Implementar esto manteniendo la capacidad de editar el búfer podría ser una pesadilla, por lo que haría que el búfer fuera de solo lectura.
Nota 2: las propiedades de texto son mucho más rápidas que las superposiciones, por lo que las usaría. A menos que en el caso impar donde la sangría del búfer original es 0 y c-mode's no lo es.

politza
fuente
Esto se puede hacer con propiedades de texto agregando palabras clave adicionales de bloqueo de fuente. Me preocupa más averiguar cómo se debe mostrar la sangría en su lugar.
wasamasa