summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--development.md3
-rw-r--r--keywords.h44
-rwxr-xr-xkeywords.py176
-rw-r--r--main.c12
-rw-r--r--syntax.c129
-rw-r--r--ted.cfg4
-rw-r--r--ted.h2
7 files changed, 357 insertions, 13 deletions
diff --git a/development.md b/development.md
index 80b7c3b..7ad5b7d 100644
--- a/development.md
+++ b/development.md
@@ -79,6 +79,9 @@ Update `syntax_register_builtin_languages` accordingly.
Make sure to define `comment-start` and `comment-end`
for the language in `ted.cfg`.
+You will probably want to update `keywords.py` when implementing
+syntax highlighting.
+
### Syntax highlighting
Obviously we don't want to re-highlight the whole file every time a change is made.
diff --git a/keywords.h b/keywords.h
index 82bab7e..0e60d29 100644
--- a/keywords.h
+++ b/keywords.h
@@ -27,7 +27,7 @@ static const Keyword syntax_keywords_c_S[121] = {{"SCHAR_MAX", SYNTAX_CONSTANT},
static const Keyword syntax_keywords_c_T[4] = {{"TIME_UTC", SYNTAX_CONSTANT},{"TMP_MAX", SYNTAX_CONSTANT},{"TMP_MAX_S", SYNTAX_CONSTANT},{"TSS_DTOR_ITERATIONS", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_c_U[19] = {{"UCHAR_MAX", SYNTAX_CONSTANT},{"UINT16_MAX", SYNTAX_CONSTANT},{"UINT32_MAX", SYNTAX_CONSTANT},{"UINT64_MAX", SYNTAX_CONSTANT},{"UINT8_MAX", SYNTAX_CONSTANT},{"UINTMAX_MAX", SYNTAX_CONSTANT},{"UINTPTR_MAX", SYNTAX_CONSTANT},{"UINT_FAST16_MAX", SYNTAX_CONSTANT},{"UINT_FAST32_MAX", SYNTAX_CONSTANT},{"UINT_FAST64_MAX", SYNTAX_CONSTANT},{"UINT_FAST8_MAX", SYNTAX_CONSTANT},{"UINT_LEAST16_MAX", SYNTAX_CONSTANT},{"UINT_LEAST32_MAX", SYNTAX_CONSTANT},{"UINT_LEAST64_MAX", SYNTAX_CONSTANT},{"UINT_LEAST8_MAX", SYNTAX_CONSTANT},{"UINT_MAX", SYNTAX_CONSTANT},{"ULLONG_MAX", SYNTAX_CONSTANT},{"ULONG_MAX", SYNTAX_CONSTANT},{"USHRT_MAX", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_c_W[5] = {{"WCHAR_MAX", SYNTAX_CONSTANT},{"WCHAR_MIN", SYNTAX_CONSTANT},{"WEOF", SYNTAX_CONSTANT},{"WINT_MAX", SYNTAX_CONSTANT},{"WINT_MIN", SYNTAX_CONSTANT}};
-static const Keyword syntax_keywords_c__[13] = {{"_Alignas", SYNTAX_KEYWORD},{"_Alignof", SYNTAX_KEYWORD},{"_Atomic", SYNTAX_KEYWORD},{"_Bool", SYNTAX_KEYWORD},{"_Complex", SYNTAX_KEYWORD},{"_Generic", SYNTAX_KEYWORD},{"_IOFBF", SYNTAX_CONSTANT},{"_IOLBF", SYNTAX_CONSTANT},{"_IONBF", SYNTAX_CONSTANT},{"_Imaginary", SYNTAX_KEYWORD},{"_Noreturn", SYNTAX_KEYWORD},{"_Static_assert", SYNTAX_KEYWORD},{"_Thread_local", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_c_x5f[13] = {{"_Alignas", SYNTAX_KEYWORD},{"_Alignof", SYNTAX_KEYWORD},{"_Atomic", SYNTAX_KEYWORD},{"_Bool", SYNTAX_KEYWORD},{"_Complex", SYNTAX_KEYWORD},{"_Generic", SYNTAX_KEYWORD},{"_IOFBF", SYNTAX_CONSTANT},{"_IOLBF", SYNTAX_CONSTANT},{"_IONBF", SYNTAX_CONSTANT},{"_Imaginary", SYNTAX_KEYWORD},{"_Noreturn", SYNTAX_KEYWORD},{"_Static_assert", SYNTAX_KEYWORD},{"_Thread_local", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_c_a[42] = {{"alignas", SYNTAX_BUILTIN},{"alignof", SYNTAX_BUILTIN},{"atomic_address", SYNTAX_BUILTIN},{"atomic_bool", SYNTAX_BUILTIN},{"atomic_char", SYNTAX_BUILTIN},{"atomic_char16_t", SYNTAX_BUILTIN},{"atomic_char32_t", SYNTAX_BUILTIN},{"atomic_flag", SYNTAX_BUILTIN},{"atomic_int", SYNTAX_BUILTIN},{"atomic_int_fast16_t", SYNTAX_BUILTIN},{"atomic_int_fast32_t", SYNTAX_BUILTIN},{"atomic_int_fast64_t", SYNTAX_BUILTIN},{"atomic_int_fast8_t", SYNTAX_BUILTIN},{"atomic_int_least16_t", SYNTAX_BUILTIN},{"atomic_int_least32_t", SYNTAX_BUILTIN},{"atomic_int_least64_t", SYNTAX_BUILTIN},{"atomic_int_least8_t", SYNTAX_BUILTIN},{"atomic_intmax_t", SYNTAX_BUILTIN},{"atomic_intptr_t", SYNTAX_BUILTIN},{"atomic_llong", SYNTAX_BUILTIN},{"atomic_long", SYNTAX_BUILTIN},{"atomic_ptrdiff_t", SYNTAX_BUILTIN},{"atomic_schar", SYNTAX_BUILTIN},{"atomic_short", SYNTAX_BUILTIN},{"atomic_size_t", SYNTAX_BUILTIN},{"atomic_uchar", SYNTAX_BUILTIN},{"atomic_uint", SYNTAX_BUILTIN},{"atomic_uint_fast16_t", SYNTAX_BUILTIN},{"atomic_uint_fast32_t", SYNTAX_BUILTIN},{"atomic_uint_fast64_t", SYNTAX_BUILTIN},{"atomic_uint_fast8_t", SYNTAX_BUILTIN},{"atomic_uint_least16_t", SYNTAX_BUILTIN},{"atomic_uint_least32_t", SYNTAX_BUILTIN},{"atomic_uint_least64_t", SYNTAX_BUILTIN},{"atomic_uint_least8_t", SYNTAX_BUILTIN},{"atomic_uintmax_t", SYNTAX_BUILTIN},{"atomic_uintptr_t", SYNTAX_BUILTIN},{"atomic_ullong", SYNTAX_BUILTIN},{"atomic_ulong", SYNTAX_BUILTIN},{"atomic_ushort", SYNTAX_BUILTIN},{"atomic_wchar_t", SYNTAX_BUILTIN},{"auto", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_c_b[2] = {{"bool", SYNTAX_BUILTIN},{"break", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_c_c[11] = {{"case", SYNTAX_KEYWORD},{"char", SYNTAX_KEYWORD},{"char16_t", SYNTAX_BUILTIN},{"char32_t", SYNTAX_BUILTIN},{"char8_t", SYNTAX_BUILTIN},{"clock_t", SYNTAX_BUILTIN},{"cnd_t", SYNTAX_BUILTIN},{"complex", SYNTAX_BUILTIN},{"const", SYNTAX_KEYWORD},{"constraint_handler_t", SYNTAX_BUILTIN},{"continue", SYNTAX_KEYWORD}};
@@ -50,7 +50,7 @@ static const Keyword syntax_keywords_c_v[3] = {{"va_list", SYNTAX_BUILTIN},{"voi
static const Keyword syntax_keywords_c_w[5] = {{"wchar_t", SYNTAX_BUILTIN},{"wctrans_t", SYNTAX_BUILTIN},{"wctype_t", SYNTAX_BUILTIN},{"while", SYNTAX_KEYWORD},{"wint_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_c_x[1] = {{"xtime", SYNTAX_BUILTIN}};
static const KeywordList syntax_all_keywords_c[128] = {
- ['A'] = {syntax_keywords_c_A, arr_count(syntax_keywords_c_A)}, ['B'] = {syntax_keywords_c_B, arr_count(syntax_keywords_c_B)}, ['C'] = {syntax_keywords_c_C, arr_count(syntax_keywords_c_C)}, ['D'] = {syntax_keywords_c_D, arr_count(syntax_keywords_c_D)}, ['E'] = {syntax_keywords_c_E, arr_count(syntax_keywords_c_E)}, ['F'] = {syntax_keywords_c_F, arr_count(syntax_keywords_c_F)}, ['H'] = {syntax_keywords_c_H, arr_count(syntax_keywords_c_H)}, ['I'] = {syntax_keywords_c_I, arr_count(syntax_keywords_c_I)}, ['L'] = {syntax_keywords_c_L, arr_count(syntax_keywords_c_L)}, ['M'] = {syntax_keywords_c_M, arr_count(syntax_keywords_c_M)}, ['N'] = {syntax_keywords_c_N, arr_count(syntax_keywords_c_N)}, ['O'] = {syntax_keywords_c_O, arr_count(syntax_keywords_c_O)}, ['P'] = {syntax_keywords_c_P, arr_count(syntax_keywords_c_P)}, ['R'] = {syntax_keywords_c_R, arr_count(syntax_keywords_c_R)}, ['S'] = {syntax_keywords_c_S, arr_count(syntax_keywords_c_S)}, ['T'] = {syntax_keywords_c_T, arr_count(syntax_keywords_c_T)}, ['U'] = {syntax_keywords_c_U, arr_count(syntax_keywords_c_U)}, ['W'] = {syntax_keywords_c_W, arr_count(syntax_keywords_c_W)}, ['_'] = {syntax_keywords_c__, arr_count(syntax_keywords_c__)}, ['a'] = {syntax_keywords_c_a, arr_count(syntax_keywords_c_a)}, ['b'] = {syntax_keywords_c_b, arr_count(syntax_keywords_c_b)}, ['c'] = {syntax_keywords_c_c, arr_count(syntax_keywords_c_c)}, ['d'] = {syntax_keywords_c_d, arr_count(syntax_keywords_c_d)}, ['e'] = {syntax_keywords_c_e, arr_count(syntax_keywords_c_e)}, ['f'] = {syntax_keywords_c_f, arr_count(syntax_keywords_c_f)}, ['g'] = {syntax_keywords_c_g, arr_count(syntax_keywords_c_g)}, ['i'] = {syntax_keywords_c_i, arr_count(syntax_keywords_c_i)}, ['j'] = {syntax_keywords_c_j, arr_count(syntax_keywords_c_j)}, ['l'] = {syntax_keywords_c_l, arr_count(syntax_keywords_c_l)}, ['m'] = {syntax_keywords_c_m, arr_count(syntax_keywords_c_m)}, ['n'] = {syntax_keywords_c_n, arr_count(syntax_keywords_c_n)}, ['o'] = {syntax_keywords_c_o, arr_count(syntax_keywords_c_o)}, ['p'] = {syntax_keywords_c_p, arr_count(syntax_keywords_c_p)}, ['r'] = {syntax_keywords_c_r, arr_count(syntax_keywords_c_r)}, ['s'] = {syntax_keywords_c_s, arr_count(syntax_keywords_c_s)}, ['t'] = {syntax_keywords_c_t, arr_count(syntax_keywords_c_t)}, ['u'] = {syntax_keywords_c_u, arr_count(syntax_keywords_c_u)}, ['v'] = {syntax_keywords_c_v, arr_count(syntax_keywords_c_v)}, ['w'] = {syntax_keywords_c_w, arr_count(syntax_keywords_c_w)}, ['x'] = {syntax_keywords_c_x, arr_count(syntax_keywords_c_x)}
+ ['A'] = {syntax_keywords_c_A, arr_count(syntax_keywords_c_A)}, ['B'] = {syntax_keywords_c_B, arr_count(syntax_keywords_c_B)}, ['C'] = {syntax_keywords_c_C, arr_count(syntax_keywords_c_C)}, ['D'] = {syntax_keywords_c_D, arr_count(syntax_keywords_c_D)}, ['E'] = {syntax_keywords_c_E, arr_count(syntax_keywords_c_E)}, ['F'] = {syntax_keywords_c_F, arr_count(syntax_keywords_c_F)}, ['H'] = {syntax_keywords_c_H, arr_count(syntax_keywords_c_H)}, ['I'] = {syntax_keywords_c_I, arr_count(syntax_keywords_c_I)}, ['L'] = {syntax_keywords_c_L, arr_count(syntax_keywords_c_L)}, ['M'] = {syntax_keywords_c_M, arr_count(syntax_keywords_c_M)}, ['N'] = {syntax_keywords_c_N, arr_count(syntax_keywords_c_N)}, ['O'] = {syntax_keywords_c_O, arr_count(syntax_keywords_c_O)}, ['P'] = {syntax_keywords_c_P, arr_count(syntax_keywords_c_P)}, ['R'] = {syntax_keywords_c_R, arr_count(syntax_keywords_c_R)}, ['S'] = {syntax_keywords_c_S, arr_count(syntax_keywords_c_S)}, ['T'] = {syntax_keywords_c_T, arr_count(syntax_keywords_c_T)}, ['U'] = {syntax_keywords_c_U, arr_count(syntax_keywords_c_U)}, ['W'] = {syntax_keywords_c_W, arr_count(syntax_keywords_c_W)}, ['_'] = {syntax_keywords_c_x5f, arr_count(syntax_keywords_c_x5f)}, ['a'] = {syntax_keywords_c_a, arr_count(syntax_keywords_c_a)}, ['b'] = {syntax_keywords_c_b, arr_count(syntax_keywords_c_b)}, ['c'] = {syntax_keywords_c_c, arr_count(syntax_keywords_c_c)}, ['d'] = {syntax_keywords_c_d, arr_count(syntax_keywords_c_d)}, ['e'] = {syntax_keywords_c_e, arr_count(syntax_keywords_c_e)}, ['f'] = {syntax_keywords_c_f, arr_count(syntax_keywords_c_f)}, ['g'] = {syntax_keywords_c_g, arr_count(syntax_keywords_c_g)}, ['i'] = {syntax_keywords_c_i, arr_count(syntax_keywords_c_i)}, ['j'] = {syntax_keywords_c_j, arr_count(syntax_keywords_c_j)}, ['l'] = {syntax_keywords_c_l, arr_count(syntax_keywords_c_l)}, ['m'] = {syntax_keywords_c_m, arr_count(syntax_keywords_c_m)}, ['n'] = {syntax_keywords_c_n, arr_count(syntax_keywords_c_n)}, ['o'] = {syntax_keywords_c_o, arr_count(syntax_keywords_c_o)}, ['p'] = {syntax_keywords_c_p, arr_count(syntax_keywords_c_p)}, ['r'] = {syntax_keywords_c_r, arr_count(syntax_keywords_c_r)}, ['s'] = {syntax_keywords_c_s, arr_count(syntax_keywords_c_s)}, ['t'] = {syntax_keywords_c_t, arr_count(syntax_keywords_c_t)}, ['u'] = {syntax_keywords_c_u, arr_count(syntax_keywords_c_u)}, ['v'] = {syntax_keywords_c_v, arr_count(syntax_keywords_c_v)}, ['w'] = {syntax_keywords_c_w, arr_count(syntax_keywords_c_w)}, ['x'] = {syntax_keywords_c_x, arr_count(syntax_keywords_c_x)}
};
static const Keyword syntax_keywords_cpp_A[10] = {{"ATOMIC_ADDRESS_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_CHAR16_T_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_CHAR32_T_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_CHAR_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_FLAG_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_INT_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_LLONG_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_LONG_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_SHORT_LOCK_FREE", SYNTAX_CONSTANT},{"ATOMIC_WCHAR_T_LOCK_FREE", SYNTAX_CONSTANT}};
@@ -71,7 +71,7 @@ static const Keyword syntax_keywords_cpp_S[121] = {{"SCHAR_MAX", SYNTAX_CONSTANT
static const Keyword syntax_keywords_cpp_T[4] = {{"TIME_UTC", SYNTAX_CONSTANT},{"TMP_MAX", SYNTAX_CONSTANT},{"TMP_MAX_S", SYNTAX_CONSTANT},{"TSS_DTOR_ITERATIONS", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_cpp_U[19] = {{"UCHAR_MAX", SYNTAX_CONSTANT},{"UINT16_MAX", SYNTAX_CONSTANT},{"UINT32_MAX", SYNTAX_CONSTANT},{"UINT64_MAX", SYNTAX_CONSTANT},{"UINT8_MAX", SYNTAX_CONSTANT},{"UINTMAX_MAX", SYNTAX_CONSTANT},{"UINTPTR_MAX", SYNTAX_CONSTANT},{"UINT_FAST16_MAX", SYNTAX_CONSTANT},{"UINT_FAST32_MAX", SYNTAX_CONSTANT},{"UINT_FAST64_MAX", SYNTAX_CONSTANT},{"UINT_FAST8_MAX", SYNTAX_CONSTANT},{"UINT_LEAST16_MAX", SYNTAX_CONSTANT},{"UINT_LEAST32_MAX", SYNTAX_CONSTANT},{"UINT_LEAST64_MAX", SYNTAX_CONSTANT},{"UINT_LEAST8_MAX", SYNTAX_CONSTANT},{"UINT_MAX", SYNTAX_CONSTANT},{"ULLONG_MAX", SYNTAX_CONSTANT},{"ULONG_MAX", SYNTAX_CONSTANT},{"USHRT_MAX", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_cpp_W[5] = {{"WCHAR_MAX", SYNTAX_CONSTANT},{"WCHAR_MIN", SYNTAX_CONSTANT},{"WEOF", SYNTAX_CONSTANT},{"WINT_MAX", SYNTAX_CONSTANT},{"WINT_MIN", SYNTAX_CONSTANT}};
-static const Keyword syntax_keywords_cpp__[13] = {{"_Alignas", SYNTAX_KEYWORD},{"_Alignof", SYNTAX_KEYWORD},{"_Atomic", SYNTAX_KEYWORD},{"_Bool", SYNTAX_KEYWORD},{"_Complex", SYNTAX_KEYWORD},{"_Generic", SYNTAX_KEYWORD},{"_IOFBF", SYNTAX_CONSTANT},{"_IOLBF", SYNTAX_CONSTANT},{"_IONBF", SYNTAX_CONSTANT},{"_Imaginary", SYNTAX_KEYWORD},{"_Noreturn", SYNTAX_KEYWORD},{"_Static_assert", SYNTAX_KEYWORD},{"_Thread_local", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_x5f[13] = {{"_Alignas", SYNTAX_KEYWORD},{"_Alignof", SYNTAX_KEYWORD},{"_Atomic", SYNTAX_KEYWORD},{"_Bool", SYNTAX_KEYWORD},{"_Complex", SYNTAX_KEYWORD},{"_Generic", SYNTAX_KEYWORD},{"_IOFBF", SYNTAX_CONSTANT},{"_IOLBF", SYNTAX_CONSTANT},{"_IONBF", SYNTAX_CONSTANT},{"_Imaginary", SYNTAX_KEYWORD},{"_Noreturn", SYNTAX_KEYWORD},{"_Static_assert", SYNTAX_KEYWORD},{"_Thread_local", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_cpp_a[48] = {{"alignas", SYNTAX_BUILTIN},{"alignof", SYNTAX_BUILTIN},{"and", SYNTAX_KEYWORD},{"and_eq", SYNTAX_KEYWORD},{"asm", SYNTAX_KEYWORD},{"atomic_address", SYNTAX_BUILTIN},{"atomic_bool", SYNTAX_BUILTIN},{"atomic_cancel", SYNTAX_KEYWORD},{"atomic_char", SYNTAX_BUILTIN},{"atomic_char16_t", SYNTAX_BUILTIN},{"atomic_char32_t", SYNTAX_BUILTIN},{"atomic_commit", SYNTAX_KEYWORD},{"atomic_flag", SYNTAX_BUILTIN},{"atomic_int", SYNTAX_BUILTIN},{"atomic_int_fast16_t", SYNTAX_BUILTIN},{"atomic_int_fast32_t", SYNTAX_BUILTIN},{"atomic_int_fast64_t", SYNTAX_BUILTIN},{"atomic_int_fast8_t", SYNTAX_BUILTIN},{"atomic_int_least16_t", SYNTAX_BUILTIN},{"atomic_int_least32_t", SYNTAX_BUILTIN},{"atomic_int_least64_t", SYNTAX_BUILTIN},{"atomic_int_least8_t", SYNTAX_BUILTIN},{"atomic_intmax_t", SYNTAX_BUILTIN},{"atomic_intptr_t", SYNTAX_BUILTIN},{"atomic_llong", SYNTAX_BUILTIN},{"atomic_long", SYNTAX_BUILTIN},{"atomic_noexcept", SYNTAX_KEYWORD},{"atomic_ptrdiff_t", SYNTAX_BUILTIN},{"atomic_schar", SYNTAX_BUILTIN},{"atomic_short", SYNTAX_BUILTIN},{"atomic_size_t", SYNTAX_BUILTIN},{"atomic_uchar", SYNTAX_BUILTIN},{"atomic_uint", SYNTAX_BUILTIN},{"atomic_uint_fast16_t", SYNTAX_BUILTIN},{"atomic_uint_fast32_t", SYNTAX_BUILTIN},{"atomic_uint_fast64_t", SYNTAX_BUILTIN},{"atomic_uint_fast8_t", SYNTAX_BUILTIN},{"atomic_uint_least16_t", SYNTAX_BUILTIN},{"atomic_uint_least32_t", SYNTAX_BUILTIN},{"atomic_uint_least64_t", SYNTAX_BUILTIN},{"atomic_uint_least8_t", SYNTAX_BUILTIN},{"atomic_uintmax_t", SYNTAX_BUILTIN},{"atomic_uintptr_t", SYNTAX_BUILTIN},{"atomic_ullong", SYNTAX_BUILTIN},{"atomic_ulong", SYNTAX_BUILTIN},{"atomic_ushort", SYNTAX_BUILTIN},{"atomic_wchar_t", SYNTAX_BUILTIN},{"auto", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_cpp_b[4] = {{"bitand", SYNTAX_KEYWORD},{"bitor", SYNTAX_KEYWORD},{"bool", SYNTAX_KEYWORD},{"break", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_cpp_c[22] = {{"case", SYNTAX_KEYWORD},{"catch", SYNTAX_KEYWORD},{"char", SYNTAX_KEYWORD},{"char16_t", SYNTAX_BUILTIN},{"char32_t", SYNTAX_BUILTIN},{"char8_t", SYNTAX_BUILTIN},{"class", SYNTAX_KEYWORD},{"clock_t", SYNTAX_BUILTIN},{"cnd_t", SYNTAX_BUILTIN},{"co_await", SYNTAX_KEYWORD},{"co_return", SYNTAX_KEYWORD},{"co_yield", SYNTAX_KEYWORD},{"compl", SYNTAX_KEYWORD},{"complex", SYNTAX_BUILTIN},{"concept", SYNTAX_KEYWORD},{"const", SYNTAX_KEYWORD},{"const_cast", SYNTAX_KEYWORD},{"consteval", SYNTAX_KEYWORD},{"constexpr", SYNTAX_KEYWORD},{"constinit", SYNTAX_KEYWORD},{"constraint_handler_t", SYNTAX_BUILTIN},{"continue", SYNTAX_KEYWORD}};
@@ -94,7 +94,7 @@ static const Keyword syntax_keywords_cpp_v[4] = {{"va_list", SYNTAX_BUILTIN},{"v
static const Keyword syntax_keywords_cpp_w[5] = {{"wchar_t", SYNTAX_KEYWORD},{"wctrans_t", SYNTAX_BUILTIN},{"wctype_t", SYNTAX_BUILTIN},{"while", SYNTAX_KEYWORD},{"wint_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_cpp_x[3] = {{"xor", SYNTAX_KEYWORD},{"xor_eq", SYNTAX_KEYWORD},{"xtime", SYNTAX_BUILTIN}};
static const KeywordList syntax_all_keywords_cpp[128] = {
- ['A'] = {syntax_keywords_cpp_A, arr_count(syntax_keywords_cpp_A)}, ['B'] = {syntax_keywords_cpp_B, arr_count(syntax_keywords_cpp_B)}, ['C'] = {syntax_keywords_cpp_C, arr_count(syntax_keywords_cpp_C)}, ['D'] = {syntax_keywords_cpp_D, arr_count(syntax_keywords_cpp_D)}, ['E'] = {syntax_keywords_cpp_E, arr_count(syntax_keywords_cpp_E)}, ['F'] = {syntax_keywords_cpp_F, arr_count(syntax_keywords_cpp_F)}, ['H'] = {syntax_keywords_cpp_H, arr_count(syntax_keywords_cpp_H)}, ['I'] = {syntax_keywords_cpp_I, arr_count(syntax_keywords_cpp_I)}, ['L'] = {syntax_keywords_cpp_L, arr_count(syntax_keywords_cpp_L)}, ['M'] = {syntax_keywords_cpp_M, arr_count(syntax_keywords_cpp_M)}, ['N'] = {syntax_keywords_cpp_N, arr_count(syntax_keywords_cpp_N)}, ['O'] = {syntax_keywords_cpp_O, arr_count(syntax_keywords_cpp_O)}, ['P'] = {syntax_keywords_cpp_P, arr_count(syntax_keywords_cpp_P)}, ['R'] = {syntax_keywords_cpp_R, arr_count(syntax_keywords_cpp_R)}, ['S'] = {syntax_keywords_cpp_S, arr_count(syntax_keywords_cpp_S)}, ['T'] = {syntax_keywords_cpp_T, arr_count(syntax_keywords_cpp_T)}, ['U'] = {syntax_keywords_cpp_U, arr_count(syntax_keywords_cpp_U)}, ['W'] = {syntax_keywords_cpp_W, arr_count(syntax_keywords_cpp_W)}, ['_'] = {syntax_keywords_cpp__, arr_count(syntax_keywords_cpp__)}, ['a'] = {syntax_keywords_cpp_a, arr_count(syntax_keywords_cpp_a)}, ['b'] = {syntax_keywords_cpp_b, arr_count(syntax_keywords_cpp_b)}, ['c'] = {syntax_keywords_cpp_c, arr_count(syntax_keywords_cpp_c)}, ['d'] = {syntax_keywords_cpp_d, arr_count(syntax_keywords_cpp_d)}, ['e'] = {syntax_keywords_cpp_e, arr_count(syntax_keywords_cpp_e)}, ['f'] = {syntax_keywords_cpp_f, arr_count(syntax_keywords_cpp_f)}, ['g'] = {syntax_keywords_cpp_g, arr_count(syntax_keywords_cpp_g)}, ['i'] = {syntax_keywords_cpp_i, arr_count(syntax_keywords_cpp_i)}, ['j'] = {syntax_keywords_cpp_j, arr_count(syntax_keywords_cpp_j)}, ['l'] = {syntax_keywords_cpp_l, arr_count(syntax_keywords_cpp_l)}, ['m'] = {syntax_keywords_cpp_m, arr_count(syntax_keywords_cpp_m)}, ['n'] = {syntax_keywords_cpp_n, arr_count(syntax_keywords_cpp_n)}, ['o'] = {syntax_keywords_cpp_o, arr_count(syntax_keywords_cpp_o)}, ['p'] = {syntax_keywords_cpp_p, arr_count(syntax_keywords_cpp_p)}, ['r'] = {syntax_keywords_cpp_r, arr_count(syntax_keywords_cpp_r)}, ['s'] = {syntax_keywords_cpp_s, arr_count(syntax_keywords_cpp_s)}, ['t'] = {syntax_keywords_cpp_t, arr_count(syntax_keywords_cpp_t)}, ['u'] = {syntax_keywords_cpp_u, arr_count(syntax_keywords_cpp_u)}, ['v'] = {syntax_keywords_cpp_v, arr_count(syntax_keywords_cpp_v)}, ['w'] = {syntax_keywords_cpp_w, arr_count(syntax_keywords_cpp_w)}, ['x'] = {syntax_keywords_cpp_x, arr_count(syntax_keywords_cpp_x)}
+ ['A'] = {syntax_keywords_cpp_A, arr_count(syntax_keywords_cpp_A)}, ['B'] = {syntax_keywords_cpp_B, arr_count(syntax_keywords_cpp_B)}, ['C'] = {syntax_keywords_cpp_C, arr_count(syntax_keywords_cpp_C)}, ['D'] = {syntax_keywords_cpp_D, arr_count(syntax_keywords_cpp_D)}, ['E'] = {syntax_keywords_cpp_E, arr_count(syntax_keywords_cpp_E)}, ['F'] = {syntax_keywords_cpp_F, arr_count(syntax_keywords_cpp_F)}, ['H'] = {syntax_keywords_cpp_H, arr_count(syntax_keywords_cpp_H)}, ['I'] = {syntax_keywords_cpp_I, arr_count(syntax_keywords_cpp_I)}, ['L'] = {syntax_keywords_cpp_L, arr_count(syntax_keywords_cpp_L)}, ['M'] = {syntax_keywords_cpp_M, arr_count(syntax_keywords_cpp_M)}, ['N'] = {syntax_keywords_cpp_N, arr_count(syntax_keywords_cpp_N)}, ['O'] = {syntax_keywords_cpp_O, arr_count(syntax_keywords_cpp_O)}, ['P'] = {syntax_keywords_cpp_P, arr_count(syntax_keywords_cpp_P)}, ['R'] = {syntax_keywords_cpp_R, arr_count(syntax_keywords_cpp_R)}, ['S'] = {syntax_keywords_cpp_S, arr_count(syntax_keywords_cpp_S)}, ['T'] = {syntax_keywords_cpp_T, arr_count(syntax_keywords_cpp_T)}, ['U'] = {syntax_keywords_cpp_U, arr_count(syntax_keywords_cpp_U)}, ['W'] = {syntax_keywords_cpp_W, arr_count(syntax_keywords_cpp_W)}, ['_'] = {syntax_keywords_cpp_x5f, arr_count(syntax_keywords_cpp_x5f)}, ['a'] = {syntax_keywords_cpp_a, arr_count(syntax_keywords_cpp_a)}, ['b'] = {syntax_keywords_cpp_b, arr_count(syntax_keywords_cpp_b)}, ['c'] = {syntax_keywords_cpp_c, arr_count(syntax_keywords_cpp_c)}, ['d'] = {syntax_keywords_cpp_d, arr_count(syntax_keywords_cpp_d)}, ['e'] = {syntax_keywords_cpp_e, arr_count(syntax_keywords_cpp_e)}, ['f'] = {syntax_keywords_cpp_f, arr_count(syntax_keywords_cpp_f)}, ['g'] = {syntax_keywords_cpp_g, arr_count(syntax_keywords_cpp_g)}, ['i'] = {syntax_keywords_cpp_i, arr_count(syntax_keywords_cpp_i)}, ['j'] = {syntax_keywords_cpp_j, arr_count(syntax_keywords_cpp_j)}, ['l'] = {syntax_keywords_cpp_l, arr_count(syntax_keywords_cpp_l)}, ['m'] = {syntax_keywords_cpp_m, arr_count(syntax_keywords_cpp_m)}, ['n'] = {syntax_keywords_cpp_n, arr_count(syntax_keywords_cpp_n)}, ['o'] = {syntax_keywords_cpp_o, arr_count(syntax_keywords_cpp_o)}, ['p'] = {syntax_keywords_cpp_p, arr_count(syntax_keywords_cpp_p)}, ['r'] = {syntax_keywords_cpp_r, arr_count(syntax_keywords_cpp_r)}, ['s'] = {syntax_keywords_cpp_s, arr_count(syntax_keywords_cpp_s)}, ['t'] = {syntax_keywords_cpp_t, arr_count(syntax_keywords_cpp_t)}, ['u'] = {syntax_keywords_cpp_u, arr_count(syntax_keywords_cpp_u)}, ['v'] = {syntax_keywords_cpp_v, arr_count(syntax_keywords_cpp_v)}, ['w'] = {syntax_keywords_cpp_w, arr_count(syntax_keywords_cpp_w)}, ['x'] = {syntax_keywords_cpp_x, arr_count(syntax_keywords_cpp_x)}
};
static const Keyword syntax_keywords_rust_A[2] = {{"AsMut", SYNTAX_BUILTIN},{"AsRef", SYNTAX_BUILTIN}};
@@ -283,7 +283,7 @@ static const Keyword syntax_keywords_python_U[7] = {{"UnboundLocalError", SYNTAX
static const Keyword syntax_keywords_python_V[1] = {{"ValueError", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_python_W[2] = {{"Warning", SYNTAX_BUILTIN},{"WindowsError", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_python_Z[1] = {{"ZeroDivisionError", SYNTAX_BUILTIN}};
-static const Keyword syntax_keywords_python__[8] = {{"__build_class__", SYNTAX_BUILTIN},{"__debug__", SYNTAX_BUILTIN},{"__doc__", SYNTAX_BUILTIN},{"__import__", SYNTAX_BUILTIN},{"__loader__", SYNTAX_BUILTIN},{"__name__", SYNTAX_BUILTIN},{"__package__", SYNTAX_BUILTIN},{"__spec__", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_python_x5f[8] = {{"__build_class__", SYNTAX_BUILTIN},{"__debug__", SYNTAX_BUILTIN},{"__doc__", SYNTAX_BUILTIN},{"__import__", SYNTAX_BUILTIN},{"__loader__", SYNTAX_BUILTIN},{"__name__", SYNTAX_BUILTIN},{"__package__", SYNTAX_BUILTIN},{"__spec__", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_python_a[9] = {{"abs", SYNTAX_BUILTIN},{"all", SYNTAX_BUILTIN},{"and", SYNTAX_KEYWORD},{"any", SYNTAX_BUILTIN},{"as", SYNTAX_KEYWORD},{"ascii", SYNTAX_BUILTIN},{"assert", SYNTAX_KEYWORD},{"async", SYNTAX_KEYWORD},{"await", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_python_b[6] = {{"bin", SYNTAX_BUILTIN},{"bool", SYNTAX_BUILTIN},{"break", SYNTAX_KEYWORD},{"breakpoint", SYNTAX_BUILTIN},{"bytearray", SYNTAX_BUILTIN},{"bytes", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_python_c[9] = {{"callable", SYNTAX_BUILTIN},{"chr", SYNTAX_BUILTIN},{"class", SYNTAX_KEYWORD},{"classmethod", SYNTAX_BUILTIN},{"compile", SYNTAX_BUILTIN},{"complex", SYNTAX_BUILTIN},{"continue", SYNTAX_KEYWORD},{"copyright", SYNTAX_BUILTIN},{"credits", SYNTAX_BUILTIN}};
@@ -307,7 +307,7 @@ static const Keyword syntax_keywords_python_w[2] = {{"while", SYNTAX_KEYWORD},{"
static const Keyword syntax_keywords_python_y[1] = {{"yield", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_python_z[1] = {{"zip", SYNTAX_BUILTIN}};
static const KeywordList syntax_all_keywords_python[128] = {
- ['A'] = {syntax_keywords_python_A, arr_count(syntax_keywords_python_A)}, ['B'] = {syntax_keywords_python_B, arr_count(syntax_keywords_python_B)}, ['C'] = {syntax_keywords_python_C, arr_count(syntax_keywords_python_C)}, ['D'] = {syntax_keywords_python_D, arr_count(syntax_keywords_python_D)}, ['E'] = {syntax_keywords_python_E, arr_count(syntax_keywords_python_E)}, ['F'] = {syntax_keywords_python_F, arr_count(syntax_keywords_python_F)}, ['G'] = {syntax_keywords_python_G, arr_count(syntax_keywords_python_G)}, ['I'] = {syntax_keywords_python_I, arr_count(syntax_keywords_python_I)}, ['K'] = {syntax_keywords_python_K, arr_count(syntax_keywords_python_K)}, ['L'] = {syntax_keywords_python_L, arr_count(syntax_keywords_python_L)}, ['M'] = {syntax_keywords_python_M, arr_count(syntax_keywords_python_M)}, ['N'] = {syntax_keywords_python_N, arr_count(syntax_keywords_python_N)}, ['O'] = {syntax_keywords_python_O, arr_count(syntax_keywords_python_O)}, ['P'] = {syntax_keywords_python_P, arr_count(syntax_keywords_python_P)}, ['R'] = {syntax_keywords_python_R, arr_count(syntax_keywords_python_R)}, ['S'] = {syntax_keywords_python_S, arr_count(syntax_keywords_python_S)}, ['T'] = {syntax_keywords_python_T, arr_count(syntax_keywords_python_T)}, ['U'] = {syntax_keywords_python_U, arr_count(syntax_keywords_python_U)}, ['V'] = {syntax_keywords_python_V, arr_count(syntax_keywords_python_V)}, ['W'] = {syntax_keywords_python_W, arr_count(syntax_keywords_python_W)}, ['Z'] = {syntax_keywords_python_Z, arr_count(syntax_keywords_python_Z)}, ['_'] = {syntax_keywords_python__, arr_count(syntax_keywords_python__)}, ['a'] = {syntax_keywords_python_a, arr_count(syntax_keywords_python_a)}, ['b'] = {syntax_keywords_python_b, arr_count(syntax_keywords_python_b)}, ['c'] = {syntax_keywords_python_c, arr_count(syntax_keywords_python_c)}, ['d'] = {syntax_keywords_python_d, arr_count(syntax_keywords_python_d)}, ['e'] = {syntax_keywords_python_e, arr_count(syntax_keywords_python_e)}, ['f'] = {syntax_keywords_python_f, arr_count(syntax_keywords_python_f)}, ['g'] = {syntax_keywords_python_g, arr_count(syntax_keywords_python_g)}, ['h'] = {syntax_keywords_python_h, arr_count(syntax_keywords_python_h)}, ['i'] = {syntax_keywords_python_i, arr_count(syntax_keywords_python_i)}, ['l'] = {syntax_keywords_python_l, arr_count(syntax_keywords_python_l)}, ['m'] = {syntax_keywords_python_m, arr_count(syntax_keywords_python_m)}, ['n'] = {syntax_keywords_python_n, arr_count(syntax_keywords_python_n)}, ['o'] = {syntax_keywords_python_o, arr_count(syntax_keywords_python_o)}, ['p'] = {syntax_keywords_python_p, arr_count(syntax_keywords_python_p)}, ['q'] = {syntax_keywords_python_q, arr_count(syntax_keywords_python_q)}, ['r'] = {syntax_keywords_python_r, arr_count(syntax_keywords_python_r)}, ['s'] = {syntax_keywords_python_s, arr_count(syntax_keywords_python_s)}, ['t'] = {syntax_keywords_python_t, arr_count(syntax_keywords_python_t)}, ['v'] = {syntax_keywords_python_v, arr_count(syntax_keywords_python_v)}, ['w'] = {syntax_keywords_python_w, arr_count(syntax_keywords_python_w)}, ['y'] = {syntax_keywords_python_y, arr_count(syntax_keywords_python_y)}, ['z'] = {syntax_keywords_python_z, arr_count(syntax_keywords_python_z)}
+ ['A'] = {syntax_keywords_python_A, arr_count(syntax_keywords_python_A)}, ['B'] = {syntax_keywords_python_B, arr_count(syntax_keywords_python_B)}, ['C'] = {syntax_keywords_python_C, arr_count(syntax_keywords_python_C)}, ['D'] = {syntax_keywords_python_D, arr_count(syntax_keywords_python_D)}, ['E'] = {syntax_keywords_python_E, arr_count(syntax_keywords_python_E)}, ['F'] = {syntax_keywords_python_F, arr_count(syntax_keywords_python_F)}, ['G'] = {syntax_keywords_python_G, arr_count(syntax_keywords_python_G)}, ['I'] = {syntax_keywords_python_I, arr_count(syntax_keywords_python_I)}, ['K'] = {syntax_keywords_python_K, arr_count(syntax_keywords_python_K)}, ['L'] = {syntax_keywords_python_L, arr_count(syntax_keywords_python_L)}, ['M'] = {syntax_keywords_python_M, arr_count(syntax_keywords_python_M)}, ['N'] = {syntax_keywords_python_N, arr_count(syntax_keywords_python_N)}, ['O'] = {syntax_keywords_python_O, arr_count(syntax_keywords_python_O)}, ['P'] = {syntax_keywords_python_P, arr_count(syntax_keywords_python_P)}, ['R'] = {syntax_keywords_python_R, arr_count(syntax_keywords_python_R)}, ['S'] = {syntax_keywords_python_S, arr_count(syntax_keywords_python_S)}, ['T'] = {syntax_keywords_python_T, arr_count(syntax_keywords_python_T)}, ['U'] = {syntax_keywords_python_U, arr_count(syntax_keywords_python_U)}, ['V'] = {syntax_keywords_python_V, arr_count(syntax_keywords_python_V)}, ['W'] = {syntax_keywords_python_W, arr_count(syntax_keywords_python_W)}, ['Z'] = {syntax_keywords_python_Z, arr_count(syntax_keywords_python_Z)}, ['_'] = {syntax_keywords_python_x5f, arr_count(syntax_keywords_python_x5f)}, ['a'] = {syntax_keywords_python_a, arr_count(syntax_keywords_python_a)}, ['b'] = {syntax_keywords_python_b, arr_count(syntax_keywords_python_b)}, ['c'] = {syntax_keywords_python_c, arr_count(syntax_keywords_python_c)}, ['d'] = {syntax_keywords_python_d, arr_count(syntax_keywords_python_d)}, ['e'] = {syntax_keywords_python_e, arr_count(syntax_keywords_python_e)}, ['f'] = {syntax_keywords_python_f, arr_count(syntax_keywords_python_f)}, ['g'] = {syntax_keywords_python_g, arr_count(syntax_keywords_python_g)}, ['h'] = {syntax_keywords_python_h, arr_count(syntax_keywords_python_h)}, ['i'] = {syntax_keywords_python_i, arr_count(syntax_keywords_python_i)}, ['l'] = {syntax_keywords_python_l, arr_count(syntax_keywords_python_l)}, ['m'] = {syntax_keywords_python_m, arr_count(syntax_keywords_python_m)}, ['n'] = {syntax_keywords_python_n, arr_count(syntax_keywords_python_n)}, ['o'] = {syntax_keywords_python_o, arr_count(syntax_keywords_python_o)}, ['p'] = {syntax_keywords_python_p, arr_count(syntax_keywords_python_p)}, ['q'] = {syntax_keywords_python_q, arr_count(syntax_keywords_python_q)}, ['r'] = {syntax_keywords_python_r, arr_count(syntax_keywords_python_r)}, ['s'] = {syntax_keywords_python_s, arr_count(syntax_keywords_python_s)}, ['t'] = {syntax_keywords_python_t, arr_count(syntax_keywords_python_t)}, ['v'] = {syntax_keywords_python_v, arr_count(syntax_keywords_python_v)}, ['w'] = {syntax_keywords_python_w, arr_count(syntax_keywords_python_w)}, ['y'] = {syntax_keywords_python_y, arr_count(syntax_keywords_python_y)}, ['z'] = {syntax_keywords_python_z, arr_count(syntax_keywords_python_z)}
};
static const Keyword syntax_keywords_html_a[10] = {{"accept-charset=", SYNTAX_BUILTIN},{"accept=", SYNTAX_BUILTIN},{"accesskey=", SYNTAX_BUILTIN},{"action=", SYNTAX_BUILTIN},{"align=", SYNTAX_BUILTIN},{"alt=", SYNTAX_BUILTIN},{"async=", SYNTAX_BUILTIN},{"autocomplete=", SYNTAX_BUILTIN},{"autofocus=", SYNTAX_BUILTIN},{"autoplay=", SYNTAX_BUILTIN}};
@@ -368,3 +368,35 @@ static const KeywordList syntax_all_keywords_glsl[128] = {
['E'] = {syntax_keywords_glsl_E, arr_count(syntax_keywords_glsl_E)}, ['a'] = {syntax_keywords_glsl_a, arr_count(syntax_keywords_glsl_a)}, ['b'] = {syntax_keywords_glsl_b, arr_count(syntax_keywords_glsl_b)}, ['c'] = {syntax_keywords_glsl_c, arr_count(syntax_keywords_glsl_c)}, ['d'] = {syntax_keywords_glsl_d, arr_count(syntax_keywords_glsl_d)}, ['e'] = {syntax_keywords_glsl_e, arr_count(syntax_keywords_glsl_e)}, ['f'] = {syntax_keywords_glsl_f, arr_count(syntax_keywords_glsl_f)}, ['g'] = {syntax_keywords_glsl_g, arr_count(syntax_keywords_glsl_g)}, ['h'] = {syntax_keywords_glsl_h, arr_count(syntax_keywords_glsl_h)}, ['i'] = {syntax_keywords_glsl_i, arr_count(syntax_keywords_glsl_i)}, ['l'] = {syntax_keywords_glsl_l, arr_count(syntax_keywords_glsl_l)}, ['m'] = {syntax_keywords_glsl_m, arr_count(syntax_keywords_glsl_m)}, ['n'] = {syntax_keywords_glsl_n, arr_count(syntax_keywords_glsl_n)}, ['o'] = {syntax_keywords_glsl_o, arr_count(syntax_keywords_glsl_o)}, ['p'] = {syntax_keywords_glsl_p, arr_count(syntax_keywords_glsl_p)}, ['r'] = {syntax_keywords_glsl_r, arr_count(syntax_keywords_glsl_r)}, ['s'] = {syntax_keywords_glsl_s, arr_count(syntax_keywords_glsl_s)}, ['t'] = {syntax_keywords_glsl_t, arr_count(syntax_keywords_glsl_t)}, ['u'] = {syntax_keywords_glsl_u, arr_count(syntax_keywords_glsl_u)}, ['v'] = {syntax_keywords_glsl_v, arr_count(syntax_keywords_glsl_v)}, ['w'] = {syntax_keywords_glsl_w, arr_count(syntax_keywords_glsl_w)}
};
+static const Keyword syntax_keywords_css_x2d[1] = {{"-webkit-line-clamp:", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_x40[25] = {{"@annotation:", SYNTAX_BUILTIN},{"@bottom-center:", SYNTAX_BUILTIN},{"@character-variant:", SYNTAX_BUILTIN},{"@charset:", SYNTAX_BUILTIN},{"@counter-style:", SYNTAX_BUILTIN},{"@font-face:", SYNTAX_BUILTIN},{"@font-feature-values:", SYNTAX_BUILTIN},{"@historical-forms:", SYNTAX_BUILTIN},{"@import:", SYNTAX_BUILTIN},{"@keyframes:", SYNTAX_BUILTIN},{"@layer:", SYNTAX_BUILTIN},{"@left-bottom:", SYNTAX_BUILTIN},{"@media:", SYNTAX_BUILTIN},{"@namespace:", SYNTAX_BUILTIN},{"@ornaments:", SYNTAX_BUILTIN},{"@page:", SYNTAX_BUILTIN},{"@property:", SYNTAX_BUILTIN},{"@right-bottom:", SYNTAX_BUILTIN},{"@scroll-timeline:", SYNTAX_BUILTIN},{"@styleset:", SYNTAX_BUILTIN},{"@stylistic:", SYNTAX_BUILTIN},{"@supports:", SYNTAX_BUILTIN},{"@swash:", SYNTAX_BUILTIN},{"@top-center:", SYNTAX_BUILTIN},{"@viewport:", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_a[56] = {{"above", SYNTAX_CONSTANT},{"abs", SYNTAX_BUILTIN},{"absolute", SYNTAX_CONSTANT},{"accent-color:", SYNTAX_BUILTIN},{"acos", SYNTAX_BUILTIN},{"active", SYNTAX_CONSTANT},{"add", SYNTAX_CONSTANT},{"additive", SYNTAX_CONSTANT},{"additive-symbols:", SYNTAX_BUILTIN},{"after-edge", SYNTAX_CONSTANT},{"alias", SYNTAX_CONSTANT},{"aliceblue", SYNTAX_CONSTANT},{"align-content:", SYNTAX_BUILTIN},{"align-items:", SYNTAX_BUILTIN},{"align-self:", SYNTAX_BUILTIN},{"align-tracks:", SYNTAX_BUILTIN},{"all-petite-caps", SYNTAX_CONSTANT},{"all-scroll", SYNTAX_CONSTANT},{"all-small-caps", SYNTAX_CONSTANT},{"all:", SYNTAX_BUILTIN},{"alpha", SYNTAX_CONSTANT},{"alphabetic", SYNTAX_CONSTANT},{"alternate", SYNTAX_CONSTANT},{"alternate-reverse", SYNTAX_CONSTANT},{"always", SYNTAX_CONSTANT},{"animation-composition:", SYNTAX_BUILTIN},{"animation-delay:", SYNTAX_BUILTIN},{"animation-direction:", SYNTAX_BUILTIN},{"animation-duration:", SYNTAX_BUILTIN},{"animation-fill-mode:", SYNTAX_BUILTIN},{"animation-iteration-count:", SYNTAX_BUILTIN},{"animation-name:", SYNTAX_BUILTIN},{"animation-play-state:", SYNTAX_BUILTIN},{"animation-timeline:", SYNTAX_BUILTIN},{"animation-timing-function:", SYNTAX_BUILTIN},{"animation:", SYNTAX_BUILTIN},{"annotation", SYNTAX_BUILTIN},{"antialiased", SYNTAX_CONSTANT},{"antiquewhite", SYNTAX_CONSTANT},{"appearance:", SYNTAX_BUILTIN},{"aqua", SYNTAX_CONSTANT},{"aquamarine", SYNTAX_CONSTANT},{"ascent-override:", SYNTAX_BUILTIN},{"asin", SYNTAX_BUILTIN},{"aspect-ratio:", SYNTAX_BUILTIN},{"atan", SYNTAX_BUILTIN},{"atan2", SYNTAX_BUILTIN},{"attr", SYNTAX_BUILTIN},{"auto", SYNTAX_CONSTANT},{"auto-pos", SYNTAX_CONSTANT},{"available", SYNTAX_CONSTANT},{"avoid", SYNTAX_CONSTANT},{"avoid-column", SYNTAX_CONSTANT},{"avoid-page", SYNTAX_CONSTANT},{"avoid-region", SYNTAX_CONSTANT},{"azure", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_b[116] = {{"backdrop-filter:", SYNTAX_BUILTIN},{"backface-visibility:", SYNTAX_BUILTIN},{"background-attachment:", SYNTAX_BUILTIN},{"background-blend-mode:", SYNTAX_BUILTIN},{"background-clip:", SYNTAX_BUILTIN},{"background-color:", SYNTAX_BUILTIN},{"background-image:", SYNTAX_BUILTIN},{"background-origin:", SYNTAX_BUILTIN},{"background-position-x:", SYNTAX_BUILTIN},{"background-position-y:", SYNTAX_BUILTIN},{"background-position:", SYNTAX_BUILTIN},{"background-repeat:", SYNTAX_BUILTIN},{"background-size:", SYNTAX_BUILTIN},{"background:", SYNTAX_BUILTIN},{"backwards", SYNTAX_CONSTANT},{"balance", SYNTAX_CONSTANT},{"baseline", SYNTAX_CONSTANT},{"before-edge", SYNTAX_CONSTANT},{"beige", SYNTAX_CONSTANT},{"below", SYNTAX_CONSTANT},{"bevel", SYNTAX_CONSTANT},{"bidi-override", SYNTAX_CONSTANT},{"bisque", SYNTAX_CONSTANT},{"black", SYNTAX_CONSTANT},{"blanchedalmond", SYNTAX_CONSTANT},{"bleed:", SYNTAX_BUILTIN},{"blink", SYNTAX_CONSTANT},{"block", SYNTAX_CONSTANT},{"block-axis", SYNTAX_CONSTANT},{"block-end", SYNTAX_CONSTANT},{"block-overflow:", SYNTAX_BUILTIN},{"block-size:", SYNTAX_BUILTIN},{"block-start", SYNTAX_CONSTANT},{"blue", SYNTAX_CONSTANT},{"blueviolet", SYNTAX_CONSTANT},{"blur", SYNTAX_BUILTIN},{"bold", SYNTAX_CONSTANT},{"bolder", SYNTAX_CONSTANT},{"border-block-color:", SYNTAX_BUILTIN},{"border-block-end-color:", SYNTAX_BUILTIN},{"border-block-end-style:", SYNTAX_BUILTIN},{"border-block-end-width:", SYNTAX_BUILTIN},{"border-block-end:", SYNTAX_BUILTIN},{"border-block-start-color:", SYNTAX_BUILTIN},{"border-block-start-style:", SYNTAX_BUILTIN},{"border-block-start-width:", SYNTAX_BUILTIN},{"border-block-start:", SYNTAX_BUILTIN},{"border-block-style:", SYNTAX_BUILTIN},{"border-block-width:", SYNTAX_BUILTIN},{"border-block:", SYNTAX_BUILTIN},{"border-bottom-color:", SYNTAX_BUILTIN},{"border-bottom-left-radius:", SYNTAX_BUILTIN},{"border-bottom-right-radius:", SYNTAX_BUILTIN},{"border-bottom-style:", SYNTAX_BUILTIN},{"border-bottom-width:", SYNTAX_BUILTIN},{"border-bottom:", SYNTAX_BUILTIN},{"border-box", SYNTAX_CONSTANT},{"border-collapse:", SYNTAX_BUILTIN},{"border-color:", SYNTAX_BUILTIN},{"border-end-end-radius:", SYNTAX_BUILTIN},{"border-end-start-radius:", SYNTAX_BUILTIN},{"border-image-outset:", SYNTAX_BUILTIN},{"border-image-repeat:", SYNTAX_BUILTIN},{"border-image-slice:", SYNTAX_BUILTIN},{"border-image-source:", SYNTAX_BUILTIN},{"border-image-width:", SYNTAX_BUILTIN},{"border-image:", SYNTAX_BUILTIN},{"border-inline-color:", SYNTAX_BUILTIN},{"border-inline-end-color:", SYNTAX_BUILTIN},{"border-inline-end-style:", SYNTAX_BUILTIN},{"border-inline-end-width:", SYNTAX_BUILTIN},{"border-inline-end:", SYNTAX_BUILTIN},{"border-inline-start-color:", SYNTAX_BUILTIN},{"border-inline-start-style:", SYNTAX_BUILTIN},{"border-inline-start-width:", SYNTAX_BUILTIN},{"border-inline-start:", SYNTAX_BUILTIN},{"border-inline-style:", SYNTAX_BUILTIN},{"border-inline-width:", SYNTAX_BUILTIN},{"border-inline:", SYNTAX_BUILTIN},{"border-left-color:", SYNTAX_BUILTIN},{"border-left-style:", SYNTAX_BUILTIN},{"border-left-width:", SYNTAX_BUILTIN},{"border-left:", SYNTAX_BUILTIN},{"border-radius:", SYNTAX_BUILTIN},{"border-right-color:", SYNTAX_BUILTIN},{"border-right-style:", SYNTAX_BUILTIN},{"border-right-width:", SYNTAX_BUILTIN},{"border-right:", SYNTAX_BUILTIN},{"border-spacing:", SYNTAX_BUILTIN},{"border-start-end-radius:", SYNTAX_BUILTIN},{"border-start-start-radius:", SYNTAX_BUILTIN},{"border-style:", SYNTAX_BUILTIN},{"border-top-color:", SYNTAX_BUILTIN},{"border-top-left-radius:", SYNTAX_BUILTIN},{"border-top-right-radius:", SYNTAX_BUILTIN},{"border-top-style:", SYNTAX_BUILTIN},{"border-top-width:", SYNTAX_BUILTIN},{"border-top:", SYNTAX_BUILTIN},{"border-width:", SYNTAX_BUILTIN},{"border:", SYNTAX_BUILTIN},{"both", SYNTAX_CONSTANT},{"bottom", SYNTAX_CONSTANT},{"bottom-outside", SYNTAX_CONSTANT},{"box-decoration-break:", SYNTAX_BUILTIN},{"box-shadow:", SYNTAX_BUILTIN},{"box-sizing:", SYNTAX_BUILTIN},{"break-after:", SYNTAX_BUILTIN},{"break-all", SYNTAX_CONSTANT},{"break-before:", SYNTAX_BUILTIN},{"break-inside:", SYNTAX_BUILTIN},{"break-word", SYNTAX_CONSTANT},{"brightness", SYNTAX_BUILTIN},{"brown", SYNTAX_CONSTANT},{"bullets", SYNTAX_CONSTANT},{"burlywood", SYNTAX_CONSTANT},{"butt", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_c[78] = {{"cadetblue", SYNTAX_CONSTANT},{"calc", SYNTAX_BUILTIN},{"capitalize", SYNTAX_CONSTANT},{"caption", SYNTAX_CONSTANT},{"caption-side:", SYNTAX_BUILTIN},{"caret-color:", SYNTAX_BUILTIN},{"caret-shape:", SYNTAX_BUILTIN},{"caret:", SYNTAX_BUILTIN},{"cell", SYNTAX_CONSTANT},{"center", SYNTAX_CONSTANT},{"central", SYNTAX_CONSTANT},{"char", SYNTAX_CONSTANT},{"character-variant", SYNTAX_BUILTIN},{"chartreuse", SYNTAX_CONSTANT},{"chocolate", SYNTAX_CONSTANT},{"circle", SYNTAX_BUILTIN},{"clamp", SYNTAX_BUILTIN},{"clear:", SYNTAX_BUILTIN},{"clip-path:", SYNTAX_BUILTIN},{"clip:", SYNTAX_BUILTIN},{"clone", SYNTAX_CONSTANT},{"close-quote", SYNTAX_CONSTANT},{"closest-corner", SYNTAX_CONSTANT},{"closest-side", SYNTAX_CONSTANT},{"col-resize", SYNTAX_CONSTANT},{"collapse", SYNTAX_CONSTANT},{"color-burn", SYNTAX_CONSTANT},{"color-dodge", SYNTAX_CONSTANT},{"color-scheme:", SYNTAX_BUILTIN},{"color:", SYNTAX_BUILTIN},{"column", SYNTAX_CONSTANT},{"column-count:", SYNTAX_BUILTIN},{"column-fill:", SYNTAX_BUILTIN},{"column-gap:", SYNTAX_BUILTIN},{"column-reverse", SYNTAX_CONSTANT},{"column-rule-color:", SYNTAX_BUILTIN},{"column-rule-style:", SYNTAX_BUILTIN},{"column-rule-width:", SYNTAX_BUILTIN},{"column-rule:", SYNTAX_BUILTIN},{"column-span:", SYNTAX_BUILTIN},{"column-width:", SYNTAX_BUILTIN},{"columns:", SYNTAX_BUILTIN},{"common-ligatures", SYNTAX_CONSTANT},{"compact", SYNTAX_CONSTANT},{"condensed", SYNTAX_CONSTANT},{"conic-gradient", SYNTAX_BUILTIN},{"contain-intrinsic-block-size:", SYNTAX_BUILTIN},{"contain-intrinsic-height:", SYNTAX_BUILTIN},{"contain-intrinsic-inline-size:", SYNTAX_BUILTIN},{"contain-intrinsic-size:", SYNTAX_BUILTIN},{"contain-intrinsic-width:", SYNTAX_BUILTIN},{"contain:", SYNTAX_BUILTIN},{"content-box", SYNTAX_CONSTANT},{"content-visibility:", SYNTAX_BUILTIN},{"content:", SYNTAX_BUILTIN},{"contents", SYNTAX_CONSTANT},{"context-menu", SYNTAX_CONSTANT},{"contextual", SYNTAX_CONSTANT},{"contrast", SYNTAX_BUILTIN},{"copy", SYNTAX_CONSTANT},{"coral", SYNTAX_CONSTANT},{"cornflowerblue", SYNTAX_CONSTANT},{"cornsilk", SYNTAX_CONSTANT},{"cos", SYNTAX_BUILTIN},{"counter-increment:", SYNTAX_BUILTIN},{"counter-reset:", SYNTAX_BUILTIN},{"counter-set:", SYNTAX_BUILTIN},{"counters", SYNTAX_BUILTIN},{"cover", SYNTAX_CONSTANT},{"crimson", SYNTAX_CONSTANT},{"crisp-edges", SYNTAX_CONSTANT},{"crispEdges", SYNTAX_CONSTANT},{"cross-fade", SYNTAX_BUILTIN},{"crosshair", SYNTAX_CONSTANT},{"cubic-bezier", SYNTAX_BUILTIN},{"cursor:", SYNTAX_BUILTIN},{"cyan", SYNTAX_CONSTANT},{"cyclic", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_d[50] = {{"dark", SYNTAX_CONSTANT},{"darkblue", SYNTAX_CONSTANT},{"darkcyan", SYNTAX_CONSTANT},{"darken", SYNTAX_CONSTANT},{"darkgoldenrod", SYNTAX_CONSTANT},{"darkgray", SYNTAX_CONSTANT},{"darkgreen", SYNTAX_CONSTANT},{"darkgrey", SYNTAX_CONSTANT},{"darkkhaki", SYNTAX_CONSTANT},{"darkmagenta", SYNTAX_CONSTANT},{"darkolivegreen", SYNTAX_CONSTANT},{"darkorange", SYNTAX_CONSTANT},{"darkorchid", SYNTAX_CONSTANT},{"darkred", SYNTAX_CONSTANT},{"darksalmon", SYNTAX_CONSTANT},{"darkseagreen", SYNTAX_CONSTANT},{"darkslateblue", SYNTAX_CONSTANT},{"darkslategray", SYNTAX_CONSTANT},{"darkslategrey", SYNTAX_CONSTANT},{"darkturquoise", SYNTAX_CONSTANT},{"darkviolet", SYNTAX_CONSTANT},{"dashed", SYNTAX_CONSTANT},{"decimal", SYNTAX_CONSTANT},{"deeppink", SYNTAX_CONSTANT},{"deepskyblue", SYNTAX_CONSTANT},{"default", SYNTAX_CONSTANT},{"dense", SYNTAX_CONSTANT},{"descent-override:", SYNTAX_BUILTIN},{"diagonal-fractions", SYNTAX_CONSTANT},{"difference", SYNTAX_CONSTANT},{"digits", SYNTAX_CONSTANT},{"dimgray", SYNTAX_CONSTANT},{"dimgrey", SYNTAX_CONSTANT},{"direction:", SYNTAX_BUILTIN},{"disabled", SYNTAX_CONSTANT},{"disc", SYNTAX_CONSTANT},{"discretionary-ligatures", SYNTAX_CONSTANT},{"display:", SYNTAX_BUILTIN},{"distribute", SYNTAX_CONSTANT},{"distribute-all-lines", SYNTAX_CONSTANT},{"distribute-letter", SYNTAX_CONSTANT},{"distribute-space", SYNTAX_CONSTANT},{"dodgerblue", SYNTAX_CONSTANT},{"dot", SYNTAX_CONSTANT},{"dotted", SYNTAX_CONSTANT},{"double", SYNTAX_CONSTANT},{"double-circle", SYNTAX_CONSTANT},{"downleft", SYNTAX_CONSTANT},{"downright", SYNTAX_CONSTANT},{"drop-shadow", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_e[24] = {{"e-resize", SYNTAX_CONSTANT},{"each-line", SYNTAX_CONSTANT},{"ease", SYNTAX_CONSTANT},{"ease-in", SYNTAX_CONSTANT},{"ease-in-out", SYNTAX_CONSTANT},{"ease-out", SYNTAX_CONSTANT},{"economy", SYNTAX_CONSTANT},{"element", SYNTAX_BUILTIN},{"ellipse", SYNTAX_BUILTIN},{"ellipsis", SYNTAX_CONSTANT},{"embed", SYNTAX_CONSTANT},{"empty-cells:", SYNTAX_BUILTIN},{"end", SYNTAX_CONSTANT},{"env", SYNTAX_BUILTIN},{"evenodd", SYNTAX_CONSTANT},{"ew-resize", SYNTAX_CONSTANT},{"exact", SYNTAX_CONSTANT},{"exclude", SYNTAX_CONSTANT},{"exclusion", SYNTAX_CONSTANT},{"exp", SYNTAX_BUILTIN},{"expanded", SYNTAX_CONSTANT},{"extends", SYNTAX_CONSTANT},{"extra-condensed", SYNTAX_CONSTANT},{"extra-expanded", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_f[52] = {{"fallback:", SYNTAX_BUILTIN},{"farthest-corner", SYNTAX_CONSTANT},{"farthest-side", SYNTAX_CONSTANT},{"fill", SYNTAX_CONSTANT},{"fill-available", SYNTAX_CONSTANT},{"fill-box", SYNTAX_CONSTANT},{"filled", SYNTAX_CONSTANT},{"filter:", SYNTAX_BUILTIN},{"firebrick", SYNTAX_CONSTANT},{"fit-content", SYNTAX_CONSTANT},{"fixed", SYNTAX_CONSTANT},{"flat", SYNTAX_CONSTANT},{"flex-basis:", SYNTAX_BUILTIN},{"flex-direction:", SYNTAX_BUILTIN},{"flex-flow:", SYNTAX_BUILTIN},{"flex-grow:", SYNTAX_BUILTIN},{"flex-shrink:", SYNTAX_BUILTIN},{"flex-wrap:", SYNTAX_BUILTIN},{"flex:", SYNTAX_BUILTIN},{"flip", SYNTAX_CONSTANT},{"float:", SYNTAX_BUILTIN},{"floralwhite", SYNTAX_CONSTANT},{"flow-root", SYNTAX_CONSTANT},{"font-display:", SYNTAX_BUILTIN},{"font-family:", SYNTAX_BUILTIN},{"font-feature-settings:", SYNTAX_BUILTIN},{"font-kerning:", SYNTAX_BUILTIN},{"font-language-override:", SYNTAX_BUILTIN},{"font-optical-sizing:", SYNTAX_BUILTIN},{"font-size-adjust:", SYNTAX_BUILTIN},{"font-size:", SYNTAX_BUILTIN},{"font-stretch:", SYNTAX_BUILTIN},{"font-style:", SYNTAX_BUILTIN},{"font-synthesis:", SYNTAX_BUILTIN},{"font-variant-alternates:", SYNTAX_BUILTIN},{"font-variant-caps:", SYNTAX_BUILTIN},{"font-variant-east-asian:", SYNTAX_BUILTIN},{"font-variant-ligatures:", SYNTAX_BUILTIN},{"font-variant-numeric:", SYNTAX_BUILTIN},{"font-variant-position:", SYNTAX_BUILTIN},{"font-variant:", SYNTAX_BUILTIN},{"font-variation-settings:", SYNTAX_BUILTIN},{"font-weight:", SYNTAX_BUILTIN},{"font:", SYNTAX_BUILTIN},{"forced-color-adjust:", SYNTAX_BUILTIN},{"forestgreen", SYNTAX_CONSTANT},{"format", SYNTAX_BUILTIN},{"forwards", SYNTAX_CONSTANT},{"freeze", SYNTAX_CONSTANT},{"from-image", SYNTAX_CONSTANT},{"fuchsia", SYNTAX_CONSTANT},{"full-width", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_g[30] = {{"gainsboro", SYNTAX_CONSTANT},{"gap:", SYNTAX_BUILTIN},{"geometricPrecision", SYNTAX_CONSTANT},{"georgian", SYNTAX_CONSTANT},{"ghostwhite", SYNTAX_CONSTANT},{"gold", SYNTAX_CONSTANT},{"goldenrod", SYNTAX_CONSTANT},{"grab", SYNTAX_CONSTANT},{"grabbing", SYNTAX_CONSTANT},{"gray", SYNTAX_CONSTANT},{"grayscale", SYNTAX_BUILTIN},{"green", SYNTAX_CONSTANT},{"greenyellow", SYNTAX_CONSTANT},{"grey", SYNTAX_CONSTANT},{"grid-area:", SYNTAX_BUILTIN},{"grid-auto-columns:", SYNTAX_BUILTIN},{"grid-auto-flow:", SYNTAX_BUILTIN},{"grid-auto-rows:", SYNTAX_BUILTIN},{"grid-column-end:", SYNTAX_BUILTIN},{"grid-column-start:", SYNTAX_BUILTIN},{"grid-column:", SYNTAX_BUILTIN},{"grid-row-end:", SYNTAX_BUILTIN},{"grid-row-start:", SYNTAX_BUILTIN},{"grid-row:", SYNTAX_BUILTIN},{"grid-template-areas:", SYNTAX_BUILTIN},{"grid-template-columns:", SYNTAX_BUILTIN},{"grid-template-rows:", SYNTAX_BUILTIN},{"grid-template:", SYNTAX_BUILTIN},{"grid:", SYNTAX_BUILTIN},{"groove", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_h[23] = {{"hand", SYNTAX_CONSTANT},{"hanging", SYNTAX_CONSTANT},{"hanging-punctuation:", SYNTAX_BUILTIN},{"hard-light", SYNTAX_CONSTANT},{"height:", SYNTAX_BUILTIN},{"help", SYNTAX_CONSTANT},{"hidden", SYNTAX_CONSTANT},{"hide", SYNTAX_CONSTANT},{"historical-forms", SYNTAX_CONSTANT},{"historical-ligatures", SYNTAX_CONSTANT},{"honeydew", SYNTAX_CONSTANT},{"horizontal", SYNTAX_CONSTANT},{"horizontal-tb", SYNTAX_CONSTANT},{"hotpink", SYNTAX_CONSTANT},{"hsl", SYNTAX_BUILTIN},{"hsla", SYNTAX_BUILTIN},{"hue", SYNTAX_CONSTANT},{"hue-rotate", SYNTAX_BUILTIN},{"hwb", SYNTAX_BUILTIN},{"hyphenate-character:", SYNTAX_BUILTIN},{"hyphenate-limit-chars:", SYNTAX_BUILTIN},{"hyphens:", SYNTAX_BUILTIN},{"hypot", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_i[50] = {{"icon", SYNTAX_CONSTANT},{"ideograph-alpha", SYNTAX_CONSTANT},{"ideograph-numeric", SYNTAX_CONSTANT},{"ideograph-parenthesis", SYNTAX_CONSTANT},{"ideograph-space", SYNTAX_CONSTANT},{"ideographic", SYNTAX_CONSTANT},{"image", SYNTAX_BUILTIN},{"image-orientation:", SYNTAX_BUILTIN},{"image-rendering:", SYNTAX_BUILTIN},{"image-resolution:", SYNTAX_BUILTIN},{"image-set", SYNTAX_BUILTIN},{"inactive", SYNTAX_CONSTANT},{"indianred", SYNTAX_CONSTANT},{"indigo", SYNTAX_CONSTANT},{"infinite", SYNTAX_CONSTANT},{"inherit", SYNTAX_CONSTANT},{"inherits:", SYNTAX_BUILTIN},{"initial", SYNTAX_CONSTANT},{"initial-letter-align:", SYNTAX_BUILTIN},{"initial-letter:", SYNTAX_BUILTIN},{"initial-value:", SYNTAX_BUILTIN},{"inline", SYNTAX_CONSTANT},{"inline-axis", SYNTAX_CONSTANT},{"inline-block", SYNTAX_CONSTANT},{"inline-end", SYNTAX_CONSTANT},{"inline-flex", SYNTAX_CONSTANT},{"inline-grid", SYNTAX_CONSTANT},{"inline-list-item", SYNTAX_CONSTANT},{"inline-size:", SYNTAX_BUILTIN},{"inline-start", SYNTAX_CONSTANT},{"inline-table", SYNTAX_CONSTANT},{"input-security:", SYNTAX_BUILTIN},{"inset", SYNTAX_BUILTIN},{"inset-block-end:", SYNTAX_BUILTIN},{"inset-block-start:", SYNTAX_BUILTIN},{"inset-block:", SYNTAX_BUILTIN},{"inset-inline-end:", SYNTAX_BUILTIN},{"inset-inline-start:", SYNTAX_BUILTIN},{"inset-inline:", SYNTAX_BUILTIN},{"inside", SYNTAX_CONSTANT},{"inter-character", SYNTAX_CONSTANT},{"inter-ideograph", SYNTAX_CONSTANT},{"inter-word", SYNTAX_CONSTANT},{"intersect", SYNTAX_CONSTANT},{"invert", SYNTAX_BUILTIN},{"isolate", SYNTAX_CONSTANT},{"isolate-override", SYNTAX_CONSTANT},{"isolation:", SYNTAX_BUILTIN},{"italic", SYNTAX_CONSTANT},{"ivory", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_j[10] = {{"jis04", SYNTAX_CONSTANT},{"jis78", SYNTAX_CONSTANT},{"jis83", SYNTAX_CONSTANT},{"jis90", SYNTAX_CONSTANT},{"justify", SYNTAX_CONSTANT},{"justify-all", SYNTAX_CONSTANT},{"justify-content:", SYNTAX_BUILTIN},{"justify-items:", SYNTAX_BUILTIN},{"justify-self:", SYNTAX_BUILTIN},{"justify-tracks:", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_k[3] = {{"kannada", SYNTAX_CONSTANT},{"keep-all", SYNTAX_CONSTANT},{"khaki", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_l[60] = {{"lab", SYNTAX_BUILTIN},{"landscape", SYNTAX_CONSTANT},{"large", SYNTAX_CONSTANT},{"larger", SYNTAX_CONSTANT},{"lavender", SYNTAX_CONSTANT},{"lavenderblush", SYNTAX_CONSTANT},{"lawngreen", SYNTAX_CONSTANT},{"layer", SYNTAX_BUILTIN},{"lch", SYNTAX_BUILTIN},{"leader", SYNTAX_BUILTIN},{"left", SYNTAX_CONSTANT},{"lemonchiffon", SYNTAX_CONSTANT},{"letter-spacing:", SYNTAX_BUILTIN},{"light", SYNTAX_CONSTANT},{"lightblue", SYNTAX_CONSTANT},{"lightcoral", SYNTAX_CONSTANT},{"lightcyan", SYNTAX_CONSTANT},{"lighten", SYNTAX_CONSTANT},{"lighter", SYNTAX_CONSTANT},{"lightgoldenrodyellow", SYNTAX_CONSTANT},{"lightgray", SYNTAX_CONSTANT},{"lightgreen", SYNTAX_CONSTANT},{"lightgrey", SYNTAX_CONSTANT},{"lightpink", SYNTAX_CONSTANT},{"lightsalmon", SYNTAX_CONSTANT},{"lightseagreen", SYNTAX_CONSTANT},{"lightskyblue", SYNTAX_CONSTANT},{"lightslategray", SYNTAX_CONSTANT},{"lightslategrey", SYNTAX_CONSTANT},{"lightsteelblue", SYNTAX_CONSTANT},{"lightyellow", SYNTAX_CONSTANT},{"lime", SYNTAX_CONSTANT},{"limegreen", SYNTAX_CONSTANT},{"line", SYNTAX_CONSTANT},{"line-break:", SYNTAX_BUILTIN},{"line-clamp:", SYNTAX_BUILTIN},{"line-edge", SYNTAX_CONSTANT},{"line-gap-override:", SYNTAX_BUILTIN},{"line-height-step:", SYNTAX_BUILTIN},{"line-height:", SYNTAX_BUILTIN},{"line-through", SYNTAX_CONSTANT},{"linear", SYNTAX_CONSTANT},{"linear-gradient", SYNTAX_BUILTIN},{"linearRGB", SYNTAX_CONSTANT},{"linen", SYNTAX_CONSTANT},{"lining-nums", SYNTAX_CONSTANT},{"list-item", SYNTAX_CONSTANT},{"list-style-image:", SYNTAX_BUILTIN},{"list-style-position:", SYNTAX_BUILTIN},{"list-style-type:", SYNTAX_BUILTIN},{"list-style:", SYNTAX_BUILTIN},{"local", SYNTAX_BUILTIN},{"log", SYNTAX_BUILTIN},{"loose", SYNTAX_CONSTANT},{"lowercase", SYNTAX_CONSTANT},{"lr", SYNTAX_CONSTANT},{"lr-tb", SYNTAX_CONSTANT},{"ltr", SYNTAX_CONSTANT},{"luminance", SYNTAX_CONSTANT},{"luminosity", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_m[85] = {{"magenta", SYNTAX_CONSTANT},{"main-size", SYNTAX_CONSTANT},{"mandatory", SYNTAX_CONSTANT},{"manipulation", SYNTAX_CONSTANT},{"manual", SYNTAX_CONSTANT},{"margin-block-end:", SYNTAX_BUILTIN},{"margin-block-start:", SYNTAX_BUILTIN},{"margin-block:", SYNTAX_BUILTIN},{"margin-bottom:", SYNTAX_BUILTIN},{"margin-box", SYNTAX_CONSTANT},{"margin-inline-end:", SYNTAX_BUILTIN},{"margin-inline-start:", SYNTAX_BUILTIN},{"margin-inline:", SYNTAX_BUILTIN},{"margin-left:", SYNTAX_BUILTIN},{"margin-right:", SYNTAX_BUILTIN},{"margin-top:", SYNTAX_BUILTIN},{"margin-trim:", SYNTAX_BUILTIN},{"margin:", SYNTAX_BUILTIN},{"marks:", SYNTAX_BUILTIN},{"maroon", SYNTAX_CONSTANT},{"mask-border-mode:", SYNTAX_BUILTIN},{"mask-border-outset:", SYNTAX_BUILTIN},{"mask-border-repeat:", SYNTAX_BUILTIN},{"mask-border-slice:", SYNTAX_BUILTIN},{"mask-border-source:", SYNTAX_BUILTIN},{"mask-border-width:", SYNTAX_BUILTIN},{"mask-border:", SYNTAX_BUILTIN},{"mask-clip:", SYNTAX_BUILTIN},{"mask-composite:", SYNTAX_BUILTIN},{"mask-image:", SYNTAX_BUILTIN},{"mask-mode:", SYNTAX_BUILTIN},{"mask-origin:", SYNTAX_BUILTIN},{"mask-position:", SYNTAX_BUILTIN},{"mask-repeat:", SYNTAX_BUILTIN},{"mask-size:", SYNTAX_BUILTIN},{"mask-type:", SYNTAX_BUILTIN},{"mask:", SYNTAX_BUILTIN},{"masonry-auto-flow:", SYNTAX_BUILTIN},{"match-parent", SYNTAX_CONSTANT},{"match-source", SYNTAX_CONSTANT},{"math-depth:", SYNTAX_BUILTIN},{"math-shift:", SYNTAX_BUILTIN},{"math-style:", SYNTAX_BUILTIN},{"mathematical", SYNTAX_CONSTANT},{"matrix", SYNTAX_BUILTIN},{"matrix3d", SYNTAX_BUILTIN},{"max", SYNTAX_BUILTIN},{"max-block-size:", SYNTAX_BUILTIN},{"max-content", SYNTAX_CONSTANT},{"max-height:", SYNTAX_BUILTIN},{"max-inline-size:", SYNTAX_BUILTIN},{"max-lines:", SYNTAX_BUILTIN},{"max-width:", SYNTAX_BUILTIN},{"max-zoom:", SYNTAX_BUILTIN},{"medium", SYNTAX_CONSTANT},{"mediumaquamarine", SYNTAX_CONSTANT},{"mediumblue", SYNTAX_CONSTANT},{"mediumorchid", SYNTAX_CONSTANT},{"mediumpurple", SYNTAX_CONSTANT},{"mediumseagreen", SYNTAX_CONSTANT},{"mediumslateblue", SYNTAX_CONSTANT},{"mediumspringgreen", SYNTAX_CONSTANT},{"mediumturquoise", SYNTAX_CONSTANT},{"mediumvioletred", SYNTAX_CONSTANT},{"menu", SYNTAX_CONSTANT},{"message-box", SYNTAX_CONSTANT},{"middle", SYNTAX_CONSTANT},{"midnightblue", SYNTAX_CONSTANT},{"min", SYNTAX_BUILTIN},{"min-block-size:", SYNTAX_BUILTIN},{"min-content", SYNTAX_CONSTANT},{"min-height:", SYNTAX_BUILTIN},{"min-inline-size:", SYNTAX_BUILTIN},{"min-width:", SYNTAX_BUILTIN},{"min-zoom:", SYNTAX_BUILTIN},{"minmax", SYNTAX_BUILTIN},{"mintcream", SYNTAX_CONSTANT},{"mistyrose", SYNTAX_CONSTANT},{"miter", SYNTAX_CONSTANT},{"mix-blend-mode:", SYNTAX_BUILTIN},{"mixed", SYNTAX_CONSTANT},{"moccasin", SYNTAX_CONSTANT},{"mod", SYNTAX_BUILTIN},{"move", SYNTAX_CONSTANT},{"multiply", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_n[29] = {{"n-resize", SYNTAX_CONSTANT},{"narrower", SYNTAX_CONSTANT},{"navajowhite", SYNTAX_CONSTANT},{"navy", SYNTAX_CONSTANT},{"ne-resize", SYNTAX_CONSTANT},{"nearest-neighbor", SYNTAX_CONSTANT},{"negative:", SYNTAX_BUILTIN},{"nesw-resize", SYNTAX_CONSTANT},{"newspaper", SYNTAX_CONSTANT},{"no-change", SYNTAX_CONSTANT},{"no-clip", SYNTAX_CONSTANT},{"no-close-quote", SYNTAX_CONSTANT},{"no-common-ligatures", SYNTAX_CONSTANT},{"no-contextual", SYNTAX_CONSTANT},{"no-discretionary-ligatures", SYNTAX_CONSTANT},{"no-drop", SYNTAX_CONSTANT},{"no-historical-ligatures", SYNTAX_CONSTANT},{"no-open-quote", SYNTAX_CONSTANT},{"no-repeat", SYNTAX_CONSTANT},{"none", SYNTAX_CONSTANT},{"nonzero", SYNTAX_CONSTANT},{"normal", SYNTAX_CONSTANT},{"not-allowed", SYNTAX_CONSTANT},{"nowrap", SYNTAX_CONSTANT},{"ns-resize", SYNTAX_CONSTANT},{"numbers", SYNTAX_CONSTANT},{"numeric", SYNTAX_CONSTANT},{"nw-resize", SYNTAX_CONSTANT},{"nwse-resize", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_o[51] = {{"object-fit:", SYNTAX_BUILTIN},{"object-position:", SYNTAX_BUILTIN},{"oblique", SYNTAX_CONSTANT},{"offset-anchor:", SYNTAX_BUILTIN},{"offset-distance:", SYNTAX_BUILTIN},{"offset-path:", SYNTAX_BUILTIN},{"offset-position:", SYNTAX_BUILTIN},{"offset-rotate:", SYNTAX_BUILTIN},{"offset:", SYNTAX_BUILTIN},{"oldlace", SYNTAX_CONSTANT},{"oldstyle-nums", SYNTAX_CONSTANT},{"olive", SYNTAX_CONSTANT},{"olivedrab", SYNTAX_CONSTANT},{"opacity", SYNTAX_BUILTIN},{"open", SYNTAX_CONSTANT},{"open-quote", SYNTAX_CONSTANT},{"optimizeLegibility", SYNTAX_CONSTANT},{"optimizeQuality", SYNTAX_CONSTANT},{"optimizeSpeed", SYNTAX_CONSTANT},{"optional", SYNTAX_CONSTANT},{"orange", SYNTAX_CONSTANT},{"orangered", SYNTAX_CONSTANT},{"orchid", SYNTAX_CONSTANT},{"order:", SYNTAX_BUILTIN},{"ordinal", SYNTAX_CONSTANT},{"orientation:", SYNTAX_BUILTIN},{"ornaments", SYNTAX_BUILTIN},{"orphans:", SYNTAX_BUILTIN},{"outline-color:", SYNTAX_BUILTIN},{"outline-offset:", SYNTAX_BUILTIN},{"outline-style:", SYNTAX_BUILTIN},{"outline-width:", SYNTAX_BUILTIN},{"outline:", SYNTAX_BUILTIN},{"outset", SYNTAX_CONSTANT},{"outside", SYNTAX_CONSTANT},{"over", SYNTAX_CONSTANT},{"overflow-anchor:", SYNTAX_BUILTIN},{"overflow-block:", SYNTAX_BUILTIN},{"overflow-clip-margin:", SYNTAX_BUILTIN},{"overflow-inline:", SYNTAX_BUILTIN},{"overflow-wrap:", SYNTAX_BUILTIN},{"overflow-x:", SYNTAX_BUILTIN},{"overflow-y:", SYNTAX_BUILTIN},{"overflow:", SYNTAX_BUILTIN},{"overlay", SYNTAX_CONSTANT},{"overline", SYNTAX_CONSTANT},{"overscroll-behavior-block:", SYNTAX_BUILTIN},{"overscroll-behavior-inline:", SYNTAX_BUILTIN},{"overscroll-behavior-x:", SYNTAX_BUILTIN},{"overscroll-behavior-y:", SYNTAX_BUILTIN},{"overscroll-behavior:", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_p[63] = {{"pad:", SYNTAX_BUILTIN},{"padding-block-end:", SYNTAX_BUILTIN},{"padding-block-start:", SYNTAX_BUILTIN},{"padding-block:", SYNTAX_BUILTIN},{"padding-bottom:", SYNTAX_BUILTIN},{"padding-inline-end:", SYNTAX_BUILTIN},{"padding-inline-start:", SYNTAX_BUILTIN},{"padding-inline:", SYNTAX_BUILTIN},{"padding-left:", SYNTAX_BUILTIN},{"padding-right:", SYNTAX_BUILTIN},{"padding-top:", SYNTAX_BUILTIN},{"padding:", SYNTAX_BUILTIN},{"page", SYNTAX_CONSTANT},{"page-break-after:", SYNTAX_BUILTIN},{"page-break-before:", SYNTAX_BUILTIN},{"page-break-inside:", SYNTAX_BUILTIN},{"paint", SYNTAX_BUILTIN},{"paint-order:", SYNTAX_BUILTIN},{"painted", SYNTAX_CONSTANT},{"palegoldenrod", SYNTAX_CONSTANT},{"palegreen", SYNTAX_CONSTANT},{"paleturquoise", SYNTAX_CONSTANT},{"palevioletred", SYNTAX_CONSTANT},{"pan-down", SYNTAX_CONSTANT},{"pan-left", SYNTAX_CONSTANT},{"pan-right", SYNTAX_CONSTANT},{"pan-up", SYNTAX_CONSTANT},{"pan-x", SYNTAX_CONSTANT},{"pan-y", SYNTAX_CONSTANT},{"papayawhip", SYNTAX_CONSTANT},{"path", SYNTAX_BUILTIN},{"paused", SYNTAX_CONSTANT},{"peachpuff", SYNTAX_CONSTANT},{"perspective", SYNTAX_BUILTIN},{"perspective-origin:", SYNTAX_BUILTIN},{"peru", SYNTAX_CONSTANT},{"petite-caps", SYNTAX_CONSTANT},{"pink", SYNTAX_CONSTANT},{"pixelated", SYNTAX_CONSTANT},{"place-content:", SYNTAX_BUILTIN},{"place-items:", SYNTAX_BUILTIN},{"place-self:", SYNTAX_BUILTIN},{"plaintext", SYNTAX_CONSTANT},{"plum", SYNTAX_CONSTANT},{"pointer", SYNTAX_CONSTANT},{"pointer-events:", SYNTAX_BUILTIN},{"polygon", SYNTAX_BUILTIN},{"portrait", SYNTAX_CONSTANT},{"position:", SYNTAX_BUILTIN},{"pow", SYNTAX_BUILTIN},{"powderblue", SYNTAX_CONSTANT},{"pre", SYNTAX_CONSTANT},{"pre-line", SYNTAX_CONSTANT},{"pre-wrap", SYNTAX_CONSTANT},{"prefix:", SYNTAX_BUILTIN},{"preserve-3d", SYNTAX_CONSTANT},{"print-color-adjust:", SYNTAX_BUILTIN},{"progress", SYNTAX_CONSTANT},{"progressive", SYNTAX_CONSTANT},{"proportional-nums", SYNTAX_CONSTANT},{"proportional-width", SYNTAX_CONSTANT},{"proximity", SYNTAX_CONSTANT},{"purple", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_q[1] = {{"quotes:", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_r[49] = {{"radial", SYNTAX_CONSTANT},{"radial-gradient", SYNTAX_BUILTIN},{"range:", SYNTAX_BUILTIN},{"rect", SYNTAX_BUILTIN},{"recto", SYNTAX_CONSTANT},{"red", SYNTAX_CONSTANT},{"region", SYNTAX_CONSTANT},{"relative", SYNTAX_CONSTANT},{"rem", SYNTAX_BUILTIN},{"remove", SYNTAX_CONSTANT},{"repeat", SYNTAX_BUILTIN},{"repeating-conic-gradient", SYNTAX_BUILTIN},{"repeating-linear-gradient", SYNTAX_BUILTIN},{"repeating-radial-gradient", SYNTAX_BUILTIN},{"reset-size", SYNTAX_CONSTANT},{"resize:", SYNTAX_BUILTIN},{"reverse", SYNTAX_CONSTANT},{"reversed", SYNTAX_BUILTIN},{"revert", SYNTAX_CONSTANT},{"rgb", SYNTAX_BUILTIN},{"rgba", SYNTAX_BUILTIN},{"ridge", SYNTAX_CONSTANT},{"right", SYNTAX_CONSTANT},{"rl", SYNTAX_CONSTANT},{"rl-tb", SYNTAX_CONSTANT},{"rosybrown", SYNTAX_CONSTANT},{"rotate", SYNTAX_BUILTIN},{"rotate3d", SYNTAX_BUILTIN},{"rotateX", SYNTAX_BUILTIN},{"rotateY", SYNTAX_BUILTIN},{"rotateZ", SYNTAX_BUILTIN},{"round", SYNTAX_CONSTANT},{"row", SYNTAX_CONSTANT},{"row-gap:", SYNTAX_BUILTIN},{"row-resize", SYNTAX_CONSTANT},{"row-reverse", SYNTAX_CONSTANT},{"row-severse", SYNTAX_CONSTANT},{"royalblue", SYNTAX_CONSTANT},{"rtl", SYNTAX_CONSTANT},{"ruby", SYNTAX_CONSTANT},{"ruby-align:", SYNTAX_BUILTIN},{"ruby-base", SYNTAX_CONSTANT},{"ruby-base-container", SYNTAX_CONSTANT},{"ruby-merge:", SYNTAX_BUILTIN},{"ruby-position:", SYNTAX_BUILTIN},{"ruby-text", SYNTAX_CONSTANT},{"ruby-text-container", SYNTAX_CONSTANT},{"run-in", SYNTAX_CONSTANT},{"running", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_s[129] = {{"s-resize", SYNTAX_CONSTANT},{"sRGB", SYNTAX_CONSTANT},{"saddlebrown", SYNTAX_CONSTANT},{"salmon", SYNTAX_CONSTANT},{"sandybrown", SYNTAX_CONSTANT},{"saturate", SYNTAX_BUILTIN},{"saturation", SYNTAX_CONSTANT},{"scale", SYNTAX_BUILTIN},{"scale-down", SYNTAX_CONSTANT},{"scale3d", SYNTAX_BUILTIN},{"scaleX", SYNTAX_BUILTIN},{"scaleY", SYNTAX_BUILTIN},{"scaleZ", SYNTAX_BUILTIN},{"screen", SYNTAX_CONSTANT},{"scroll", SYNTAX_BUILTIN},{"scroll-behavior:", SYNTAX_BUILTIN},{"scroll-margin-block-end:", SYNTAX_BUILTIN},{"scroll-margin-block-start:", SYNTAX_BUILTIN},{"scroll-margin-block:", SYNTAX_BUILTIN},{"scroll-margin-bottom:", SYNTAX_BUILTIN},{"scroll-margin-inline-end:", SYNTAX_BUILTIN},{"scroll-margin-inline-start:", SYNTAX_BUILTIN},{"scroll-margin-inline:", SYNTAX_BUILTIN},{"scroll-margin-left:", SYNTAX_BUILTIN},{"scroll-margin-right:", SYNTAX_BUILTIN},{"scroll-margin-top:", SYNTAX_BUILTIN},{"scroll-margin:", SYNTAX_BUILTIN},{"scroll-padding-block-end:", SYNTAX_BUILTIN},{"scroll-padding-block-start:", SYNTAX_BUILTIN},{"scroll-padding-block:", SYNTAX_BUILTIN},{"scroll-padding-bottom:", SYNTAX_BUILTIN},{"scroll-padding-inline-end:", SYNTAX_BUILTIN},{"scroll-padding-inline-start:", SYNTAX_BUILTIN},{"scroll-padding-inline:", SYNTAX_BUILTIN},{"scroll-padding-left:", SYNTAX_BUILTIN},{"scroll-padding-right:", SYNTAX_BUILTIN},{"scroll-padding-top:", SYNTAX_BUILTIN},{"scroll-padding:", SYNTAX_BUILTIN},{"scroll-snap-align:", SYNTAX_BUILTIN},{"scroll-snap-stop:", SYNTAX_BUILTIN},{"scroll-snap-type:", SYNTAX_BUILTIN},{"scroll-timeline-axis:", SYNTAX_BUILTIN},{"scroll-timeline-name:", SYNTAX_BUILTIN},{"scroll-timeline:", SYNTAX_BUILTIN},{"scrollbar-color:", SYNTAX_BUILTIN},{"scrollbar-gutter:", SYNTAX_BUILTIN},{"scrollbar-width:", SYNTAX_BUILTIN},{"se-resize", SYNTAX_CONSTANT},{"seagreen", SYNTAX_CONSTANT},{"seashell", SYNTAX_CONSTANT},{"selector", SYNTAX_BUILTIN},{"semi-condensed", SYNTAX_CONSTANT},{"semi-expanded", SYNTAX_CONSTANT},{"separate", SYNTAX_CONSTANT},{"sepia", SYNTAX_BUILTIN},{"sesame", SYNTAX_CONSTANT},{"shape-image-threshold:", SYNTAX_BUILTIN},{"shape-margin:", SYNTAX_BUILTIN},{"shape-outside:", SYNTAX_BUILTIN},{"show", SYNTAX_CONSTANT},{"sideways", SYNTAX_CONSTANT},{"sideways-left", SYNTAX_CONSTANT},{"sideways-lr", SYNTAX_CONSTANT},{"sideways-right", SYNTAX_CONSTANT},{"sideways-rl", SYNTAX_CONSTANT},{"sienna", SYNTAX_CONSTANT},{"sign", SYNTAX_BUILTIN},{"silver", SYNTAX_CONSTANT},{"simplified", SYNTAX_CONSTANT},{"sin", SYNTAX_BUILTIN},{"size-adjust:", SYNTAX_BUILTIN},{"size:", SYNTAX_BUILTIN},{"skew", SYNTAX_BUILTIN},{"skewX", SYNTAX_BUILTIN},{"skewY", SYNTAX_BUILTIN},{"skyblue", SYNTAX_CONSTANT},{"slashed-zero", SYNTAX_CONSTANT},{"slateblue", SYNTAX_CONSTANT},{"slategray", SYNTAX_CONSTANT},{"slategrey", SYNTAX_CONSTANT},{"slice", SYNTAX_CONSTANT},{"small", SYNTAX_CONSTANT},{"small-caps", SYNTAX_CONSTANT},{"small-caption", SYNTAX_CONSTANT},{"smaller", SYNTAX_CONSTANT},{"smooth", SYNTAX_CONSTANT},{"snow", SYNTAX_CONSTANT},{"soft-light", SYNTAX_CONSTANT},{"solid", SYNTAX_CONSTANT},{"space", SYNTAX_CONSTANT},{"space-around", SYNTAX_CONSTANT},{"space-between", SYNTAX_CONSTANT},{"space-evenly", SYNTAX_CONSTANT},{"speak-as:", SYNTAX_BUILTIN},{"spell-out", SYNTAX_CONSTANT},{"springgreen", SYNTAX_CONSTANT},{"sqrt", SYNTAX_BUILTIN},{"square", SYNTAX_CONSTANT},{"src:", SYNTAX_BUILTIN},{"stacked-fractions", SYNTAX_CONSTANT},{"start", SYNTAX_CONSTANT},{"static", SYNTAX_CONSTANT},{"status-bar", SYNTAX_CONSTANT},{"steelblue", SYNTAX_CONSTANT},{"step-end", SYNTAX_CONSTANT},{"step-start", SYNTAX_CONSTANT},{"steps", SYNTAX_BUILTIN},{"sticky", SYNTAX_CONSTANT},{"stretch", SYNTAX_CONSTANT},{"strict", SYNTAX_CONSTANT},{"stroke", SYNTAX_CONSTANT},{"stroke-box", SYNTAX_CONSTANT},{"style", SYNTAX_CONSTANT},{"styleset", SYNTAX_BUILTIN},{"stylistic", SYNTAX_BUILTIN},{"sub", SYNTAX_CONSTANT},{"subgrid", SYNTAX_CONSTANT},{"subpixel-antialiased", SYNTAX_CONSTANT},{"subtract", SYNTAX_CONSTANT},{"suffix:", SYNTAX_BUILTIN},{"super", SYNTAX_CONSTANT},{"supports", SYNTAX_BUILTIN},{"sw-resize", SYNTAX_CONSTANT},{"swap", SYNTAX_CONSTANT},{"swash", SYNTAX_BUILTIN},{"symbolic", SYNTAX_CONSTANT},{"symbols", SYNTAX_BUILTIN},{"syntax:", SYNTAX_BUILTIN},{"system:", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_t[76] = {{"tab-size:", SYNTAX_BUILTIN},{"table", SYNTAX_CONSTANT},{"table-caption", SYNTAX_CONSTANT},{"table-cell", SYNTAX_CONSTANT},{"table-column", SYNTAX_CONSTANT},{"table-column-group", SYNTAX_CONSTANT},{"table-footer-group", SYNTAX_CONSTANT},{"table-header-group", SYNTAX_CONSTANT},{"table-layout:", SYNTAX_BUILTIN},{"table-row", SYNTAX_CONSTANT},{"table-row-group", SYNTAX_CONSTANT},{"tabular-nums", SYNTAX_CONSTANT},{"tan", SYNTAX_BUILTIN},{"target-counter", SYNTAX_BUILTIN},{"target-counters", SYNTAX_BUILTIN},{"target-text", SYNTAX_BUILTIN},{"tb", SYNTAX_CONSTANT},{"tb-rl", SYNTAX_CONSTANT},{"teal", SYNTAX_CONSTANT},{"text", SYNTAX_CONSTANT},{"text-after-edge", SYNTAX_CONSTANT},{"text-align-last:", SYNTAX_BUILTIN},{"text-align:", SYNTAX_BUILTIN},{"text-before-edge", SYNTAX_CONSTANT},{"text-bottom", SYNTAX_CONSTANT},{"text-combine-upright:", SYNTAX_BUILTIN},{"text-decoration-color:", SYNTAX_BUILTIN},{"text-decoration-line:", SYNTAX_BUILTIN},{"text-decoration-skip-ink:", SYNTAX_BUILTIN},{"text-decoration-skip:", SYNTAX_BUILTIN},{"text-decoration-style:", SYNTAX_BUILTIN},{"text-decoration-thickness:", SYNTAX_BUILTIN},{"text-decoration:", SYNTAX_BUILTIN},{"text-emphasis-color:", SYNTAX_BUILTIN},{"text-emphasis-position:", SYNTAX_BUILTIN},{"text-emphasis-style:", SYNTAX_BUILTIN},{"text-emphasis:", SYNTAX_BUILTIN},{"text-indent:", SYNTAX_BUILTIN},{"text-justify:", SYNTAX_BUILTIN},{"text-orientation:", SYNTAX_BUILTIN},{"text-overflow:", SYNTAX_BUILTIN},{"text-rendering:", SYNTAX_BUILTIN},{"text-shadow:", SYNTAX_BUILTIN},{"text-size-adjust:", SYNTAX_BUILTIN},{"text-top", SYNTAX_CONSTANT},{"text-transform:", SYNTAX_BUILTIN},{"text-underline-offset:", SYNTAX_BUILTIN},{"text-underline-position:", SYNTAX_BUILTIN},{"thick", SYNTAX_CONSTANT},{"thin", SYNTAX_CONSTANT},{"thistle", SYNTAX_CONSTANT},{"titling-caps", SYNTAX_CONSTANT},{"tomato", SYNTAX_CONSTANT},{"top", SYNTAX_CONSTANT},{"top-outside", SYNTAX_CONSTANT},{"touch", SYNTAX_CONSTANT},{"touch-action:", SYNTAX_BUILTIN},{"traditional", SYNTAX_CONSTANT},{"transform-box:", SYNTAX_BUILTIN},{"transform-origin:", SYNTAX_BUILTIN},{"transform-style:", SYNTAX_BUILTIN},{"transform:", SYNTAX_BUILTIN},{"transition-delay:", SYNTAX_BUILTIN},{"transition-duration:", SYNTAX_BUILTIN},{"transition-property:", SYNTAX_BUILTIN},{"transition-timing-function:", SYNTAX_BUILTIN},{"transition:", SYNTAX_BUILTIN},{"translate", SYNTAX_BUILTIN},{"translate3d", SYNTAX_BUILTIN},{"translateX", SYNTAX_BUILTIN},{"translateY", SYNTAX_BUILTIN},{"translateZ", SYNTAX_BUILTIN},{"transparent", SYNTAX_CONSTANT},{"triangle", SYNTAX_CONSTANT},{"turquoise", SYNTAX_CONSTANT},{"type", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_u[16] = {{"ultra-condensed", SYNTAX_CONSTANT},{"ultra-expanded", SYNTAX_CONSTANT},{"under", SYNTAX_CONSTANT},{"underline", SYNTAX_CONSTANT},{"unicase", SYNTAX_CONSTANT},{"unicode-bidi:", SYNTAX_BUILTIN},{"unicode-range:", SYNTAX_BUILTIN},{"unset", SYNTAX_CONSTANT},{"upleft", SYNTAX_CONSTANT},{"uppercase", SYNTAX_CONSTANT},{"upright", SYNTAX_CONSTANT},{"url", SYNTAX_BUILTIN},{"use-glyph-orientation", SYNTAX_CONSTANT},{"use-script", SYNTAX_CONSTANT},{"user-select:", SYNTAX_BUILTIN},{"user-zoom:", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_v[16] = {{"var", SYNTAX_BUILTIN},{"verso", SYNTAX_CONSTANT},{"vertical", SYNTAX_CONSTANT},{"vertical-align:", SYNTAX_BUILTIN},{"vertical-ideographic", SYNTAX_CONSTANT},{"vertical-lr", SYNTAX_CONSTANT},{"vertical-rl", SYNTAX_CONSTANT},{"vertical-text", SYNTAX_CONSTANT},{"view-box", SYNTAX_CONSTANT},{"viewport-fit:", SYNTAX_BUILTIN},{"violet", SYNTAX_CONSTANT},{"visibility:", SYNTAX_BUILTIN},{"visible", SYNTAX_CONSTANT},{"visibleFill", SYNTAX_CONSTANT},{"visiblePainted", SYNTAX_CONSTANT},{"visibleStroke", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_w[20] = {{"w-resize", SYNTAX_CONSTANT},{"wait", SYNTAX_CONSTANT},{"wavy", SYNTAX_CONSTANT},{"weight", SYNTAX_CONSTANT},{"wheat", SYNTAX_CONSTANT},{"white", SYNTAX_CONSTANT},{"white-space:", SYNTAX_BUILTIN},{"whitesmoke", SYNTAX_CONSTANT},{"whitespace", SYNTAX_CONSTANT},{"wider", SYNTAX_CONSTANT},{"widows:", SYNTAX_BUILTIN},{"width:", SYNTAX_BUILTIN},{"will-change:", SYNTAX_BUILTIN},{"word-break:", SYNTAX_BUILTIN},{"word-spacing:", SYNTAX_BUILTIN},{"word-wrap:", SYNTAX_BUILTIN},{"words", SYNTAX_CONSTANT},{"wrap", SYNTAX_CONSTANT},{"wrap-reverse", SYNTAX_CONSTANT},{"writing-mode:", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_css_x[5] = {{"x", SYNTAX_CONSTANT},{"x-large", SYNTAX_CONSTANT},{"x-small", SYNTAX_CONSTANT},{"xx-large", SYNTAX_CONSTANT},{"xx-small", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_y[3] = {{"y", SYNTAX_CONSTANT},{"yellow", SYNTAX_CONSTANT},{"yellowgreen", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_css_z[5] = {{"z-index:", SYNTAX_BUILTIN},{"zero", SYNTAX_CONSTANT},{"zoom-in", SYNTAX_CONSTANT},{"zoom-out", SYNTAX_CONSTANT},{"zoom:", SYNTAX_BUILTIN}};
+static const KeywordList syntax_all_keywords_css[128] = {
+ ['-'] = {syntax_keywords_css_x2d, arr_count(syntax_keywords_css_x2d)}, ['@'] = {syntax_keywords_css_x40, arr_count(syntax_keywords_css_x40)}, ['a'] = {syntax_keywords_css_a, arr_count(syntax_keywords_css_a)}, ['b'] = {syntax_keywords_css_b, arr_count(syntax_keywords_css_b)}, ['c'] = {syntax_keywords_css_c, arr_count(syntax_keywords_css_c)}, ['d'] = {syntax_keywords_css_d, arr_count(syntax_keywords_css_d)}, ['e'] = {syntax_keywords_css_e, arr_count(syntax_keywords_css_e)}, ['f'] = {syntax_keywords_css_f, arr_count(syntax_keywords_css_f)}, ['g'] = {syntax_keywords_css_g, arr_count(syntax_keywords_css_g)}, ['h'] = {syntax_keywords_css_h, arr_count(syntax_keywords_css_h)}, ['i'] = {syntax_keywords_css_i, arr_count(syntax_keywords_css_i)}, ['j'] = {syntax_keywords_css_j, arr_count(syntax_keywords_css_j)}, ['k'] = {syntax_keywords_css_k, arr_count(syntax_keywords_css_k)}, ['l'] = {syntax_keywords_css_l, arr_count(syntax_keywords_css_l)}, ['m'] = {syntax_keywords_css_m, arr_count(syntax_keywords_css_m)}, ['n'] = {syntax_keywords_css_n, arr_count(syntax_keywords_css_n)}, ['o'] = {syntax_keywords_css_o, arr_count(syntax_keywords_css_o)}, ['p'] = {syntax_keywords_css_p, arr_count(syntax_keywords_css_p)}, ['q'] = {syntax_keywords_css_q, arr_count(syntax_keywords_css_q)}, ['r'] = {syntax_keywords_css_r, arr_count(syntax_keywords_css_r)}, ['s'] = {syntax_keywords_css_s, arr_count(syntax_keywords_css_s)}, ['t'] = {syntax_keywords_css_t, arr_count(syntax_keywords_css_t)}, ['u'] = {syntax_keywords_css_u, arr_count(syntax_keywords_css_u)}, ['v'] = {syntax_keywords_css_v, arr_count(syntax_keywords_css_v)}, ['w'] = {syntax_keywords_css_w, arr_count(syntax_keywords_css_w)}, ['x'] = {syntax_keywords_css_x, arr_count(syntax_keywords_css_x)}, ['y'] = {syntax_keywords_css_y, arr_count(syntax_keywords_css_y)}, ['z'] = {syntax_keywords_css_z, arr_count(syntax_keywords_css_z)}
+};
+
diff --git a/keywords.py b/keywords.py
index 72de967..b9fbad0 100755
--- a/keywords.py
+++ b/keywords.py
@@ -25,13 +25,18 @@ def process_keywords(keywords):
def output_keywords(file, keywords, language):
keywords = process_keywords(keywords)
+ def escape(c):
+ if c.isalpha():
+ return c
+ else:
+ return 'x{:x}'.format(ord(c))
for (c, kwds) in sorted(keywords.items()):
kwds = list(sorted(kwds))
- file.write('static const Keyword syntax_keywords_{}_{}[{}] = {{'.format(language, c, len(kwds)))
+ file.write('static const Keyword syntax_keywords_{}_{}[{}] = {{'.format(language, escape(c), len(kwds)))
file.write(','.join(map(lambda kwd: '{"'+kwd[0]+'", ' + types[kwd[1]] + '}', kwds)) + '};\n')
file.write('static const KeywordList syntax_all_keywords_{}[128] = {{\n'.format(language))
file.write('\t'+', '.join(["['{}'] = {{syntax_keywords_{}_{}, arr_count(syntax_keywords_{}_{})}}".format(
- c, language, c, language, c) for c in sorted(keywords.keys())]) + '\n')
+ c, language, escape(c), language, escape(c)) for c in sorted(keywords.keys())]) + '\n')
file.write('};\n\n')
def cant_overlap(*args):
@@ -407,6 +412,170 @@ builtins_go = [
'comparable'
]
+builtins_css = [
+ '-webkit-line-clamp:', '@annotation:', '@bottom-center:', '@character-variant:', '@charset:', '@counter-style:',
+ '@font-face:', '@font-feature-values:', '@historical-forms:', '@import:', '@keyframes:', '@layer:', '@left-bottom:',
+ '@media:', '@namespace:', '@ornaments:', '@page:', '@property:', '@right-bottom:', '@scroll-timeline:', '@styleset:',
+ '@stylistic:', '@supports:', '@swash:', '@top-center:', '@viewport:', 'abs', 'accent-color:', 'acos',
+ 'additive-symbols:', 'align-content:', 'align-items:', 'align-self:', 'align-tracks:', 'all:', 'animation:',
+ 'animation-composition:', 'animation-delay:', 'animation-direction:', 'animation-duration:', 'animation-fill-mode:',
+ 'animation-iteration-count:', 'animation-name:', 'animation-play-state:', 'animation-timeline:',
+ 'animation-timing-function:', 'annotation', 'appearance:', 'ascent-override:', 'asin', 'aspect-ratio:', 'atan',
+ 'atan2', 'attr', 'backdrop-filter:', 'backface-visibility:', 'background:', 'background-attachment:',
+ 'background-blend-mode:', 'background-clip:', 'background-color:', 'background-image:', 'background-origin:',
+ 'background-position:', 'background-position-x:', 'background-position-y:', 'background-repeat:', 'background-size:',
+ 'bleed:', 'block-overflow:', 'block-size:', 'blur', 'border:', 'border-block:', 'border-block-color:',
+ 'border-block-end:', 'border-block-end-color:', 'border-block-end-style:', 'border-block-end-width:',
+ 'border-block-start:', 'border-block-start-color:', 'border-block-start-style:', 'border-block-start-width:',
+ 'border-block-style:', 'border-block-width:', 'border-bottom:', 'border-bottom-color:', 'border-bottom-left-radius:',
+ 'border-bottom-right-radius:', 'border-bottom-style:', 'border-bottom-width:', 'border-collapse:', 'border-color:',
+ 'border-end-end-radius:', 'border-end-start-radius:', 'border-image:', 'border-image-outset:', 'border-image-repeat:',
+ 'border-image-slice:', 'border-image-source:', 'border-image-width:', 'border-inline:', 'border-inline-color:',
+ 'border-inline-end:', 'border-inline-end-color:', 'border-inline-end-style:', 'border-inline-end-width:',
+ 'border-inline-start:', 'border-inline-start-color:', 'border-inline-start-style:', 'border-inline-start-width:',
+ 'border-inline-style:', 'border-inline-width:', 'border-left:', 'border-left-color:', 'border-left-style:',
+ 'border-left-width:', 'border-radius:', 'border-right:', 'border-right-color:', 'border-right-style:',
+ 'border-right-width:', 'border-spacing:', 'border-start-end-radius:', 'border-start-start-radius:', 'border-style:',
+ 'border-top:', 'border-top-color:', 'border-top-left-radius:', 'border-top-right-radius:', 'border-top-style:',
+ 'border-top-width:', 'border-width:', 'box-decoration-break:', 'box-shadow:', 'box-sizing:', 'break-after:',
+ 'break-before:', 'break-inside:', 'brightness', 'calc', 'caption-side:', 'caret:', 'caret-color:', 'caret-shape:',
+ 'character-variant', 'circle', 'clamp', 'clear:', 'clip:', 'clip-path:', 'color:', 'color-scheme:', 'column-count:',
+ 'column-fill:', 'column-gap:', 'column-rule:', 'column-rule-color:', 'column-rule-style:', 'column-rule-width:',
+ 'column-span:', 'column-width:', 'columns:', 'conic-gradient', 'contain:', 'contain-intrinsic-block-size:',
+ 'contain-intrinsic-height:', 'contain-intrinsic-inline-size:', 'contain-intrinsic-size:', 'contain-intrinsic-width:',
+ 'content:', 'content-visibility:', 'contrast', 'cos', 'counter-increment:', 'counter-reset:', 'counter-set:',
+ 'counters', 'cross-fade', 'cubic-bezier', 'cursor:', 'descent-override:', 'direction:', 'display:', 'drop-shadow',
+ 'element', 'ellipse', 'empty-cells:', 'env', 'exp', 'fallback:', 'filter:', 'flex:', 'flex-basis:', 'flex-direction:',
+ 'flex-flow:', 'flex-grow:', 'flex-shrink:', 'flex-wrap:', 'float:', 'font:', 'font-display:', 'font-family:',
+ 'font-feature-settings:', 'font-kerning:', 'font-language-override:', 'font-optical-sizing:', 'font-size:',
+ 'font-size-adjust:', 'font-stretch:', 'font-style:', 'font-synthesis:', 'font-variant:', 'font-variant-alternates:',
+ 'font-variant-caps:', 'font-variant-east-asian:', 'font-variant-ligatures:', 'font-variant-numeric:',
+ 'font-variant-position:', 'font-variation-settings:', 'font-weight:', 'forced-color-adjust:', 'format', 'gap:',
+ 'grayscale', 'grid:', 'grid-area:', 'grid-auto-columns:', 'grid-auto-flow:', 'grid-auto-rows:', 'grid-column:',
+ 'grid-column-end:', 'grid-column-start:', 'grid-row:', 'grid-row-end:', 'grid-row-start:', 'grid-template:',
+ 'grid-template-areas:', 'grid-template-columns:', 'grid-template-rows:', 'hanging-punctuation:', 'height:', 'hsl',
+ 'hsla', 'hue-rotate', 'hwb', 'hyphenate-character:', 'hyphenate-limit-chars:', 'hyphens:', 'hypot', 'image',
+ 'image-orientation:', 'image-rendering:', 'image-resolution:', 'image-set', 'inherits:', 'initial-letter:',
+ 'initial-letter-align:', 'initial-value:', 'inline-size:', 'input-security:', 'inset', 'inset-block:',
+ 'inset-block-end:', 'inset-block-start:', 'inset-inline:', 'inset-inline-end:', 'inset-inline-start:', 'invert',
+ 'isolation:', 'justify-content:', 'justify-items:', 'justify-self:', 'justify-tracks:', 'lab', 'layer', 'lch',
+ 'leader', 'letter-spacing:', 'line-break:', 'line-clamp:', 'line-gap-override:', 'line-height:', 'line-height-step:',
+ 'linear-gradient', 'list-style:', 'list-style-image:', 'list-style-position:', 'list-style-type:', 'local', 'log',
+ 'margin:', 'margin-block:', 'margin-block-end:', 'margin-block-start:', 'margin-bottom:', 'margin-inline:',
+ 'margin-inline-end:', 'margin-inline-start:', 'margin-left:', 'margin-right:', 'margin-top:', 'margin-trim:', 'marks:',
+ 'mask:', 'mask-border:', 'mask-border-mode:', 'mask-border-outset:', 'mask-border-repeat:', 'mask-border-slice:',
+ 'mask-border-source:', 'mask-border-width:', 'mask-clip:', 'mask-composite:', 'mask-image:', 'mask-mode:',
+ 'mask-origin:', 'mask-position:', 'mask-repeat:', 'mask-size:', 'mask-type:', 'masonry-auto-flow:', 'math-depth:',
+ 'math-shift:', 'math-style:', 'matrix', 'matrix3d', 'max', 'max-block-size:', 'max-height:', 'max-inline-size:',
+ 'max-lines:', 'max-width:', 'max-zoom:', 'min', 'min-block-size:', 'min-height:', 'min-inline-size:', 'min-width:',
+ 'min-zoom:', 'minmax', 'mix-blend-mode:', 'mod', 'negative:', 'object-fit:', 'object-position:', 'offset:',
+ 'offset-anchor:', 'offset-distance:', 'offset-path:', 'offset-position:', 'offset-rotate:', 'opacity', 'order:',
+ 'orientation:', 'ornaments', 'orphans:', 'outline:', 'outline-color:', 'outline-offset:', 'outline-style:',
+ 'outline-width:', 'overflow:', 'overflow-anchor:', 'overflow-block:', 'overflow-clip-margin:', 'overflow-inline:',
+ 'overflow-wrap:', 'overflow-x:', 'overflow-y:', 'overscroll-behavior:', 'overscroll-behavior-block:',
+ 'overscroll-behavior-inline:', 'overscroll-behavior-x:', 'overscroll-behavior-y:', 'pad:', 'padding:',
+ 'padding-block:', 'padding-block-end:', 'padding-block-start:', 'padding-bottom:', 'padding-inline:',
+ 'padding-inline-end:', 'padding-inline-start:', 'padding-left:', 'padding-right:', 'padding-top:', 'page-break-after:',
+ 'page-break-before:', 'page-break-inside:', 'paint', 'paint-order:', 'path', 'perspective', 'perspective-origin:',
+ 'place-content:', 'place-items:', 'place-self:', 'pointer-events:', 'polygon', 'position:', 'pow', 'prefix:',
+ 'print-color-adjust:', 'quotes:', 'radial-gradient', 'range:', 'rect', 'rem', 'repeat', 'repeating-conic-gradient',
+ 'repeating-linear-gradient', 'repeating-radial-gradient', 'resize:', 'reversed', 'rgb', 'rgba', 'rotate', 'rotate3d',
+ 'rotateX', 'rotateY', 'rotateZ', 'row-gap:', 'ruby-align:', 'ruby-merge:', 'ruby-position:', 'saturate', 'scale',
+ 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'scroll', 'scroll-behavior:', 'scroll-margin:', 'scroll-margin-block:',
+ 'scroll-margin-block-end:', 'scroll-margin-block-start:', 'scroll-margin-bottom:', 'scroll-margin-inline:',
+ 'scroll-margin-inline-end:', 'scroll-margin-inline-start:', 'scroll-margin-left:', 'scroll-margin-right:',
+ 'scroll-margin-top:', 'scroll-padding:', 'scroll-padding-block:', 'scroll-padding-block-end:',
+ 'scroll-padding-block-start:', 'scroll-padding-bottom:', 'scroll-padding-inline:', 'scroll-padding-inline-end:',
+ 'scroll-padding-inline-start:', 'scroll-padding-left:', 'scroll-padding-right:', 'scroll-padding-top:',
+ 'scroll-snap-align:', 'scroll-snap-stop:', 'scroll-snap-type:', 'scroll-timeline:', 'scroll-timeline-axis:',
+ 'scroll-timeline-name:', 'scrollbar-color:', 'scrollbar-gutter:', 'scrollbar-width:', 'selector', 'sepia',
+ 'shape-image-threshold:', 'shape-margin:', 'shape-outside:', 'sign', 'sin', 'size:', 'size-adjust:', 'skew', 'skewX',
+ 'skewY', 'speak-as:', 'sqrt', 'src:', 'steps', 'styleset', 'stylistic', 'suffix:', 'supports', 'swash', 'symbols',
+ 'syntax:', 'system:', 'tab-size:', 'table-layout:', 'tan', 'target-counter', 'target-counters', 'target-text',
+ 'text-align:', 'text-align-last:', 'text-combine-upright:', 'text-decoration:', 'text-decoration-color:',
+ 'text-decoration-line:', 'text-decoration-skip:', 'text-decoration-skip-ink:', 'text-decoration-style:',
+ 'text-decoration-thickness:', 'text-emphasis:', 'text-emphasis-color:', 'text-emphasis-position:',
+ 'text-emphasis-style:', 'text-indent:', 'text-justify:', 'text-orientation:', 'text-overflow:', 'text-rendering:',
+ 'text-shadow:', 'text-size-adjust:', 'text-transform:', 'text-underline-offset:', 'text-underline-position:',
+ 'touch-action:', 'transform:', 'transform-box:', 'transform-origin:', 'transform-style:', 'transition:',
+ 'transition-delay:', 'transition-duration:', 'transition-property:', 'transition-timing-function:', 'translate',
+ 'translate3d', 'translateX', 'translateY', 'translateZ', 'type', 'unicode-bidi:', 'unicode-range:', 'url',
+ 'user-select:', 'user-zoom:', 'var', 'vertical-align:', 'viewport-fit:', 'visibility:', 'white-space:', 'widows:',
+ 'width:', 'will-change:', 'word-break:', 'word-spacing:', 'word-wrap:', 'writing-mode:', 'z-index:', 'zoom:'
+]
+
+constants_css = [
+ 'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 'beige', 'bisque', 'black', 'blanchedalmond', 'blue',
+ 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk',
+ 'crimson', 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki',
+ 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen', 'darkslateblue',
+ 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey',
+ 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'fuchsia', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod',
+ 'gray', 'green', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory', 'khaki', 'lavender',
+ 'lavenderblush', 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow',
+ 'lightgray', 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray',
+ 'lightslategrey', 'lightsteelblue', 'lightyellow', 'lime', 'limegreen', 'linen', 'magenta', 'maroon',
+ 'mediumaquamarine', 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen', 'mediumslateblue',
+ 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin',
+ 'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab', 'orange', 'orangered', 'orchid', 'palegoldenrod', 'palegreen',
+ 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'purple', 'red',
+ 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna', 'silver', 'skyblue',
+ 'slateblue', 'slategray', 'slategrey', 'snow', 'springgreen', 'steelblue', 'teal', 'thistle', 'tomato',
+ 'turquoise', 'violet', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen',
+ 'above', 'absolute', 'active', 'add', 'additive', 'after-edge', 'alias', 'all-petite-caps', 'all-scroll',
+ 'all-small-caps', 'alpha', 'alphabetic', 'alternate', 'alternate-reverse', 'always', 'antialiased', 'auto', 'auto-pos',
+ 'available', 'avoid', 'avoid-column', 'avoid-page', 'avoid-region', 'backwards', 'balance', 'baseline', 'before-edge',
+ 'below', 'bevel', 'bidi-override', 'blink', 'block', 'block-axis', 'block-start', 'block-end', 'bold', 'bolder',
+ 'border-box', 'both', 'bottom', 'bottom-outside', 'break-all', 'break-word', 'bullets', 'butt', 'capitalize',
+ 'caption', 'cell', 'center', 'central', 'char', 'clone', 'close-quote', 'closest-corner',
+ 'closest-side', 'col-resize', 'collapse', 'color-burn', 'color-dodge', 'column', 'column-reverse',
+ 'common-ligatures', 'compact', 'condensed', 'content-box', 'contents', 'context-menu',
+ 'contextual', 'copy', 'cover', 'crisp-edges', 'crispEdges', 'crosshair', 'cyclic', 'dark', 'darken', 'dashed',
+ 'decimal', 'default', 'dense', 'diagonal-fractions', 'difference', 'digits', 'disabled', 'disc',
+ 'discretionary-ligatures', 'distribute', 'distribute-all-lines', 'distribute-letter', 'distribute-space', 'dot',
+ 'dotted', 'double', 'double-circle', 'downleft', 'downright', 'e-resize', 'each-line', 'ease', 'ease-in',
+ 'ease-in-out', 'ease-out', 'economy', 'ellipsis', 'embed', 'end', 'evenodd', 'ew-resize', 'exact',
+ 'exclude', 'exclusion', 'expanded', 'extends', 'extra-condensed', 'extra-expanded', 'farthest-corner',
+ 'farthest-side', 'fill', 'fill-available', 'fill-box', 'filled', 'fit-content', 'fixed', 'flat',
+ 'flip', 'flow-root', 'forwards', 'freeze', 'from-image', 'full-width', 'geometricPrecision', 'georgian',
+ 'grab', 'grabbing', 'groove', 'hand', 'hanging', 'hard-light', 'help', 'hidden', 'hide',
+ 'historical-forms', 'historical-ligatures', 'horizontal', 'horizontal-tb', 'hue', 'icon', 'ideograph-alpha',
+ 'ideograph-numeric', 'ideograph-parenthesis', 'ideograph-space', 'ideographic', 'inactive', 'infinite', 'inherit',
+ 'initial', 'inline', 'inline-axis', 'inline-block', 'inline-end', 'inline-flex', 'inline-grid', 'inline-list-item',
+ 'inline-start', 'inline-table', 'inside', 'inter-character', 'inter-ideograph', 'inter-word', 'intersect',
+ 'isolate', 'isolate-override', 'italic', 'jis04', 'jis78', 'jis83', 'jis90', 'justify', 'justify-all',
+ 'kannada', 'keep-all', 'landscape', 'large', 'larger', 'left', 'light', 'lighten', 'lighter', 'line', 'line-edge',
+ 'line-through', 'linear', 'linearRGB', 'lining-nums', 'list-item', 'loose', 'lowercase', 'lr', 'lr-tb', 'ltr',
+ 'luminance', 'luminosity', 'main-size', 'mandatory', 'manipulation', 'manual', 'margin-box', 'match-parent',
+ 'match-source', 'mathematical', 'max-content', 'medium', 'menu', 'message-box', 'middle', 'min-content', 'miter',
+ 'mixed', 'move', 'multiply', 'n-resize', 'narrower', 'ne-resize', 'nearest-neighbor', 'nesw-resize', 'newspaper',
+ 'no-change', 'no-clip', 'no-close-quote', 'no-common-ligatures', 'no-contextual', 'no-discretionary-ligatures',
+ 'no-drop', 'no-historical-ligatures', 'no-open-quote', 'no-repeat', 'none', 'nonzero', 'normal', 'not-allowed',
+ 'nowrap', 'ns-resize', 'numbers', 'numeric', 'nw-resize', 'nwse-resize', 'oblique', 'oldstyle-nums', 'open',
+ 'open-quote', 'optimizeLegibility', 'optimizeQuality', 'optimizeSpeed', 'optional', 'ordinal', 'outset', 'outside',
+ 'over', 'overlay', 'overline', 'page', 'painted', 'pan-down', 'pan-left', 'pan-right',
+ 'pan-up', 'pan-x', 'pan-y', 'paused', 'petite-caps', 'pixelated', 'plaintext', 'pointer', 'portrait', 'pre',
+ 'pre-line', 'pre-wrap', 'preserve-3d', 'progress', 'progressive', 'proportional-nums', 'proportional-width',
+ 'proximity', 'radial', 'recto', 'region', 'relative', 'remove', 'reset-size', 'reverse',
+ 'revert', 'ridge', 'right', 'rl', 'rl-tb', 'round', 'row', 'row-resize', 'row-reverse', 'row-severse', 'rtl', 'ruby',
+ 'ruby-base', 'ruby-base-container', 'ruby-text', 'ruby-text-container', 'run-in', 'running', 's-resize', 'saturation',
+ 'scale-down', 'screen', 'se-resize', 'semi-condensed', 'semi-expanded', 'separate',
+ 'sesame', 'show', 'sideways', 'sideways-left', 'sideways-lr', 'sideways-right', 'sideways-rl', 'simplified',
+ 'slashed-zero', 'slice', 'small', 'small-caps', 'small-caption', 'smaller', 'smooth', 'soft-light', 'solid', 'space',
+ 'space-around', 'space-between', 'space-evenly', 'spell-out', 'square', 'sRGB', 'stacked-fractions', 'start', 'static',
+ 'status-bar', 'swap', 'step-end', 'step-start', 'sticky', 'stretch', 'strict', 'stroke', 'stroke-box', 'style', 'sub',
+ 'subgrid', 'subpixel-antialiased', 'subtract', 'super', 'sw-resize', 'symbolic', 'table', 'table-caption',
+ 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row',
+ 'table-row-group', 'tabular-nums', 'tb', 'tb-rl', 'text', 'text-after-edge', 'text-before-edge', 'text-bottom',
+ 'text-top', 'thick', 'thin', 'titling-caps', 'top', 'top-outside', 'touch', 'traditional', 'transparent', 'triangle',
+ 'ultra-condensed', 'ultra-expanded', 'under', 'underline', 'unicase', 'unset', 'upleft', 'uppercase', 'upright',
+ 'use-glyph-orientation', 'use-script', 'verso', 'vertical', 'vertical-ideographic', 'vertical-lr', 'vertical-rl',
+ 'vertical-text', 'view-box', 'visible', 'visibleFill', 'visiblePainted', 'visibleStroke', 'w-resize', 'wait', 'wavy',
+ 'weight', 'whitespace', 'wider', 'words', 'wrap', 'wrap-reverse', 'x', 'x-large', 'x-small', 'xx-large', 'xx-small',
+ 'y', 'zero', 'zoom-in', 'zoom-out'
+]
+
+
file = open('keywords.h', 'w')
file.write('''// keywords for all languages ted supports
// This file was auto-generated by keywords.py
@@ -427,6 +596,8 @@ cant_overlap(keywords_c, constants_c, builtins_c)
cant_overlap(keywords_rust, builtins_rust, constants_rust)
cant_overlap(keywords_python, builtins_python)
cant_overlap(keywords_javascript, builtins_javascript, constants_javascript)
+cant_overlap(constants_css, builtins_css)
+cant_overlap(constants_glsl, builtins_glsl, keywords_glsl)
c_things = label(keywords_c, SYNTAX_KEYWORD) + label(constants_c, SYNTAX_CONSTANT) + label(builtins_c, SYNTAX_BUILTIN)
output_keywords(file, c_things, 'c')
cpp_things = c_things + label(keywords_cpp, SYNTAX_KEYWORD)
@@ -447,4 +618,5 @@ output_keywords(file, label(builtins_html, SYNTAX_BUILTIN), 'html')
output_keywords(file, label(constants_config, SYNTAX_CONSTANT), 'config')
output_keywords(file, label(keywords_glsl, SYNTAX_KEYWORD) + label(constants_glsl, SYNTAX_CONSTANT)
+ label(builtins_glsl, SYNTAX_BUILTIN), 'glsl')
+output_keywords(file, label(builtins_css, SYNTAX_BUILTIN) + label(constants_css, SYNTAX_CONSTANT), 'css')
file.close()
diff --git a/main.c b/main.c
index c5c263a..80fe636 100644
--- a/main.c
+++ b/main.c
@@ -1,24 +1,28 @@
/*
+@TODO:
+- CSS [a=b] selectors
+ - other CSS things?
+- preserve permissions on save
FUTURE FEATURES:
-- manual.md
- CSS highlighting
- option for separate colors for read/write highlights
- styles ([color] sections)
- for this, it would be nice to have #include in ted.cfg
+- open multiple files with command line arguments
+- better undo chaining (dechain on backspace?)
+- manual.md
+- regenerate tags for completion too if there are no results
- make go-to-definition/hover/highlight modifier key configurable
- font setting & support for multiple fonts to cover more characters
- support for variable-width fonts
- robust find (results shouldn't move around when you type things)
-- open multiple files with command line arguments
- document links using LSP textDocument/documentLink request
- rename using LSP (textDocument/rename)
- we have request writing & response parsing support for it, but that hasn't been tested yet
- i'm putting this off for now since it seems hard to have undo support for it.
- possible idea: open all files altered, and create undo chains for each of them.
if there are too many files, give an error like "use a different tool for this"
-- better undo chaining (dechain on backspace?)
- allow multiple fonts (fonts directory?)
-- regenerate tags for completion too if there are no results
- config variables
- bind key to multiple commands
- plugins?
diff --git a/syntax.c b/syntax.c
index 7a2dc3a..b412ea7 100644
--- a/syntax.c
+++ b/syntax.c
@@ -65,6 +65,11 @@ enum {
SYNTAX_STATE_TED_CFG_STRING_BACKTICK = 0x02u, // `-delimited string
};
+enum {
+ SYNTAX_STATE_CSS_COMMENT = 0x01u,
+ SYNTAX_STATE_CSS_IN_BRACES = 0x02u,
+};
+
typedef struct {
Language lang;
char *name;
@@ -193,6 +198,10 @@ static bool syntax_number_continues(Language lang, const char32_t *line, u32 lin
return false;
}
}
+ if (lang == LANG_CSS && line[i] < 128 && isalpha((char)line[i])) {
+ // units
+ return true;
+ }
return (line[i] < CHAR_MAX &&
(strchr(SYNTAX_DIGITS, (char)line[i])
|| (i && line[i-1] == 'e' && (line[i] == '+' || line[i] == '-'))));
@@ -207,6 +216,10 @@ static bool is_keyword(Language lang, char32_t c) {
if (c == '!')
return true;
break;
+ case LANG_CSS:
+ if (c == '-' || c == '@' || c == ':')
+ return true;
+ break;
case LANG_HTML:
case LANG_XML:
if (c == '-' || c == '=')
@@ -1680,6 +1693,115 @@ static void syntax_highlight_text(SyntaxState *state, const char32_t *line, u32
}
}
+static void syntax_highlight_css(SyntaxState *state_ptr, const char32_t *line, u32 line_len, SyntaxCharType *char_types) {
+ SyntaxState state = *state_ptr;
+ bool in_comment = (state & SYNTAX_STATE_CSS_COMMENT) != 0;
+ bool in_braces = (state & SYNTAX_STATE_CSS_IN_BRACES) != 0;
+
+ for (u32 i = 0; i < line_len; ++i) {
+ bool has_1_char = i + 1 < line_len;
+ bool dealt_with = false;
+ char32_t c = line[i];
+
+ if (in_comment) {
+ if (c == '/' && i > 0 && line[i - 1] == '*') {
+ in_comment = false;
+ if (char_types) char_types[i] = SYNTAX_COMMENT;
+ dealt_with = true;
+ }
+ } else switch (c) {
+ case '/':
+ if (has_1_char) {
+ if (line[i + 1] == '*') {
+ in_comment = true; // /*
+ }
+ }
+ break;
+ case '{':
+ in_braces = true;
+ break;
+ case '}':
+ in_braces = false;
+ break;
+ case '.':
+ case '#':
+ if (!in_braces && char_types) {
+ char_types[i] = SYNTAX_KEYWORD;
+ for (++i; i < line_len; ++i) {
+ if (is32_alnum(line[i]) || line[i] == '-' || line[i] == '_') {
+ char_types[i] = SYNTAX_KEYWORD;
+ } else {
+ break;
+ }
+ }
+ --i; // we will increment i in the loop
+ dealt_with = true;
+ }
+ if (c == '#' && in_braces && char_types) {
+ // color which we'll treat as a number.
+ goto number;
+ }
+ break;
+ case ANY_DIGIT:
+ number: {
+ // a number!
+ bool number = false;
+ if (char_types) {
+ number = true;
+ if (i) {
+ if (line[i - 1] == '.') {
+ // support .6, for example
+ char_types[i - 1] = SYNTAX_CONSTANT;
+ } else if (is32_word(line[i - 1])) {
+ // actually, this isn't a number. it's something like a*6* or u3*2*.
+ number = false;
+ }
+ }
+ }
+ if (number) {
+ char_types[i++] = SYNTAX_CONSTANT;
+ while (syntax_number_continues(LANG_CSS, line, line_len, i)) {
+ char_types[i] = SYNTAX_CONSTANT;
+ ++i;
+ }
+ --i; // we will increment i in the loop
+ dealt_with = true;
+ }
+ } break;
+ default: {
+ if ((i && is_keyword(LANG_CSS, line[i - 1])) || !is_keyword(LANG_CSS, c) || is32_digit(c))
+ break; // can't be a keyword on its own.
+
+ if (in_braces && char_types) {
+ u32 keyword_len = syntax_keyword_len(LANG_CSS, line, i, line_len);
+ Keyword const *keyword = syntax_keyword_lookup(syntax_all_keywords_css, &line[i], keyword_len);
+
+ if (keyword) {
+ SyntaxCharType type = keyword->type;
+ for (size_t j = 0; j < keyword_len; ++j) {
+ char_types[i++] = type;
+ }
+ --i; // we'll increment i from the for loop
+ dealt_with = true;
+ break;
+ }
+ }
+ } break;
+ }
+ if (char_types && !dealt_with) {
+ SyntaxCharType type = SYNTAX_NORMAL;
+ if (in_comment)
+ type = SYNTAX_COMMENT;
+ char_types[i] = type;
+ }
+ }
+ *state_ptr = (SyntaxState)(
+ (in_comment * SYNTAX_STATE_CSS_COMMENT)
+ | (in_braces * SYNTAX_STATE_CSS_IN_BRACES)
+ );
+}
+
+
typedef struct {
Language lang;
SyntaxHighlightFunction func;
@@ -1831,6 +1953,12 @@ void syntax_register_builtin_languages(void) {
.lsp_identifier = "glsl",
.highlighter = syntax_highlight_html,
},
+ {
+ .id = LANG_CSS,
+ .name = "CSS",
+ .lsp_identifier = "css",
+ .highlighter = syntax_highlight_css
+ },
};
for (size_t i = 0; i < arr_count(builtins); ++i) {
@@ -1838,7 +1966,6 @@ void syntax_register_builtin_languages(void) {
}
}
-
void syntax_register_language(const LanguageInfo *info) {
if (!info->id || info->id > LANG_USER_MAX) {
debug_println("Bad language ID: %" PRIu32, info->id);
diff --git a/ted.cfg b/ted.cfg
index 3304ecb..6bf60d3 100644
--- a/ted.cfg
+++ b/ted.cfg
@@ -171,6 +171,9 @@ comment-end = " -->"
comment-start = "<!-- "
comment-end = " -->"
+[CSS.core]
+comment-start = "/* "
+comment-end = " */"
# phantom completions are just annoying if you're not actually programming
[Markdown.core]
@@ -438,6 +441,7 @@ TypeScript = .ts
JSON = .json
Java = .java
Go = .go
+CSS = .css
# You can add language-specific settings like this:
# [HTML.core]
diff --git a/ted.h b/ted.h
index d1f758e..5990a58 100644
--- a/ted.h
+++ b/ted.h
@@ -82,6 +82,8 @@ enum {
LANG_GLSL = 16,
/// plain text
LANG_TEXT = 17,
+ /// CSS
+ LANG_CSS = 18,
/// all user-defined languages are greater than this.
LANG_USER_MIN = 100000,