vim-jp/vim-cpp

C++1y binary literals and digit separator

msimonsson opened this issue · 2 comments

Clang 3.4 supports both:
http://clang.llvm.org/cxx_status.html#cxx14

#include <iostream>

int main()
{
    int n = 1'000'000;
    std::cout << n << std::endl;

    unsigned char c = 0b0100'0000;
    std::cout << c << std::endl;

    return 0;
}

I'm new to Vim syntax files, but the following seems to work for binary literals:

syn match   cNumber     display contained "0b[01]\+\(\'[01]\+\)*"

I added binary literal in #31. Please review it if you can. And as far as I tried, digit separater seems not to be broken in current highlighting.

I noticed that digit separater may break highlight.

int main()
{
    111'2'333;
    return 0;
}

Here, '2' is highlighted by Character and other parts are highlighted by Number.