C ++ 14 nous a donné la possibilité d'utiliser des guillemets simples pour séparer les chiffres des grands littéraux numériques. Cela rompt la mise en évidence de la syntaxe de Vim.
Par exemple, considérez le programme C ++ 14 suivant:
#include <stdlib.h>
int main(int argc, char** argv) {
// small numbers are fine
int normal_number = 5;
// large numbers have the correct highlighting but they're hard to visually parse
int huge_number = 1000000000;
// apostrophes help with visual parsing but mess up syntax higlighting
int huge_number_again = 1'000'000'000;
return EXIT_SUCCESS;
}
Lorsque je vois cela dans Vim, je vois la coloration syntaxique suivante (notez que j'utilise des scripts de surbrillance supplémentaires ):
Je voudrais que tous les chiffres huge_number_again
apparaissent en rouge. Puis-je apporter une modification à l'un de mes fichiers de syntaxe ou à mon ~/.vimrc
pour corriger cela?
syn match cNumber display contained "\d\(\d\|'\)*\(u\=l\{0,2}\|ll\=u\)\>"
à~/.vim/syntax/cpp.vim
. (Btw, si c'est du C ++, utilisezcstdlib
-le passtdlib.h
.)ull
fluff, mais je ne sais pas s'il correspondra à un cas non valide. Et apparemment, C ++ 14 autorise le séparateur en octaux, binaires, hexadécimaux et flottants et après la virgule décimale en flottants. C'est beaucoup plus que ce que je suis prêt à accepter.Réponses:
Le repo vim-jp / vim-cpp a inclus ce changement en juillet 2016:
Si vous ne souhaitez pas utiliser ce dépôt, vous pouvez ajouter ces lignes à
~/.vim/syntax/cpp.vim
.la source