Une courte remarque sur l'indentation des séquences multilignes

(Gabriel Scherer (gasche) @ 2010-11-05 17:30:49)

En attendant la suite de la série MLF, pour mieux vous faire raj^Wpatienter. :-°

—minh

De nombreux choix de présentation du code sont basés sur des questions de goût. Depuis quelques mois, je base l’indentation des séquences multilignes sur un argument objectif, que vous connaissez peut-être déjà : au lieu de maximiser le confort visuel à la lecture, il s’agit de faciliter les modifications ultérieures du code.

Voici trois exemples de style d’indentation des séquences multilignes. Ici des listes dans le langage OCaml, mais ça marche aussi pour les tableaux, enregistrements, etc. :

[ truc;
  muche;
  bidule ]

[ truc
; muche
; bidule ]

[
  truc;
  muche;
  bidule;
]

J’ai longtemps utilisé le premier style, puis le second qui est plus amusant. Je suis récemment globalement passé au troisième, qui a l’avantage que tous les éléments de la séquence sont représentés de la même façon. Dans les deux autres propositions, le premier et le dernier élément interagissent avec les délimiteurs, ce qui rend plus fastidieux l’ajout, la suppression ou l’échange d’éléments à ces positions : il faut ajuster les [ et ] en même temps.

Un autre intérêt de cette approche, souligné par rz0, est que ces modifications donneront lieu à un diff plus simple : la comparaison ligne-à-ligne des évolutions du code n’est pas encombrée par les manipulations de délimiteurs. C’est un avantage quand on utilise beaucoup diff, avec un logiciel de gestion de versions par exemple.

On pense beaucoup aux conventions d’indentation comme manière de faciliter la lecture du code. C’est important, mais il faut aussi prendre en compte son évolution dans le temps.