@ 261105.1

231010.2 · 014d42b1ba295ccba700591fdca1eaf0d74f641e

added Cpp2 syntax definition

reading declarations

ChangeLog.adoc

@@ -12,6 +12,7 @@   - updated astyle lib to version 3.4.9  - added support for Elm (https://gitlab.com/saalen/highlight/-/issues/237)+ - added support for Cpp2  - fixed Lua nested string deprecation error (https://gitlab.com/saalen/highlight/-/issues/238)  

gui_files/ext/fileopenfilter.conf

@@ -38,6 +38,7 @@ BNF (*.bnf) Boo (*.boo) Carbon (*.carbon) C/C++ (*.cpp *.cc *.c *.C *.hpp *.h *.cu *.ino)+Cpp2 (*.cpp2) C# (*.cs) Charmm (*.inp) CHILL (*.chl)

langDefs/cpp2.lang

new file mode 100644@@ -0,0 +1,84 @@++Description="Cpp2"++Categories = {"source"}++Digits = [[ (?:0x|0X|0b)[0-9a-fA-F']+|\d*[\.]?\d+(?:[eE][\-\+]\d+)?[lLuU]* ]]++Keywords={+  { Id=1,+    List={+      "goto", "break", "return", "continue", "asm", "case", "default", "if", "else", "switch", "while", "for", "do", "sizeof",+      "typeof", "stdcall", "cdecl", "const_cast", "delete", "dynamic_cast", "goto", "namespace", "new", "pascal",+      "reinterpret_cast", "static_cast", "this", "throw", "try", "catch", "using", "true", "false", "bitand", "and", "bitor", "or", "xor",+      "compl", "and_eq", "or_eq", "xor_eq", "not", "not_eq", "assert", "static_assert",+      "alignas","alignof","concept","consteval","constexpr","constinit","co_await","co_return","co_yield","decltype",+      "noexcept","requires","thread_local"+    }+  },+  { Id=2,+    List= {+      "int", "long", "short", "char", "void", "signed", "unsigned", "float", "double", "size_t", "wchar_t",+      "ptrdiff_t", "sig_atomic_t", "fpos_t", "clock_t", "time_t", "va_list", "jmp_buf", "FILE", "DIR", "div_t", "ldiv_t", "static",+      "mbstate_t", "wctrans_t", "wint_t", "wctype_t", "const", "bool", "complex", "struct", "union", "enum",+      "int8_t", "int16_t", "int32_t", "int64_t", "uint8_t", "uint16_t", "uint32_t", "uint64_t", "int_least8_t", "int_least16_t",+      "int_least32_t", "int_least64_t", "uint_least8_t", "uint_least16_t", "uint_least32_t", "uint_least64_t",+      "int_fast8_t", "int_fast16_t", "int_fast32_t", "int_fast64_t", "uint_fast8_t", "uint_fast16_t", "uint_fast32_t",+      "uint_fast64_t", "intptr_t", "uintptr_t", "intmax_t", "uintmax_t", "char8_t","char16_t","char32_t",+      "in", "out", "copy", "move", "inout", "forward"+    }+  },+  { Id=4,+    List= {+      "typedef", "inline", "auto", "class", "explicit", "extern", "friend", "inline", "mutable", "operator",+      "register", "template", "private", "protected", "public", "typeid", "virtual", "volatile", "constexpr", "nullptr", "decltype"+    }+  },+  { Id=5,+    Regex=[[([\w\+\-\*\=]+)\s*\:]]+  },+  { Id=4,+    Regex=[[(\w+)\s*\(]]+  },+  { Id=6,+    Regex=[=[ \[\[[\w\:\,\s]+?\]\] ]=]+  }+}++Strings = {+  Delimiter=[["|']],+  RawPrefix="R",+  Interpolation = [[ %\w ]],+}++Comments = {+  { Block=true,+    Nested=false,+    Delimiter = { [[\/\*]], [[\*\/]] }+  },+  {+    Block=false,+    Delimiter = { [[//]] }+  }+}++IgnoreCase=false++PreProcessor = {+  Prefix=[[#]],+  Continuation="\\",+}++Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\.|\:|\&|<|>|\!|=|\/|\*|\%|\+|\-|\~|\||\^|\?]]++EnableIndentation=false++-- resolve issue with C++14 number separator syntax+function OnStateChange(oldState, newState, token)++  if token=="'" and oldState==HL_NUMBER and newState==HL_STRING then+    return HL_NUMBER+  end++  return newState+end