Files
Gareth Lloyd 77099ed6b3 runtime(cpp): add C++26 lexical constructs to syntax highlighting
Add a guarded "C++ 26 extensions" block (cpp_no_cpp26) covering new
lexical surface introduced since C++23:

- [[ ... ]] attributes as a region, so P3394 annotations carrying a
  value expression (eg [[=foo{1}]]) no longer trip cErrInBracket on
  their braces/parens. A \w\@1<! look-behind keeps it from matching a
  subscripted immediately-invoked lambda (arr[[]{...}()]).
- ^^ reflection operator (P2996).
- [: :] splice brackets (P2996).
- contract_assert keyword (P2900).

Add input/cpp_cpp26.cpp exercising these constructs with screendumps,
and update dumps/cpp_noreturn_00.dump for the new [[ ]] attribute
delimiter highlighting.

closes: #20577

Signed-off-by: Gareth Lloyd <gareth@ignition-web.co.uk>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-06-21 14:45:14 +00:00

21 lines
1.4 KiB
Plaintext
Generated

>/+0#0000e05#ffffff0@1| |C|+@1|2|6| |l|e|x|i|c|a|l| |c|o|n|s|t|r|u|c|t|s| +0#0000000&@47
@75
|/+0#0000e05&@1| |P|3@1|9|4| |a|n@1|o|t|a|t|i|o|n|s|:| |[@1| |.@2| |]@1| |m|a|y| |c|a|r@1|y| |a| |v|a|l|u|e| |e|x|p|r|e|s@1|i|o|n|.| +0#0000000&@13
|[+0#e000e06&@1|=+0#0000000&|r|e|n|a|m|e|{|"+0#e000002&|f|u|l@1|_|n|a|m|e|"|}+0#0000000&|]+0#e000e06&@1| +0#0000000&|i+0#00e0003&|n|t| +0#0000000&|b|r|a|c|e|d|;| @38
|[+0#e000e06&@1|=+0#0000000&|k|e|y|(|8+0#e000002&|)+0#0000000&|]+0#e000e06&@1| +0#0000000&@13|i+0#00e0003&|n|t| +0#0000000&|p|a|r|e|n|e|d|;| @37
|[+0#e000e06&@1|n+0#0000000&|o|d|i|s|c|a|r|d|]+0#e000e06&@1| +0#0000000&@11|i+0#00e0003&|n|t| +0#0000000&|p|l|a|i|n|(|)|;| @37
@75
|/+0#0000e05&@1| |P|2|9|0@1| |c|o|n|t|r|a|c|t|s|:| |c|o|n|t|r|a|c|t|_|a|s@1|e|r|t| |i|s| |a| |k|e|y|w|o|r|d|.| +0#0000000&@25
|v+0#00e0003&|o|i|d| +0#0000000&|c|h|e|c|k|(|i+0#00e0003&|n|t| +0#0000000&|x|)| |{| |c+0#af5f00255&|o|n|t|r|a|c|t|_|a|s@1|e|r|t|(+0#0000000&|x| |!|=| |0+0#e000002&|)+0#0000000&|;| |}| @28
@75
|/+0#0000e05&@1| |P|2|9@1|6| |r|e|f|l|e|c|t|i|o|n| |(|^@1|)| |a|n|d| |s|p|l|i|c|i|n|g| |(|[|:| |:|]|)|.| +0#0000000&@28
|c+0#00e0003&|o|n|s|t|e|x|p|r| +0#0000000&|a+0#00e0003&|u|t|o| +0#0000000&|r|e|f|l| |=| |^+0#af5f00255&@1|i+0#00e0003&|n|t|;+0#0000000&| @46
|[+0#e000e06&|:|r+0#0000000&|e|f|l|:+0#e000e06&|]| +0#0000000&|s|p|l|i|c|e|d|{|}|;| @55
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
| +0#0000000&@56|1|,|1| @10|A|l@1|