Afficher le code avec une indentation différente de celle enregistrée sur le disque

13

Je travaille sur certains projets avec des styles d'indentation que je trouve vraiment irritants. Je voudrais afficher le code avec un certain style d'indentation, mais toujours enregistrer sur le disque avec le style d'indentation prescrit.

Plus précisément, j'aime le style d'indentation par défaut emacs sur les arguments de la fonction multiligne ...

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

Mais le projet est uniquement tabulé, un seul retrait sur tout ...

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

Puis-je voir le premier cas, mais partager le second?

Spacemoose
la source
Qu'en est-il: désactivez le mode de retour automatique, puis exécutez une commande (par exemple, astyle) qui formate le fichier selon le style de votre équipe dans votreafter-save-hook
nanny
avez-vous envisagé un hook de formatage au niveau du contrôle de version, par exemple un hook de pré-validation git?
erjoalgo

Réponses:

1

Une approche évidente serait de

  • indenter une copie du tampon en utilisant c-mode; puis
  • placez le retrait de la copie en tant que propriétés d'affichage sur l'espace d'indentation dans le tampon d'origine.

Remarque 1: l'implémentation de ceci tout en conservant la possibilité de modifier le tampon pourrait être un cauchemar, donc je ferais le tampon en lecture seule.
Remarque 2: les propriétés de texte sont beaucoup plus rapides que les superpositions, je les utiliserais donc. Sauf dans le cas étrange où le retrait du tampon d'origine est 0 et celui c-modede ne l'est pas.

politza
la source
Cela peut être fait avec des propriétés de texte en ajoutant des mots-clés de verrouillage de police supplémentaires. Je souhaite plutôt savoir comment le retrait doit être affiché à la place.
wasamasa