C ++ 14 nos proporcionó la opción de usar comillas simples para separar los dígitos de literales numéricos grandes. Esto rompe el resaltado de sintaxis de Vim.
Por ejemplo, considere el siguiente programa 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;
}
Cuando veo esto en Vim, veo el siguiente resaltado de sintaxis (tenga en cuenta que estoy usando algunos scripts de resaltado adicionales ):
Me gustaría que todos los dígitos huge_number_again
aparezcan rojos. ¿Hay alguna modificación que pueda hacer en uno de mis archivos de sintaxis o en mi ~/.vimrc
para corregir esto?
syn match cNumber display contained "\d\(\d\|'\)*\(u\=l\{0,2}\|ll\=u\)\>"
a~/.vim/syntax/cpp.vim
. (Por cierto, si eso es C ++, usecstdlib
, nostdlib.h
.)ull
pelusa, pero no sé si coincidirá con algún caso no válido. Y aparentemente C ++ 14 permite el separador en octales, binarios, literales hexadecimales y flotantes y después del punto decimal en flotantes. Eso es mucho más de lo que estoy dispuesto a asumir.Respuestas:
El repositorio vim-jp / vim-cpp incluyó este cambio en julio de 2016:
Si no desea utilizar este repositorio, puede agregar estas líneas a
~/.vim/syntax/cpp.vim
.fuente