abstract
add
alias
and
as
ascending
async
await
base
bool
break
by
byte
case
catch
char
checked
class;
const
continue
decimal
default
delegate
descending
do
double
dynamic
else
enum;
event
explicit
extern
finally
fixed
float
for
foreach
from foo;
get
global
goto
group
if
implicit
in
init;
int;
interface;
internal
into
is
join
let
lock
long
nameof
namespace;
new;
not
notnull
null
object
on
operator
or
orderby
out
override
params
partial
private
protected
public
readonly
record;
ref
remove
return
sbyte
sealed
select
set
short
sizeof
stackalloc
static
string;
struct;
switch
this
throw
try
typeof
uint
ulong
unchecked
unmanaged
unsafe
ushort
using
value
var
virtual
void
volatile
when
where;
while
yield

// very contextual keywords:
Person person2 = person1 with { FirstName = "John" };

----------------------------------------------------

[
	["keyword", "abstract"],
	["keyword", "add"],
	["keyword", "alias"],
	["keyword", "and"],
	["keyword", "as"],
	["keyword", "ascending"],
	["keyword", "async"],
	["keyword", "await"],
	["keyword", "base"],
	["keyword", "bool"],
	["keyword", "break"],
	["keyword", "by"],
	["keyword", "byte"],
	["keyword", "case"],
	["keyword", "catch"],
	["keyword", "char"],
	["keyword", "checked"],
	["keyword", "class"], ["punctuation", ";"],
	["keyword", "const"],
	["keyword", "continue"],
	["keyword", "decimal"],
	["keyword", "default"],
	["keyword", "delegate"],
	["keyword", "descending"],
	["keyword", "do"],
	["keyword", "double"],
	["keyword", "dynamic"],
	["keyword", "else"],
	["keyword", "enum"], ["punctuation", ";"],
	["keyword", "event"],
	["keyword", "explicit"],
	["keyword", "extern"],
	["keyword", "finally"],
	["keyword", "fixed"],
	["keyword", "float"],
	["keyword", "for"],
	["keyword", "foreach"],
	["keyword", "from"], " foo", ["punctuation", ";"],
	["keyword", "get"],
	["keyword", "global"],
	["keyword", "goto"],
	["keyword", "group"],
	["keyword", "if"],
	["keyword", "implicit"],
	["keyword", "in"],
	["keyword", "init"], ["punctuation", ";"],
	["keyword", "int"], ["punctuation", ";"],
	["keyword", "interface"], ["punctuation", ";"],
	["keyword", "internal"],
	["keyword", "into"],
	["keyword", "is"],
	["keyword", "join"],
	["keyword", "let"],
	["keyword", "lock"],
	["keyword", "long"],
	["keyword", "nameof"],
	["keyword", "namespace"], ["punctuation", ";"],
	["keyword", "new"], ["punctuation", ";"],
	["keyword", "not"],
	["keyword", "notnull"],
	["keyword", "null"],
	["keyword", "object"],
	["keyword", "on"],
	["keyword", "operator"],
	["keyword", "or"],
	["keyword", "orderby"],
	["keyword", "out"],
	["keyword", "override"],
	["keyword", "params"],
	["keyword", "partial"],
	["keyword", "private"],
	["keyword", "protected"],
	["keyword", "public"],
	["keyword", "readonly"],
	["keyword", "record"], ["punctuation", ";"],
	["keyword", "ref"],
	["keyword", "remove"],
	["keyword", "return"],
	["keyword", "sbyte"],
	["keyword", "sealed"],
	["keyword", "select"],
	["keyword", "set"],
	["keyword", "short"],
	["keyword", "sizeof"],
	["keyword", "stackalloc"],
	["keyword", "static"],
	["keyword", "string"], ["punctuation", ";"],
	["keyword", "struct"], ["punctuation", ";"],
	["keyword", "switch"],
	["keyword", "this"],
	["keyword", "throw"],
	["keyword", "try"],
	["keyword", "typeof"],
	["keyword", "uint"],
	["keyword", "ulong"],
	["keyword", "unchecked"],
	["keyword", "unmanaged"],
	["keyword", "unsafe"],
	["keyword", "ushort"],
	["keyword", "using"],
	["keyword", "value"],
	["keyword", "var"],
	["keyword", "virtual"],
	["keyword", "void"],
	["keyword", "volatile"],
	["keyword", "when"],
	["keyword", "where"], ["punctuation", ";"],
	["keyword", "while"],
	["keyword", "yield"],

	["comment", "// very contextual keywords:"],

	["class-name", ["Person"]],
	" person2 ",
	["operator", "="],
	" person1 ",
	["keyword", "with"],
	["punctuation", "{"],
	" FirstName ",
	["operator", "="],
	["string", "\"John\""],
	["punctuation", "}"],
	["punctuation", ";"]
]

----------------------------------------------------

Checks for all keywords.
