O C ++ 14 nos forneceu a opção de usar aspas simples para separar os dígitos de literais numéricos grandes. Isso interrompe o destaque da sintaxe do Vim.
Por exemplo, considere o seguinte 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;
}
Quando vejo isso no Vim, vejo o seguinte destaque da sintaxe (observe que estou usando alguns scripts de destaque adicionais ):
Gostaria que todos os dígitos huge_number_again
aparecessem em vermelho. Existe uma modificação que posso fazer em um dos meus arquivos de sintaxe ou no meu ~/.vimrc
para corrigir isso?
syn match cNumber display contained "\d\(\d\|'\)*\(u\=l\{0,2}\|ll\=u\)\>"
a~/.vim/syntax/cpp.vim
. (Btw, se é C ++, utilizaçãocstdlib
, nãostdlib.h
.)ull
cotão, mas não sei se corresponderá a algum caso inválido. E, aparentemente, o C ++ 14 permite o separador em octal, binário, literais hexadecimais e flutuadores e após o ponto decimal em flutuadores. Isso é muito mais do que estou disposto a enfrentar.Respostas:
O repositório vim-jp / vim-cpp incluiu essa alteração em julho de 2016:
Se você não quiser usar este repositório, poderá adicionar essas linhas a
~/.vim/syntax/cpp.vim
.fonte