(et n'en fait rien, mais ça n'est pas un problème de syntaxe)
Je n'ai jamais eu ce cas dans du code sur lequel je travaille.
Mais, effectivement, la détection est basée sur des expressions régulières et très approximatives.
Parmi les choses qui peuvent poser problème:
- Déclarer une variable dans les parenthèses d'une boucle for demande de gérer un cas particulier
- Les instanciations de templates en C++ qui peuvent contenir un mélange de types et de valeurs
- Les déclarations de fonctions avec des paramètres non nommés (int fonction(int);) qui sont compliqués à distinguer d'un appel de fonction
- Les conventions de formatage qui utilisent des retours à la ligne à des endroits un peu inhabituels:
intfonction(int){return42;}
Les extensions au langage C, par exemple l'utilisation de __attribute__ ou aussi en C++ les mot clés const, override, final qui peuvent se trouver à la fin d'une déclaration de fonction
Les lambdas en C++ (j'ai pas encore essayé de voir si c'était possible).
Et sûrement plein d'autres auxquels je n'ai pas encore pensé. Donc, oui, c'est clairement pas parfait. Mais pour mon usage, l'amélioration de la lisibilité est quand même globalement positive.
[^] # Re: up
Posté par pulkomandy (site web personnel, Mastodon) . En réponse au journal Amélioration de la coloration syntaxique C dans vim. Évalué à 4. Dernière modification le 16 août 2021 à 15:09.
Je n'ai jamais eu ce cas dans du code sur lequel je travaille.
Mais, effectivement, la détection est basée sur des expressions régulières et très approximatives.
Parmi les choses qui peuvent poser problème:
- Déclarer une variable dans les parenthèses d'une boucle for demande de gérer un cas particulier
- Les instanciations de templates en C++ qui peuvent contenir un mélange de types et de valeurs
- Les déclarations de fonctions avec des paramètres non nommés (
int fonction(int);) qui sont compliqués à distinguer d'un appel de fonction- Les conventions de formatage qui utilisent des retours à la ligne à des endroits un peu inhabituels:
__attribute__ou aussi en C++ les mot clés const, override, final qui peuvent se trouver à la fin d'une déclaration de fonctionEt sûrement plein d'autres auxquels je n'ai pas encore pensé. Donc, oui, c'est clairement pas parfait. Mais pour mon usage, l'amélioration de la lisibilité est quand même globalement positive.