EditorConfig permet d'avoir des styles de codage uniformes dans différents éditeurs et EDI
Petit tour d'horizon de cet utilitaire

277PARTAGES

13  0 
EditorConfig aide à maintenir des styles de codage cohérents pour plusieurs développeurs travaillant sur le même projet dans différents éditeurs et IDE. Le projet EditorConfig comprend un format de fichier permettant de définir les styles de codage et un ensemble de plug-ins d'éditeur de texte permettant aux éditeurs de lire le format de fichier et de respecter les styles définis. Les fichiers EditorConfig sont facilement lisibles et fonctionnent parfaitement avec les systèmes de contrôle de version.

À quoi ressemble un fichier EditorConfig ?

Quelques projets utilisent EditorConfig, parmi lesquels

  • Projet A11Y: un projet mené par la communauté pour faciliter l'accessibilité du Web.
  • Amaze UI: un framework front-end originaire de Chine.
  • AngularJS: HTML amélioré pour les applications Web
  • Angular Strap : directives Bootstrap pour Angular
  • Angular Leaflet Directive: directives Angular pour la bibliothèque Leaflet
  • animate.css: bibliothèque d'animation CSS
  • async: utilitaires asynchrones pour le noeud et le navigateur
  • Autofac: Un conteneur addictif .NET IoC.
  • Autogen: générateur d'en-tête copyright + license pour plusieurs langues
  • Babel: compilateur pour l'écriture de JavaScript de nouvelle génération
  • basket.js: un chargeur de scripts de validation de concept pour la mise en cache / chargement de scripts avec localStorage
  • Bootstrap: infrastructure de développement Web front-end



Vous trouverez ci-dessous un exemple de styles de fin de ligne et d'indentation des fichiers .editorconfig pour les fichiers Python et JavaScript.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,py}]
charset = utf-8

# 4 space indentation
[*.py]
indent_style = space
indent_size = 4

# Tab indentation (no size specified)
[Makefile]
indent_style = tab

# Indentation override for all JS under lib directory
[lib/**.js]
indent_style = space
indent_size = 2

# Matches the exact files either package.json or .travis.yml
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2
Où ces fichiers sont-ils stockés?

Lors de l'ouverture d'un fichier, les plugins EditorConfig recherchent un fichier nommé .editorconfig dans le répertoire du fichier ouvert et dans chaque répertoire parent. Une recherche de fichiers .editorconfig s'arrête si le chemin d'accès au fichier racine est atteint ou si un fichier EditorConfig avec root = true est trouvé.

Les fichiers EditorConfig sont lus de haut en bas et les règles les plus récentes trouvées ont priorité. Les propriétés des sections EditorConfig correspondantes sont appliquées dans l'ordre dans lequel elles ont été lues. Par conséquent, les propriétés des fichiers plus proches sont prioritaires.

Pour les utilisateurs Windows: Pour créer un fichier .editorconfig dans l'explorateur Windows, vous devez créer un fichier nommé .editorconfig., Que l'explorateur Windows renommera automatiquement en .editorconfig.

Propriétés prises en charge

Notez que toutes les propriétés ne sont pas supportées par tous les plugins. Voici une liste de quelques propriétés qui sont supportées

  • indent_style: définissez “tab” ou “space” pour utiliser respectivement la tabulation ou un espace.
  • indent_size: nombre entier définissant le nombre de colonnes utilisées pour chaque niveau d'indentation et la largeur des espaces (si pris en charge). Lorsqu'il est défini sur “tab”, la valeur de tab_width (si spécifiée) sera utilisée.
  • tab_width: nombre entier définissant le nombre de colonnes utilisées pour représenter un caractère de tabulation. La valeur par défaut est indent_size et n'a généralement pas besoin d'être spécifiée.
  • end_of_line: définissez sur lf, cr ou crlf pour contrôler la manière dont les sauts de ligne sont représentés.
  • charset: mis à latin1, utf-8, utf-8-bom, utf-16be ou utf-16le pour contrôler le jeu de caractères.
  • trim_trailing_whitespace: défini sur true pour supprimer tous les caractères d'espacement précédant les caractères de nouvelle ligne et sur false pour s'assurer que ce n'est pas le cas.
  • insert_final_newline: défini sur true pour garantir que le fichier se termine par une nouvelle ligne lors de la sauvegarde et sur false pour le garantir.
  • root: propriété spéciale devant être spécifiée en haut du fichier en dehors de toute section. Définissez sur “true” pour arrêter la recherche de fichiers .editorconfig sur le fichier actuel.



Pour toutes les propriétés, la valeur de “unset” est de supprimer l’effet de cette propriété, même si elle a été définie auparavant. Par exemple, ajoutez indent_size = unset pour supprimer la propriété indent_size (et utilisez l'éditeur par défaut).

Actuellement, toutes les propriétés et valeurs ne respectent pas la casse. Ils sont minuscules lorsqu'ils sont analysés. En règle générale, si une propriété n'est pas spécifiée, les paramètres de l'éditeur seront utilisés, c'est-à-dire que EditorConfig n'aura aucun effet sur cette partie.

Il est acceptable et souvent préférable de laisser certaines propriétés EditorConfig non spécifiées. Par exemple, tab_width n'a pas besoin d'être spécifié, sauf s'il diffère de la valeur de indent_size. De plus, lorsque indent_style est défini sur tab, il peut être souhaitable de laisser indent_size non spécifié afin que les lecteurs puissent visualiser le fichier en utilisant leur largeur d'indentation préférée. De plus, si une propriété n'est pas normalisée dans votre projet (end_of_line par exemple), il peut être préférable de la laisser vide.

Un plugin n’est pas toujours nécessaire

Certains éditeurs sont fournis avec le support natif de EditorConfig. C’est le cas par exemple de CodeLight, Intellij IDEA, KTextEditor, Visual Studio ou PyCharm


Éditeurs avec un support natif

Microsoft explique par exemple que

Citation Envoyé par Microsoft
Dans Visual Studio 2017, vous pouvez ajouter un fichier EditorConfig à votre projet ou base de code pour appliquer des styles de codage cohérents pour tous les utilisateurs qui travaillent sur la base de code. Les paramètres EditorConfig sont prioritaires par rapport aux paramètres globaux de l’éditeur de texte Visual Studio. Vous pouvez donc personnaliser chaque base de code pour utiliser des paramètres de l’éditeur de texte qui sont propres au projet. Vous pouvez toujours définir vos propres préférences d’éditeur personnelles dans la boîte de dialogue Options de Visual Studio. Ces paramètres s’appliquent à chaque fois que vous travaillez sur une base de code sans fichier .editorconfig, ou quand le fichier .editorconfig ne remplace pas un paramètre particulier. Le style de mise en retrait (tabulations ou espaces) constitue un exemple de préférence de ce type.

Les paramètres EditorConfig sont pris en charge par de nombreux éditeurs de code et IDE, notamment Visual Studio. C’est un composant portable qui accompagne votre code et peut appliquer des styles de codage même en dehors de Visual Studio.

Quand vous ajoutez un fichier EditorConfig à votre projet dans Visual Studio, la mise en forme du code existant ne change pas, sauf si vous mettez en forme le document (Edition > Avancé > Mettre le document en forme ou Ctrl+K, Ctrl+D dans le profil par défaut). Toutefois, les nouvelles lignes de code sont mises en forme selon les paramètres EditorConfig.

Pour les éditeurs comme Atom, NetBeans PHPStorm ou en encore EMacs, l’utilisateur va devoir télécharger un plugin.


Éditeurs qui nécessitent un plugin

D’ailleurs, à ce propos, l’équipe derrière EditConfig a publié la version 0.4.0 du plug-in Notepad ++.

Dans le changelog du plug-in sur GitHub nous pouvons lire u’il :
  • Offre de construction x64 du plugin.
  • Permet de convertir end_of_line avant de sauvegarder.
  • Ajoute une commande pour afficher les paramètres de configuration actuels.
  • Corrige la logique de combinaison de propriétés.
  • Permet de définir la coloration syntaxique du fichier .editorconfig sur ini.


Liste complète des propriétés supportées

Sources : EditorConfig , Microsoft

Et vous ?

Vous êtes-vous déjà servi d'EditorConfig ? Sur quel EDI / éditeur ?
Qu'en avez-vous pensé ?

Voir aussi :

IntelliJ IDEA 2019.1 EAP5 permet de visualiser les emplacement récents de code, et prend en charge les modifications apportées par Android Studio 3.3
Sortie d'Oxygen XML Editor 21 : tour d'horizon des nouveautés de la dernière version annuelle de l'éditeur XML
La Release Candidate (RC) de Visual Studio 2019 est disponible au téléchargement, un mois avant la sortie de la version stable de l'EDI de Microsoft
C'est un téléphone annoncé comme open source et personnalisable via l'EDI pour Arduino : le WiPhone est estimé à moins de 100 $
Lazarus 2.0.0 disponible au téléchargement, la nouvelle version majeure de l'EDI open source bâti autour de Free Pascal est stable

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de transgohan
Expert éminent https://www.developpez.com
Le 04/03/2019 à 13:54
Je ne connaissais pas, et je ne pense pas avoir à l'utiliser.
Dans mon équipe les outils sont définis dès le départ ainsi que les configurations.
Cela fait donc plusieurs années que je n'ai rien configuré dans mon EDI...

Certains ont des besoins de reconfiguration permanente de leurs EDIs ?
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 04/03/2019 à 14:46
C'est surtout intéressant pour ceux qui utilisent plusieurs EDI
Avatar de scandinave
Membre averti https://www.developpez.com
Le 04/03/2019 à 18:20
Code : Sélectionner tout
1
2
3
4
5
Je ne connaissais pas, et je ne pense pas avoir à l'utiliser.
Dans mon équipe les outils sont définis dès le départ ainsi que les configurations.
Cela fait donc plusieurs années que je n'ai rien configuré dans mon EDI...

Certains ont des besoins de reconfiguration permanente de leurs EDIs ?
Je considère que l'IDE est le propre du développeur. Si l'un considère qu'il code plus vite sur Eclipse, l'autre sur NetBeans et le dernier sur Sublime Text, du moment qu'ils maitrise suffisamment leur IDE pour le configurer de manière à respecter les choix de dev, autant ne pas leur imposer un IDE qu'il n'aime pas.

Ce genre d'outil permet de gagner du temps, avec une configuration partiellement automatique.

 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web