Support better C++ annotation highlighting

* Uses some simple highlighting within annotations
* Supports multi-line annotations
  (see compiler-explorer/compiler-explorer#878)
This commit is contained in:
Matt Godbolt 2021-02-15 17:15:34 -06:00
parent ec67c169a8
commit 265d83f041
2 changed files with 60 additions and 1 deletions

View file

@ -298,7 +298,7 @@ export const language = <languages.IMonarchLanguage>{
{ include: '@whitespace' },
// [[ attributes ]].
[/\[\[.*\]\]/, 'annotation'],
[/\[\[/, { token: 'annotation', next: '@annotation' }],
[/^\s*#include/, { token: 'keyword.directive.include', next: '@include' }],
@ -384,6 +384,15 @@ export const language = <languages.IMonarchLanguage>{
[/.*/, 'string.raw']
],
annotation: [
{ include: '@whitespace' },
[/using|alignas/, 'keyword'],
[/[a-zA-Z0-9_]+/, 'annotation'],
[/[,:]/, 'delimiter'],
[/[()]/, '@brackets'],
[/\]\]/, { token: 'annotation', next: '@pop' }]
],
include: [
[
/(\s*)(<)([^<>]*)(>)/,