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?


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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.