# HG changeset patch # User Bram Moolenaar # Date 1681579803 -7200 # Node ID 8e2ecfebd13646126b60398f5895d2c0872b6b4b # Parent 59be36288b65a114a2dc47bb472c811895cbf697 patch 9.0.1455: C++ 20 modules are not recognized Commit: https://github.com/vim/vim/commit/732d69e1918b28ad0fe16eb9bc5a776c7958122b Author: Ben Jackson Date: Sat Apr 15 18:17:17 2023 +0100 patch 9.0.1455: C++ 20 modules are not recognized Problem: C++ 20 modules are not recognized. Solution: Add patterns to recognize C++ 20 modules as "cpp". (Ben Jackson, closes #12261) diff --git a/runtime/filetype.vim b/runtime/filetype.vim --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -338,6 +338,10 @@ if has("fname_case") au BufNewFile,BufRead *.C,*.H setf cpp endif +" C++ 20 modules (clang) +" https://clang.llvm.org/docs/StandardCPlusPlusModules.html#file-name-requirement +au BufNewFile,BufRead *.cppm,*.ccm,*.cxxm,*.c++m setf cpp + " .h files can be C, Ch C++, ObjC or ObjC++. " Set c_syntax_for_h if you want C, ch_syntax_for_h if you want Ch. ObjC is " detected automatically. diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -127,7 +127,7 @@ let s:filename_checks = { \ 'context': ['tex/context/any/file.tex', 'file.mkii', 'file.mkiv', 'file.mkvi', 'file.mkxl', 'file.mklx'], \ 'cook': ['file.cook'], \ 'cpon': ['file.cpon'], - \ 'cpp': ['file.cxx', 'file.c++', 'file.hh', 'file.hxx', 'file.hpp', 'file.ipp', 'file.moc', 'file.tcc', 'file.inl', 'file.tlh'], + \ 'cpp': ['file.cxx', 'file.c++', 'file.hh', 'file.hxx', 'file.hpp', 'file.ipp', 'file.moc', 'file.tcc', 'file.inl', 'file.tlh', 'file.cppm', 'file.ccm', 'file.cxxm', 'file.c++m'], \ 'cqlang': ['file.cql'], \ 'crm': ['file.crm'], \ 'crontab': ['crontab', 'crontab.file', '/etc/cron.d/file', 'any/etc/cron.d/file'], diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1455, +/**/ 1454, /**/ 1453,