J'ai du code Java avec des instructions SQL écrites sous forme de chaînes Java (s'il vous plaît, pas de querelles OR/M, le SQL intégré est ce qu'il est - ce n'est pas moi qui décide).
J'ai décomposé sémantiquement les instructions SQL en plusieurs chaînes concaténées sur plusieurs lignes de code pour faciliter la maintenance. Ainsi, au lieu de quelque chose comme :
String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";
J'ai quelque chose comme :
String query =
"SELECT FOO, BAR, BAZ" +
" FROM ABC " +
" WHERE BAR > 4 ";
Ce style rend le SQL beaucoup plus facile à lire et à maintenir (IMHO), en particulier pour les grandes requêtes. Par exemple, je peux mettre mon éditeur en mode "overwrite" et modifier le texte sur place assez facilement.
Notez que cette question dépasse l'exemple particulier de SQL. Tout code écrit avec un quelconque formatage vertical, en particulier les constructions tabulaires, est susceptible d'être détruit par une jolie imprimante.
Or, certains membres du projet utilisent l'éditeur Eclipse et le formatage sémantique est souvent détruit lorsqu'ils formatent un fichier source entier.
Existe-t-il un moyen de demander à Eclipse d'ignorer certaines lignes de source en ce qui concerne le formatage ?
Je cherche quelque chose comme un commentaire spécial qui permette d'activer le formateur Eclipse. Idéalement, un tel commentaire pourrait être configuré pour être ce que nous choisissons, et d'autres formateurs pourraient être programmés pour le respecter également :
// STOP-ECLIPSE-FORMATTING
String query =
"SELECT FOO, BAR, BAZ" +
" FROM ABC " +
" WHERE BAR > 4 ";
// START-ECLIPSE-FORMATTING
Évidemment, une "solution" consiste à faire en sorte que les membres de notre équipe se standardisent sur un formateur externe tel que Jalopy ou JIndent mais ce n'est pas l'objet de cette question (et ce n'est pas non plus ma décision concernant ce projet) : Je cherche spécifiquement un moyen d'éviter le formateur Eclipse sur une base ad-hoc.
Idéalement, une solution me permettra d'insérer des instructions pour le formateur Eclipse sans que les membres de l'équipe utilisant Eclipse n'aient à reconfigurer l'IDE. (autre que le choix éventuel d'un commentaire de commande agnostique pour le formateur : STOP-ECLIPSE-FORMATTING
→ STOP-FORMATTING
).
1 votes
Nous avons eu ce problème. Eclipse devrait disposer d'une option permettant de toujours rompre une ligne dans un constructeur de chaîne à l'endroit où se trouve un +, indépendamment du fait que la partie suivante de la chaîne tienne sur la ligne. Mais ce n'est pas le cas. :-(
0 votes
Apparemment, cette fonctionnalité a été ajoutée dans Eclipse 3.6M6 : bugs.eclipse.org/bugs/show_bug.cgi?id=27079
0 votes
Remarque : si vous voulez simplement empêcher Eclipse de mélanger vos commentaires, vous pouvez utiliser // devant chaque ligne. Pour commenter un bloc, mettez-le en surbrillance et appuyez sur Ctrl+/.
0 votes
Notez que 10 ans plus tard, Java 14 apportera probablement des chaînes de caractères multi-lignes, ce qui fera partie du passé.