Je travaille sur de nombreux projets C différents avec des styles d'indentation uniques. Comment puis-je demander à Emacs de faire des paramètres d'indentation par projet sans polluer les arborescences de projet en amont avec des .dir-locals.el
fichiers? Je veux faire correspondre les projets en utilisant leurs chemins d'accès sur le disque.
indentation
artagnon
la source
la source
.dir-locals.el
. Peut-être que des collègues aimeraient cette idée?Réponses:
.dir-locals.el
est ma méthode préférée lorsque cela est possible, d'autant plus qu'elle s'applique à tous les utilisateurs d'Emacs travaillant sur ce projet.Pour les projets hostiles aux utilisateurs d'Emacs ou qui ne veulent pas de
.dir-locals.el
fichiers, ou si vous souhaitez avoir des préférences personnelles (sans doute pas de retrait) qui ne devraient pas s'appliquer à d'autres personnes, si vous utilisez un système de contrôle de version distribué, une option est de toujours travailler sur des branches personnelles qui ont votre.dir-locals.el
. Je ne connais pas de moyen d'utiliser un DCVS qui rend cela indolore, cependant.Une autre option consiste à ne pas archiver les
.dir-locals.el
fichiers. Par exemple, avec git, ajoutez-le à.git/info/exclude
. C'est douloureux lorsque vous avez plusieurs extractions d'un projet, bien sûr.Ce que j'ai fait là où
.dir-locals.el
il n'y avait pas d'option, c'est d'ajouter un crochet qui recherche lesbuffer-file-name
valeurs connues.(Attention: code tapé directement dans mon navigateur car je n'ai pas accès à mon vrai code pour le moment.)
la source
.dir-locals.el
à.git/info/exclude
semble être une bonne option..gitignore
la racine d'un projet?.dir-locals.el
à votre gitignore global à~/.config/git/ignore
.Vous ne pouvez pas convaincre des projets en amont comme llvm et linux d'enregistrer un fichier
.dir-locals.el
.Une solution élaborée au problème:
Utilisé comme suit:
J'ai également une macro similaire pour les autres modes linguistiques.
la source
la distribution de .dir-locals.el dans différents projets est difficile à maintenir.
Ma façon est assez simple, mettez tout le code dans un ~ / .custom.el.
Fondamentalement, le code sera exécuté dans prog-mode-hook (ou votre-quoi-major-mode-hook) et fera les choses suivantes:
J'utilise cette méthode avec succès depuis un an.
Voici le code (appelez my-setup-develop-environment dans prog-mode-hook):
la source
La façon normale de le faire est d'utiliser
.dir-locals
. C'est pourquoi ils ont été introduits en premier lieu. Pourquoi pas? À ma connaissance, la plupart des outils liés au projet ont tendance à conserver leurs configurations dans le répertoire racine du projet: git, svn, Eclipse et bien d'autres…N'oubliez pas d'ajouter le fichier à
.gitignore
ou similaire.la source
J'utilise guess-style.el .
Il réussit assez bien à deviner le style d'indentation préféré d'un fichier.
la source