C ++ 14 ci ha fornito la possibilità di usare virgolette singole per separare le cifre di grandi letterali numerici. Ciò interrompe l'evidenziazione della sintassi di Vim.
Ad esempio, considera il seguente programma C ++ 14:
#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;
}
Quando lo vedo in Vim, vedo la seguente evidenziazione della sintassi (nota che sto usando alcuni script di evidenziazione aggiuntivi ):
Vorrei che tutte le cifre fossero huge_number_again
rosse. È possibile apportare una modifica a uno dei miei file di sintassi o al mio ~/.vimrc
per correggerlo?
syn match cNumber display contained "\d\(\d\|'\)*\(u\=l\{0,2}\|ll\=u\)\>"
a ~/.vim/syntax/cpp.vim
. (A proposito, se questo è C ++, usa cstdlib
, no stdlib.h
.)
ull
lanugine, ma non so se corrisponderà a un caso non valido. E apparentemente C ++ 14 consente il separatore in ottali, binari, valori letterali esadecimali e float e dopo la virgola decimale in float. È molto più di quello che sono disposto ad affrontare.