EditorConfig, restez consistants sur l’écriture du code !

closeCet article a été publié il y a 5 ans 1 mois 23 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Le hasard fait parfois bien les choses. En faisant le ménage dans mes flux rss inactifs, je découvre que celui d’OpenMediaVault est en erreur. En effet, le site a été refait apparemment et il n’y a plus de flux 🙁 Mais j’ai découvert le dépôt Github, et dans celui-ci un petit fichier que je ne connaissais pas mais que je vais certainement adopter sous peu 🙂

EditorConfig est en fait un format de fichier contenant des directives concernant l’écriture du code. Il permet par exemple d’indiquer comment est gérée l’indentation (largeur, espace ou tabulation), le format de fin de ligne (unix ou windows), le charset par défaut (devrait être utf8 pour tous, mais sur certains dossiers anciens, ça pourrait aider d’en spécifier un autre), et appliquer certains éléments sur des modèles comme les extensions de fichiers ou chemins particuliers.

Le fichier .editorconfig qui contient les directives se place à la racine d’un projet, et celui d’OpenmediaVault est simple, du coup c’est très parlant :

On voit que la première section s’applique à tout le monde, les suivantes s’appliquent uniquement à certains types de fichiers. Je vous laisse lire la doc sur le site officiel pour comprendre l’étendue des possibilités.

Pourquoi toi ?

Ce format a surtout été conçu pour le travail collaboratif, où plusieurs contributeurs pourraient même inconsciemment ne pas toujours suivre à la lettre les conventions des formats de fichiers et de la mise en forme du code, par exemple quand deux développeurs utilisent des systèmes d’exploitations différents et des éditeurs de code différents.

Et donc pourquoi moi qui bosse surtout tout seul ? Par curiosité d’abord, et puis par bonne pratique quand on veut à terme partager ses productions et qu’on a pas envie que les contributions deviennent une foire à la saucisse. Et surtout, parce c’est supporté par presque tous les éditeurs de code et environnements de développement du marché, que ce soit nativement ou via des plugins, donc aucune mauvaise raison de ne pas en tenir compte.

C’est notamment le cas de Sublime Text, L’installation est à portée d’un Install dans Package Control. Il y a même une extension snippets qui peut générer des modèles de fichiers .editorconfig pour vous. De cette façon, vous n’avez même plus à réfléchir sur comment adapter la configuration de l’éditeur à la base de code sur laquelle vous comptez travailler, votre éditeur s’en charge pour vous. Et comme pour tout ce qui permet à un informaticien de nourrir sa feignantise, autant dire que je ne peux que vous conseiller de l’adopter 🙂

5 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Trit’
02/03/2019 11:54

Juste une correction sur le titre : tu t’es fait avoir par le faux-ami anglais « consistency », qui ne veut pas du tout dire « consistant » en français, mais en réalité « cohérent » (et ces deux notions n’ont rien à voir entre elles). Et vu le contenu de l’article, il est bien question de cohérence dans l’écriture de code (garder les mêmes normes et que ça en parte pas dans tous les sens) que de consistance (le fait d’avoir du code en quantité, et non du vide).

Étienne
Étienne
04/03/2019 09:08
Répondre à  Trit’

+1. J’aime bien quand mon code ne me laisse pas sur ma faim. ^^

etchevef
etchevef
04/03/2019 15:53
Répondre à  Trit’

Le mot « consistance » n’est pas limité au champ lexicale culinaire, il a également le sens « Répétition d’un même type de réponse dans le comportement d’un individu ou d’un sous-groupe ; dans un sondage, maintien d’une même opinion par un sujet interrogé. » (https://www.larousse.fr/dictionnaires/francais/consistance/18397?q=consistance#18294), ce qui correspond bien aux propos 🙂

Breizh
04/03/2019 10:38

Parce que tous les IDE ne sont pas capables de lire les modelines de Vim (https://vim.fandom.com/wiki/Modeline_magic) ? Quelle déception ! :p

J’étais tombé sur editorconfig y’a quelque temps, mais pour une raison qui m’échappe, je suis revenu à cette fonctionnalité spécifique à Vim…

terodacg
terodacg
04/03/2019 21:08

dans mon équipe j’ai préconisé d’utiliser prettier, fait la meme chose mais est plus utilisé visiblement
parfaitement bien intégré à VScode