summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--buffer.c8
-rw-r--r--colors.c1
-rw-r--r--colors.h1
-rw-r--r--keywords.h58
-rwxr-xr-xkeywords.py8
-rw-r--r--main.c31
-rw-r--r--styles/classic-light.ted.cfg50
-rw-r--r--styles/classic.ted.cfg73
-rw-r--r--syntax.c2
-rw-r--r--ted.c5
-rw-r--r--ted.cfg80
-rw-r--r--util.c14
-rw-r--r--util.h6
13 files changed, 200 insertions, 137 deletions
diff --git a/buffer.c b/buffer.c
index 12295e7..fadeb59 100644
--- a/buffer.c
+++ b/buffer.c
@@ -229,14 +229,12 @@ Language buffer_language(TextBuffer *buffer) {
return (Language)buffer->manual_language;
const Settings *settings = buffer->ted->default_settings; // important we don't use buffer_settings here since that would cause a loop!
const char *filename = path_filename(buffer->path);
- size_t filename_len = strlen(filename);
int match_score = 0;
Language match = LANG_TEXT;
arr_foreach_ptr(settings->language_extensions, LanguageExtension, ext) {
- size_t len = strlen(ext->extension);
- if (filename_len >= len && memcmp(&filename[filename_len - len], ext->extension, len) == 0) {
- int score = (int)len;
+ if (str_has_suffix(filename, ext->extension)) {
+ int score = (int)strlen(ext->extension);
if (score > match_score) {
// found a better match!
match_score = score;
@@ -2542,7 +2540,7 @@ bool buffer_save(TextBuffer *buffer) {
buffer->last_write_time = timespec_to_seconds(time_last_modified(buffer->path));
if (success) {
buffer->undo_history_write_pos = arr_len(buffer->undo_history);
- if (buffer->path && streq(path_filename(buffer->path), TED_CFG)
+ if (buffer->path && str_has_suffix(path_filename(buffer->path), "ted.cfg")
&& buffer_settings(buffer)->auto_reload_config) {
ted_load_configs(buffer->ted, true);
}
diff --git a/colors.c b/colors.c
index 3b4793f..1a3f649 100644
--- a/colors.c
+++ b/colors.c
@@ -12,7 +12,6 @@ static ColorName color_names[] = {
{COLOR_TEXT, "text"},
{COLOR_TEXT_SECONDARY, "text-secondary"},
{COLOR_BG, "bg"},
- {COLOR_HL, "hl"},
{COLOR_CURSOR, "cursor"},
{COLOR_CURSOR_ERROR, "cursor-error"},
{COLOR_CURSOR_LINE_BG, "cursor-line-bg"},
diff --git a/colors.h b/colors.h
index 66a4c75..eda97af 100644
--- a/colors.h
+++ b/colors.h
@@ -13,7 +13,6 @@ typedef enum {
COLOR_TEXT,
COLOR_TEXT_SECONDARY,
COLOR_BG,
- COLOR_HL,
COLOR_CURSOR,
COLOR_CURSOR_ERROR,
COLOR_CURSOR_LINE_BG,
diff --git a/keywords.h b/keywords.h
index 3010dcc..ea05647 100644
--- a/keywords.h
+++ b/keywords.h
@@ -14,7 +14,7 @@ static const Keyword syntax_keywords_c_B[1] = {{"BUFSIZ", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_c_C[4] = {{"CHAR_BIT", SYNTAX_CONSTANT},{"CHAR_MAX", SYNTAX_CONSTANT},{"CHAR_MIN", SYNTAX_CONSTANT},{"CLOCKS_PER_SEC", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_c_D[11] = {{"DBL_DIG", SYNTAX_CONSTANT},{"DBL_EPSILON", SYNTAX_CONSTANT},{"DBL_HAS_SUBNORM", SYNTAX_CONSTANT},{"DBL_MANT_DIG", SYNTAX_CONSTANT},{"DBL_MAX", SYNTAX_CONSTANT},{"DBL_MAX_10_EXP", SYNTAX_CONSTANT},{"DBL_MAX_EXP", SYNTAX_CONSTANT},{"DBL_MIN", SYNTAX_CONSTANT},{"DBL_MIN_EXP", SYNTAX_CONSTANT},{"DBL_TRUE_MIN", SYNTAX_CONSTANT},{"DECIMAL_DIG", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_c_E[127] = {{"E2BIG", SYNTAX_CONSTANT},{"EACCES", SYNTAX_CONSTANT},{"EADDRINUSE", SYNTAX_CONSTANT},{"EADDRNOTAVAIL", SYNTAX_CONSTANT},{"EADV", SYNTAX_CONSTANT},{"EAFNOSUPPORT", SYNTAX_CONSTANT},{"EAGAIN", SYNTAX_CONSTANT},{"EALREADY", SYNTAX_CONSTANT},{"EBADE", SYNTAX_CONSTANT},{"EBADF", SYNTAX_CONSTANT},{"EBADFD", SYNTAX_CONSTANT},{"EBADMSG", SYNTAX_CONSTANT},{"EBADR", SYNTAX_CONSTANT},{"EBADRQC", SYNTAX_CONSTANT},{"EBADSLT", SYNTAX_CONSTANT},{"EBFONT", SYNTAX_CONSTANT},{"EBUSY", SYNTAX_CONSTANT},{"ECHILD", SYNTAX_CONSTANT},{"ECHRNG", SYNTAX_CONSTANT},{"ECOMM", SYNTAX_CONSTANT},{"ECONNABORTED", SYNTAX_CONSTANT},{"ECONNREFUSED", SYNTAX_CONSTANT},{"ECONNRESET", SYNTAX_CONSTANT},{"EDEADLK", SYNTAX_CONSTANT},{"EDEADLOCK", SYNTAX_CONSTANT},{"EDESTADDRREQ", SYNTAX_CONSTANT},{"EDOM", SYNTAX_CONSTANT},{"EDOTDOT", SYNTAX_CONSTANT},{"EDQUOT", SYNTAX_CONSTANT},{"EEXIST", SYNTAX_CONSTANT},{"EFAULT", SYNTAX_CONSTANT},{"EFBIG", SYNTAX_CONSTANT},{"EHOSTDOWN", SYNTAX_CONSTANT},{"EHOSTUNREACH", SYNTAX_CONSTANT},{"EIDRM", SYNTAX_CONSTANT},{"EILSEQ", SYNTAX_CONSTANT},{"EINPROGRESS", SYNTAX_CONSTANT},{"EINTR", SYNTAX_CONSTANT},{"EINVAL", SYNTAX_CONSTANT},{"EIO", SYNTAX_CONSTANT},{"EISCONN", SYNTAX_CONSTANT},{"EISDIR", SYNTAX_CONSTANT},{"EISNAM", SYNTAX_CONSTANT},{"EL2HLT", SYNTAX_CONSTANT},{"EL2NSYNC", SYNTAX_CONSTANT},{"EL3HLT", SYNTAX_CONSTANT},{"EL3RST", SYNTAX_CONSTANT},{"ELIBACC", SYNTAX_CONSTANT},{"ELIBBAD", SYNTAX_CONSTANT},{"ELIBEXEC", SYNTAX_CONSTANT},{"ELIBMAX", SYNTAX_CONSTANT},{"ELIBSCN", SYNTAX_CONSTANT},{"ELNRNG", SYNTAX_CONSTANT},{"ELOOP", SYNTAX_CONSTANT},{"EMEDIUMTYPE", SYNTAX_CONSTANT},{"EMFILE", SYNTAX_CONSTANT},{"EMLINK", SYNTAX_CONSTANT},{"EMSGSIZE", SYNTAX_CONSTANT},{"EMULTIHOP", SYNTAX_CONSTANT},{"ENAMETOOLONG", SYNTAX_CONSTANT},{"ENAVAIL", SYNTAX_CONSTANT},{"ENETDOWN", SYNTAX_CONSTANT},{"ENETRESET", SYNTAX_CONSTANT},{"ENETUNREACH", SYNTAX_CONSTANT},{"ENFILE", SYNTAX_CONSTANT},{"ENOANO", SYNTAX_CONSTANT},{"ENOBUFS", SYNTAX_CONSTANT},{"ENOCSI", SYNTAX_CONSTANT},{"ENODATA", SYNTAX_CONSTANT},{"ENODEV", SYNTAX_CONSTANT},{"ENOENT", SYNTAX_CONSTANT},{"ENOEXEC", SYNTAX_CONSTANT},{"ENOLCK", SYNTAX_CONSTANT},{"ENOLINK", SYNTAX_CONSTANT},{"ENOMEDIUM", SYNTAX_CONSTANT},{"ENOMEM", SYNTAX_CONSTANT},{"ENOMSG", SYNTAX_CONSTANT},{"ENONET", SYNTAX_CONSTANT},{"ENOPKG", SYNTAX_CONSTANT},{"ENOPROTOOPT", SYNTAX_CONSTANT},{"ENOSPC", SYNTAX_CONSTANT},{"ENOSR", SYNTAX_CONSTANT},{"ENOSTR", SYNTAX_CONSTANT},{"ENOSYS", SYNTAX_CONSTANT},{"ENOTBLK", SYNTAX_CONSTANT},{"ENOTCONN", SYNTAX_CONSTANT},{"ENOTDIR", SYNTAX_CONSTANT},{"ENOTEMPTY", SYNTAX_CONSTANT},{"ENOTNAM", SYNTAX_CONSTANT},{"ENOTSOCK", SYNTAX_CONSTANT},{"ENOTTY", SYNTAX_CONSTANT},{"ENOTUNIQ", SYNTAX_CONSTANT},{"ENXIO", SYNTAX_CONSTANT},{"EOF", SYNTAX_CONSTANT},{"EOPNOTSUPP", SYNTAX_CONSTANT},{"EOVERFLOW", SYNTAX_CONSTANT},{"EPERM", SYNTAX_CONSTANT},{"EPFNOSUPPORT", SYNTAX_CONSTANT},{"EPIPE", SYNTAX_CONSTANT},{"EPROTO", SYNTAX_CONSTANT},{"EPROTONOSUPPORT", SYNTAX_CONSTANT},{"EPROTOTYPE", SYNTAX_CONSTANT},{"ERANGE", SYNTAX_CONSTANT},{"EREMCHG", SYNTAX_CONSTANT},{"EREMOTE", SYNTAX_CONSTANT},{"EREMOTEIO", SYNTAX_CONSTANT},{"ERESTART", SYNTAX_CONSTANT},{"EROFS", SYNTAX_CONSTANT},{"ESHUTDOWN", SYNTAX_CONSTANT},{"ESOCKTNOSUPPORT", SYNTAX_CONSTANT},{"ESPIPE", SYNTAX_CONSTANT},{"ESRCH", SYNTAX_CONSTANT},{"ESRMNT", SYNTAX_CONSTANT},{"ESTALE", SYNTAX_CONSTANT},{"ESTRPIPE", SYNTAX_CONSTANT},{"ETIME", SYNTAX_CONSTANT},{"ETIMEDOUT", SYNTAX_CONSTANT},{"ETOOMANYREFS", SYNTAX_CONSTANT},{"ETXTBSY", SYNTAX_CONSTANT},{"EUCLEAN", SYNTAX_CONSTANT},{"EUNATCH", SYNTAX_CONSTANT},{"EUSERS", SYNTAX_CONSTANT},{"EWOULDBLOCK", SYNTAX_CONSTANT},{"EXDEV", SYNTAX_CONSTANT},{"EXFULL", SYNTAX_CONSTANT},{"EXIT_FAILURE", SYNTAX_CONSTANT},{"EXIT_SUCCESS", SYNTAX_CONSTANT}};
-static const Keyword syntax_keywords_c_F[38] = {{"FE_ALL_EXCEPT", SYNTAX_CONSTANT},{"FE_DFL_ENV", SYNTAX_CONSTANT},{"FE_DIVBYZERO", SYNTAX_CONSTANT},{"FE_DOWNWARD", SYNTAX_CONSTANT},{"FE_INEXACT", SYNTAX_CONSTANT},{"FE_INVALID", SYNTAX_CONSTANT},{"FE_OVERFLOW", SYNTAX_CONSTANT},{"FE_TONEAREST", SYNTAX_CONSTANT},{"FE_TOWARDZERO", SYNTAX_CONSTANT},{"FE_UNDERFLOW", SYNTAX_CONSTANT},{"FE_UPWARD", SYNTAX_CONSTANT},{"FILE", SYNTAX_CONSTANT},{"FILENAME_MAX", SYNTAX_CONSTANT},{"FLT_DECIMAL_DIG", SYNTAX_CONSTANT},{"FLT_DIG", SYNTAX_CONSTANT},{"FLT_EVAL_METHOD", SYNTAX_CONSTANT},{"FLT_HAS_SUBNORM", SYNTAX_CONSTANT},{"FLT_MANT_DIG", SYNTAX_CONSTANT},{"FLT_MAX", SYNTAX_CONSTANT},{"FLT_MAX_10_EXP", SYNTAX_CONSTANT},{"FLT_MAX_EXP", SYNTAX_CONSTANT},{"FLT_MIN", SYNTAX_CONSTANT},{"FLT_MIN_10_EXP", SYNTAX_CONSTANT},{"FLT_MIN_EXP", SYNTAX_CONSTANT},{"FLT_RADIX", SYNTAX_CONSTANT},{"FLT_ROUNDS", SYNTAX_CONSTANT},{"FLT_TRUE_MIN", SYNTAX_CONSTANT},{"FOPEN_MAX", SYNTAX_CONSTANT},{"FP_FAST_FMA", SYNTAX_CONSTANT},{"FP_FAST_FMAF", SYNTAX_CONSTANT},{"FP_FAST_FMAL", SYNTAX_CONSTANT},{"FP_ILOGB0", SYNTAX_CONSTANT},{"FP_ILOGBNAN", SYNTAX_CONSTANT},{"FP_INFINITE", SYNTAX_CONSTANT},{"FP_NAN", SYNTAX_CONSTANT},{"FP_NORMAL", SYNTAX_CONSTANT},{"FP_SUBNORMAL", SYNTAX_CONSTANT},{"FP_ZERO", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_c_F[38] = {{"FE_ALL_EXCEPT", SYNTAX_CONSTANT},{"FE_DFL_ENV", SYNTAX_CONSTANT},{"FE_DIVBYZERO", SYNTAX_CONSTANT},{"FE_DOWNWARD", SYNTAX_CONSTANT},{"FE_INEXACT", SYNTAX_CONSTANT},{"FE_INVALID", SYNTAX_CONSTANT},{"FE_OVERFLOW", SYNTAX_CONSTANT},{"FE_TONEAREST", SYNTAX_CONSTANT},{"FE_TOWARDZERO", SYNTAX_CONSTANT},{"FE_UNDERFLOW", SYNTAX_CONSTANT},{"FE_UPWARD", SYNTAX_CONSTANT},{"FILE", SYNTAX_BUILTIN},{"FILENAME_MAX", SYNTAX_CONSTANT},{"FLT_DECIMAL_DIG", SYNTAX_CONSTANT},{"FLT_DIG", SYNTAX_CONSTANT},{"FLT_EVAL_METHOD", SYNTAX_CONSTANT},{"FLT_HAS_SUBNORM", SYNTAX_CONSTANT},{"FLT_MANT_DIG", SYNTAX_CONSTANT},{"FLT_MAX", SYNTAX_CONSTANT},{"FLT_MAX_10_EXP", SYNTAX_CONSTANT},{"FLT_MAX_EXP", SYNTAX_CONSTANT},{"FLT_MIN", SYNTAX_CONSTANT},{"FLT_MIN_10_EXP", SYNTAX_CONSTANT},{"FLT_MIN_EXP", SYNTAX_CONSTANT},{"FLT_RADIX", SYNTAX_CONSTANT},{"FLT_ROUNDS", SYNTAX_CONSTANT},{"FLT_TRUE_MIN", SYNTAX_CONSTANT},{"FOPEN_MAX", SYNTAX_CONSTANT},{"FP_FAST_FMA", SYNTAX_CONSTANT},{"FP_FAST_FMAF", SYNTAX_CONSTANT},{"FP_FAST_FMAL", SYNTAX_CONSTANT},{"FP_ILOGB0", SYNTAX_CONSTANT},{"FP_ILOGBNAN", SYNTAX_CONSTANT},{"FP_INFINITE", SYNTAX_CONSTANT},{"FP_NAN", SYNTAX_CONSTANT},{"FP_NORMAL", SYNTAX_CONSTANT},{"FP_SUBNORMAL", SYNTAX_CONSTANT},{"FP_ZERO", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_c_H[3] = {{"HUGE_VAL", SYNTAX_CONSTANT},{"HUGE_VALF", SYNTAX_CONSTANT},{"HUGE_VALL", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_c_I[32] = {{"I", SYNTAX_CONSTANT},{"INFINITY", SYNTAX_CONSTANT},{"INT16_MAX", SYNTAX_CONSTANT},{"INT16_MIN", SYNTAX_CONSTANT},{"INT32_MAX", SYNTAX_CONSTANT},{"INT32_MIN", SYNTAX_CONSTANT},{"INT64_MAX", SYNTAX_CONSTANT},{"INT64_MIN", SYNTAX_CONSTANT},{"INT8_MAX", SYNTAX_CONSTANT},{"INT8_MIN", SYNTAX_CONSTANT},{"INTMAX_MAX", SYNTAX_CONSTANT},{"INTMAX_MIN", SYNTAX_CONSTANT},{"INTPTR_MAX", SYNTAX_CONSTANT},{"INTPTR_MIN", SYNTAX_CONSTANT},{"INT_FAST16_MAX", SYNTAX_CONSTANT},{"INT_FAST16_MIN", SYNTAX_CONSTANT},{"INT_FAST32_MAX", SYNTAX_CONSTANT},{"INT_FAST32_MIN", SYNTAX_CONSTANT},{"INT_FAST64_MAX", SYNTAX_CONSTANT},{"INT_FAST64_MIN", SYNTAX_CONSTANT},{"INT_FAST8_MAX", SYNTAX_CONSTANT},{"INT_FAST8_MIN", SYNTAX_CONSTANT},{"INT_LEAST16_MAX", SYNTAX_CONSTANT},{"INT_LEAST16_MIN", SYNTAX_CONSTANT},{"INT_LEAST32_MAX", SYNTAX_CONSTANT},{"INT_LEAST32_MIN", SYNTAX_CONSTANT},{"INT_LEAST64_MAX", SYNTAX_CONSTANT},{"INT_LEAST64_MIN", SYNTAX_CONSTANT},{"INT_LEAST8_MAX", SYNTAX_CONSTANT},{"INT_LEAST8_MIN", SYNTAX_CONSTANT},{"INT_MAX", SYNTAX_CONSTANT},{"INT_MIN", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_c_L[22] = {{"LC_ALL", SYNTAX_CONSTANT},{"LC_COLLATE", SYNTAX_CONSTANT},{"LC_CTYPE", SYNTAX_CONSTANT},{"LC_MONETARY", SYNTAX_CONSTANT},{"LC_NUMERIC", SYNTAX_CONSTANT},{"LC_TIME", SYNTAX_CONSTANT},{"LDBL_DECIMAL_DIG", SYNTAX_CONSTANT},{"LDBL_DIG", SYNTAX_CONSTANT},{"LDBL_EPSILON", SYNTAX_CONSTANT},{"LDBL_MANT_DIG", SYNTAX_CONSTANT},{"LDBL_MAX", SYNTAX_CONSTANT},{"LDBL_MAX_10_EXP", SYNTAX_CONSTANT},{"LDBL_MAX_EXP", SYNTAX_CONSTANT},{"LDBL_MIN", SYNTAX_CONSTANT},{"LDBL_MIN_10_EXP", SYNTAX_CONSTANT},{"LDBL_MIN_EXP", SYNTAX_CONSTANT},{"LDBL_TRUE_MIN", SYNTAX_CONSTANT},{"LLONG_MAX", SYNTAX_CONSTANT},{"LLONG_MIN", SYNTAX_CONSTANT},{"LONG_MAX", SYNTAX_CONSTANT},{"LONG_MIN", SYNTAX_CONSTANT},{"L_tmpnam", SYNTAX_CONSTANT}};
@@ -29,28 +29,29 @@ static const Keyword syntax_keywords_c_U[19] = {{"UCHAR_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_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}};
-static const Keyword syntax_keywords_c_d[5] = {{"default", SYNTAX_KEYWORD},{"div_t", SYNTAX_BUILTIN},{"do", SYNTAX_KEYWORD},{"double", SYNTAX_KEYWORD},{"double_t", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_c_b[5] = {{"blkcnt64_t", SYNTAX_BUILTIN},{"blkcnt_t", SYNTAX_BUILTIN},{"blksize_t", SYNTAX_BUILTIN},{"bool", SYNTAX_BUILTIN},{"break", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_c_c[12] = {{"caddr_t", SYNTAX_BUILTIN},{"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}};
+static const Keyword syntax_keywords_c_d[7] = {{"daddr_t", SYNTAX_BUILTIN},{"default", SYNTAX_KEYWORD},{"dev_t", SYNTAX_BUILTIN},{"div_t", SYNTAX_BUILTIN},{"do", SYNTAX_KEYWORD},{"double", SYNTAX_KEYWORD},{"double_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_c_e[4] = {{"else", SYNTAX_KEYWORD},{"enum", SYNTAX_KEYWORD},{"errno_t", SYNTAX_BUILTIN},{"extern", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_c_f[7] = {{"false", SYNTAX_CONSTANT},{"fenv_t", SYNTAX_BUILTIN},{"fexcept_t", SYNTAX_BUILTIN},{"float", SYNTAX_KEYWORD},{"float_t", SYNTAX_BUILTIN},{"for", SYNTAX_KEYWORD},{"fpos_t", SYNTAX_CONSTANT}};
-static const Keyword syntax_keywords_c_g[1] = {{"goto", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_c_i[18] = {{"if", SYNTAX_KEYWORD},{"imaxdiv_t", SYNTAX_BUILTIN},{"inline", SYNTAX_KEYWORD},{"int", SYNTAX_KEYWORD},{"int16_t", SYNTAX_BUILTIN},{"int32_t", SYNTAX_BUILTIN},{"int64_t", SYNTAX_BUILTIN},{"int8_t", SYNTAX_BUILTIN},{"int_fast16_t", SYNTAX_BUILTIN},{"int_fast32_t", SYNTAX_BUILTIN},{"int_fast64_t", SYNTAX_BUILTIN},{"int_fast8_t", SYNTAX_BUILTIN},{"int_least16_t", SYNTAX_BUILTIN},{"int_least32_t", SYNTAX_BUILTIN},{"int_least64_t", SYNTAX_BUILTIN},{"int_least8_t", SYNTAX_BUILTIN},{"intmax_t", SYNTAX_BUILTIN},{"intptr_t", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_c_f[11] = {{"false", SYNTAX_CONSTANT},{"fenv_t", SYNTAX_BUILTIN},{"fexcept_t", SYNTAX_BUILTIN},{"float", SYNTAX_KEYWORD},{"float_t", SYNTAX_BUILTIN},{"for", SYNTAX_KEYWORD},{"fpos_t", SYNTAX_BUILTIN},{"fsblkcnt64_t", SYNTAX_BUILTIN},{"fsblkcnt_t", SYNTAX_BUILTIN},{"fsfilcnt64_t", SYNTAX_BUILTIN},{"fsfilcnt_t", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_c_g[2] = {{"gid_t", SYNTAX_BUILTIN},{"goto", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_c_i[20] = {{"id_t", SYNTAX_BUILTIN},{"if", SYNTAX_KEYWORD},{"imaxdiv_t", SYNTAX_BUILTIN},{"inline", SYNTAX_KEYWORD},{"ino_t", SYNTAX_BUILTIN},{"int", SYNTAX_KEYWORD},{"int16_t", SYNTAX_BUILTIN},{"int32_t", SYNTAX_BUILTIN},{"int64_t", SYNTAX_BUILTIN},{"int8_t", SYNTAX_BUILTIN},{"int_fast16_t", SYNTAX_BUILTIN},{"int_fast32_t", SYNTAX_BUILTIN},{"int_fast64_t", SYNTAX_BUILTIN},{"int_fast8_t", SYNTAX_BUILTIN},{"int_least16_t", SYNTAX_BUILTIN},{"int_least32_t", SYNTAX_BUILTIN},{"int_least64_t", SYNTAX_BUILTIN},{"int_least8_t", SYNTAX_BUILTIN},{"intmax_t", SYNTAX_BUILTIN},{"intptr_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_c_j[1] = {{"jmp_buf", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_c_k[1] = {{"key_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_c_l[3] = {{"ldiv_t", SYNTAX_BUILTIN},{"lldiv_t", SYNTAX_BUILTIN},{"long", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_c_m[15] = {{"math_errhandling", SYNTAX_BUILTIN},{"max_align_t", SYNTAX_BUILTIN},{"mbstate_t", SYNTAX_BUILTIN},{"memory_order", SYNTAX_BUILTIN},{"memory_order_acq_rel", SYNTAX_BUILTIN},{"memory_order_acquire", SYNTAX_BUILTIN},{"memory_order_consume", SYNTAX_BUILTIN},{"memory_order_relaxed", SYNTAX_BUILTIN},{"memory_order_release", SYNTAX_BUILTIN},{"memory_order_seq_cst", SYNTAX_BUILTIN},{"mtx_plain", SYNTAX_CONSTANT},{"mtx_recursive", SYNTAX_CONSTANT},{"mtx_t", SYNTAX_BUILTIN},{"mtx_timed", SYNTAX_CONSTANT},{"mtx_try", SYNTAX_CONSTANT}};
-static const Keyword syntax_keywords_c_n[1] = {{"noreturn", SYNTAX_BUILTIN}};
-static const Keyword syntax_keywords_c_o[2] = {{"offsetof", SYNTAX_BUILTIN},{"once_flag", SYNTAX_BUILTIN}};
-static const Keyword syntax_keywords_c_p[1] = {{"ptrdiff_t", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_c_m[16] = {{"math_errhandling", SYNTAX_BUILTIN},{"max_align_t", SYNTAX_BUILTIN},{"mbstate_t", SYNTAX_BUILTIN},{"memory_order", SYNTAX_BUILTIN},{"memory_order_acq_rel", SYNTAX_BUILTIN},{"memory_order_acquire", SYNTAX_BUILTIN},{"memory_order_consume", SYNTAX_BUILTIN},{"memory_order_relaxed", SYNTAX_BUILTIN},{"memory_order_release", SYNTAX_BUILTIN},{"memory_order_seq_cst", SYNTAX_BUILTIN},{"mode_t", SYNTAX_BUILTIN},{"mtx_plain", SYNTAX_CONSTANT},{"mtx_recursive", SYNTAX_CONSTANT},{"mtx_t", SYNTAX_BUILTIN},{"mtx_timed", SYNTAX_CONSTANT},{"mtx_try", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_c_n[2] = {{"nlink_t", SYNTAX_BUILTIN},{"noreturn", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_c_o[4] = {{"off64_t", SYNTAX_BUILTIN},{"off_t", SYNTAX_BUILTIN},{"offsetof", SYNTAX_BUILTIN},{"once_flag", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_c_p[2] = {{"pid_t", SYNTAX_BUILTIN},{"ptrdiff_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_c_r[4] = {{"register", SYNTAX_KEYWORD},{"restrict", SYNTAX_KEYWORD},{"return", SYNTAX_KEYWORD},{"rsize_t", SYNTAX_BUILTIN}};
-static const Keyword syntax_keywords_c_s[12] = {{"short", SYNTAX_KEYWORD},{"sig_atomic_t", SYNTAX_BUILTIN},{"signed", SYNTAX_KEYWORD},{"size_t", SYNTAX_BUILTIN},{"sizeof", SYNTAX_KEYWORD},{"static", SYNTAX_KEYWORD},{"static_assert", SYNTAX_BUILTIN},{"stderr", SYNTAX_CONSTANT},{"stdin", SYNTAX_CONSTANT},{"stdout", SYNTAX_CONSTANT},{"struct", SYNTAX_KEYWORD},{"switch", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_c_s[13] = {{"short", SYNTAX_KEYWORD},{"sig_atomic_t", SYNTAX_BUILTIN},{"signed", SYNTAX_KEYWORD},{"size_t", SYNTAX_BUILTIN},{"sizeof", SYNTAX_KEYWORD},{"ssize_t", SYNTAX_BUILTIN},{"static", SYNTAX_KEYWORD},{"static_assert", SYNTAX_BUILTIN},{"stderr", SYNTAX_CONSTANT},{"stdin", SYNTAX_CONSTANT},{"stdout", SYNTAX_CONSTANT},{"struct", SYNTAX_KEYWORD},{"switch", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_c_t[12] = {{"thrd_busy", SYNTAX_CONSTANT},{"thrd_error", SYNTAX_CONSTANT},{"thrd_nomem", SYNTAX_CONSTANT},{"thrd_start_t", SYNTAX_BUILTIN},{"thrd_success", SYNTAX_CONSTANT},{"thrd_t", SYNTAX_BUILTIN},{"thrd_timeout", SYNTAX_CONSTANT},{"time_t", SYNTAX_BUILTIN},{"true", SYNTAX_CONSTANT},{"tss_dtor_t", SYNTAX_BUILTIN},{"tss_t", SYNTAX_BUILTIN},{"typedef", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_c_u[16] = {{"uint16_t", SYNTAX_BUILTIN},{"uint32_t", SYNTAX_BUILTIN},{"uint64_t", SYNTAX_BUILTIN},{"uint8_t", SYNTAX_BUILTIN},{"uint_fast16_t", SYNTAX_BUILTIN},{"uint_fast32_t", SYNTAX_BUILTIN},{"uint_fast64_t", SYNTAX_BUILTIN},{"uint_fast8_t", SYNTAX_BUILTIN},{"uint_least16_t", SYNTAX_BUILTIN},{"uint_least32_t", SYNTAX_BUILTIN},{"uint_least64_t", SYNTAX_BUILTIN},{"uint_least8_t", SYNTAX_BUILTIN},{"uintmax_t", SYNTAX_BUILTIN},{"uintptr_t", SYNTAX_BUILTIN},{"union", SYNTAX_KEYWORD},{"unsigned", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_c_u[18] = {{"uid_t", SYNTAX_BUILTIN},{"uint16_t", SYNTAX_BUILTIN},{"uint32_t", SYNTAX_BUILTIN},{"uint64_t", SYNTAX_BUILTIN},{"uint8_t", SYNTAX_BUILTIN},{"uint_fast16_t", SYNTAX_BUILTIN},{"uint_fast32_t", SYNTAX_BUILTIN},{"uint_fast64_t", SYNTAX_BUILTIN},{"uint_fast8_t", SYNTAX_BUILTIN},{"uint_least16_t", SYNTAX_BUILTIN},{"uint_least32_t", SYNTAX_BUILTIN},{"uint_least64_t", SYNTAX_BUILTIN},{"uint_least8_t", SYNTAX_BUILTIN},{"uintmax_t", SYNTAX_BUILTIN},{"uintptr_t", SYNTAX_BUILTIN},{"union", SYNTAX_KEYWORD},{"unsigned", SYNTAX_KEYWORD},{"useconds_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_c_v[3] = {{"va_list", SYNTAX_BUILTIN},{"void", SYNTAX_KEYWORD},{"volatile", SYNTAX_KEYWORD}};
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_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)}
+ ['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)}, ['k'] = {syntax_keywords_c_k, arr_count(syntax_keywords_c_k)}, ['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}};
@@ -58,7 +59,7 @@ static const Keyword syntax_keywords_cpp_B[1] = {{"BUFSIZ", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_cpp_C[4] = {{"CHAR_BIT", SYNTAX_CONSTANT},{"CHAR_MAX", SYNTAX_CONSTANT},{"CHAR_MIN", SYNTAX_CONSTANT},{"CLOCKS_PER_SEC", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_cpp_D[11] = {{"DBL_DIG", SYNTAX_CONSTANT},{"DBL_EPSILON", SYNTAX_CONSTANT},{"DBL_HAS_SUBNORM", SYNTAX_CONSTANT},{"DBL_MANT_DIG", SYNTAX_CONSTANT},{"DBL_MAX", SYNTAX_CONSTANT},{"DBL_MAX_10_EXP", SYNTAX_CONSTANT},{"DBL_MAX_EXP", SYNTAX_CONSTANT},{"DBL_MIN", SYNTAX_CONSTANT},{"DBL_MIN_EXP", SYNTAX_CONSTANT},{"DBL_TRUE_MIN", SYNTAX_CONSTANT},{"DECIMAL_DIG", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_cpp_E[127] = {{"E2BIG", SYNTAX_CONSTANT},{"EACCES", SYNTAX_CONSTANT},{"EADDRINUSE", SYNTAX_CONSTANT},{"EADDRNOTAVAIL", SYNTAX_CONSTANT},{"EADV", SYNTAX_CONSTANT},{"EAFNOSUPPORT", SYNTAX_CONSTANT},{"EAGAIN", SYNTAX_CONSTANT},{"EALREADY", SYNTAX_CONSTANT},{"EBADE", SYNTAX_CONSTANT},{"EBADF", SYNTAX_CONSTANT},{"EBADFD", SYNTAX_CONSTANT},{"EBADMSG", SYNTAX_CONSTANT},{"EBADR", SYNTAX_CONSTANT},{"EBADRQC", SYNTAX_CONSTANT},{"EBADSLT", SYNTAX_CONSTANT},{"EBFONT", SYNTAX_CONSTANT},{"EBUSY", SYNTAX_CONSTANT},{"ECHILD", SYNTAX_CONSTANT},{"ECHRNG", SYNTAX_CONSTANT},{"ECOMM", SYNTAX_CONSTANT},{"ECONNABORTED", SYNTAX_CONSTANT},{"ECONNREFUSED", SYNTAX_CONSTANT},{"ECONNRESET", SYNTAX_CONSTANT},{"EDEADLK", SYNTAX_CONSTANT},{"EDEADLOCK", SYNTAX_CONSTANT},{"EDESTADDRREQ", SYNTAX_CONSTANT},{"EDOM", SYNTAX_CONSTANT},{"EDOTDOT", SYNTAX_CONSTANT},{"EDQUOT", SYNTAX_CONSTANT},{"EEXIST", SYNTAX_CONSTANT},{"EFAULT", SYNTAX_CONSTANT},{"EFBIG", SYNTAX_CONSTANT},{"EHOSTDOWN", SYNTAX_CONSTANT},{"EHOSTUNREACH", SYNTAX_CONSTANT},{"EIDRM", SYNTAX_CONSTANT},{"EILSEQ", SYNTAX_CONSTANT},{"EINPROGRESS", SYNTAX_CONSTANT},{"EINTR", SYNTAX_CONSTANT},{"EINVAL", SYNTAX_CONSTANT},{"EIO", SYNTAX_CONSTANT},{"EISCONN", SYNTAX_CONSTANT},{"EISDIR", SYNTAX_CONSTANT},{"EISNAM", SYNTAX_CONSTANT},{"EL2HLT", SYNTAX_CONSTANT},{"EL2NSYNC", SYNTAX_CONSTANT},{"EL3HLT", SYNTAX_CONSTANT},{"EL3RST", SYNTAX_CONSTANT},{"ELIBACC", SYNTAX_CONSTANT},{"ELIBBAD", SYNTAX_CONSTANT},{"ELIBEXEC", SYNTAX_CONSTANT},{"ELIBMAX", SYNTAX_CONSTANT},{"ELIBSCN", SYNTAX_CONSTANT},{"ELNRNG", SYNTAX_CONSTANT},{"ELOOP", SYNTAX_CONSTANT},{"EMEDIUMTYPE", SYNTAX_CONSTANT},{"EMFILE", SYNTAX_CONSTANT},{"EMLINK", SYNTAX_CONSTANT},{"EMSGSIZE", SYNTAX_CONSTANT},{"EMULTIHOP", SYNTAX_CONSTANT},{"ENAMETOOLONG", SYNTAX_CONSTANT},{"ENAVAIL", SYNTAX_CONSTANT},{"ENETDOWN", SYNTAX_CONSTANT},{"ENETRESET", SYNTAX_CONSTANT},{"ENETUNREACH", SYNTAX_CONSTANT},{"ENFILE", SYNTAX_CONSTANT},{"ENOANO", SYNTAX_CONSTANT},{"ENOBUFS", SYNTAX_CONSTANT},{"ENOCSI", SYNTAX_CONSTANT},{"ENODATA", SYNTAX_CONSTANT},{"ENODEV", SYNTAX_CONSTANT},{"ENOENT", SYNTAX_CONSTANT},{"ENOEXEC", SYNTAX_CONSTANT},{"ENOLCK", SYNTAX_CONSTANT},{"ENOLINK", SYNTAX_CONSTANT},{"ENOMEDIUM", SYNTAX_CONSTANT},{"ENOMEM", SYNTAX_CONSTANT},{"ENOMSG", SYNTAX_CONSTANT},{"ENONET", SYNTAX_CONSTANT},{"ENOPKG", SYNTAX_CONSTANT},{"ENOPROTOOPT", SYNTAX_CONSTANT},{"ENOSPC", SYNTAX_CONSTANT},{"ENOSR", SYNTAX_CONSTANT},{"ENOSTR", SYNTAX_CONSTANT},{"ENOSYS", SYNTAX_CONSTANT},{"ENOTBLK", SYNTAX_CONSTANT},{"ENOTCONN", SYNTAX_CONSTANT},{"ENOTDIR", SYNTAX_CONSTANT},{"ENOTEMPTY", SYNTAX_CONSTANT},{"ENOTNAM", SYNTAX_CONSTANT},{"ENOTSOCK", SYNTAX_CONSTANT},{"ENOTTY", SYNTAX_CONSTANT},{"ENOTUNIQ", SYNTAX_CONSTANT},{"ENXIO", SYNTAX_CONSTANT},{"EOF", SYNTAX_CONSTANT},{"EOPNOTSUPP", SYNTAX_CONSTANT},{"EOVERFLOW", SYNTAX_CONSTANT},{"EPERM", SYNTAX_CONSTANT},{"EPFNOSUPPORT", SYNTAX_CONSTANT},{"EPIPE", SYNTAX_CONSTANT},{"EPROTO", SYNTAX_CONSTANT},{"EPROTONOSUPPORT", SYNTAX_CONSTANT},{"EPROTOTYPE", SYNTAX_CONSTANT},{"ERANGE", SYNTAX_CONSTANT},{"EREMCHG", SYNTAX_CONSTANT},{"EREMOTE", SYNTAX_CONSTANT},{"EREMOTEIO", SYNTAX_CONSTANT},{"ERESTART", SYNTAX_CONSTANT},{"EROFS", SYNTAX_CONSTANT},{"ESHUTDOWN", SYNTAX_CONSTANT},{"ESOCKTNOSUPPORT", SYNTAX_CONSTANT},{"ESPIPE", SYNTAX_CONSTANT},{"ESRCH", SYNTAX_CONSTANT},{"ESRMNT", SYNTAX_CONSTANT},{"ESTALE", SYNTAX_CONSTANT},{"ESTRPIPE", SYNTAX_CONSTANT},{"ETIME", SYNTAX_CONSTANT},{"ETIMEDOUT", SYNTAX_CONSTANT},{"ETOOMANYREFS", SYNTAX_CONSTANT},{"ETXTBSY", SYNTAX_CONSTANT},{"EUCLEAN", SYNTAX_CONSTANT},{"EUNATCH", SYNTAX_CONSTANT},{"EUSERS", SYNTAX_CONSTANT},{"EWOULDBLOCK", SYNTAX_CONSTANT},{"EXDEV", SYNTAX_CONSTANT},{"EXFULL", SYNTAX_CONSTANT},{"EXIT_FAILURE", SYNTAX_CONSTANT},{"EXIT_SUCCESS", SYNTAX_CONSTANT}};
-static const Keyword syntax_keywords_cpp_F[38] = {{"FE_ALL_EXCEPT", SYNTAX_CONSTANT},{"FE_DFL_ENV", SYNTAX_CONSTANT},{"FE_DIVBYZERO", SYNTAX_CONSTANT},{"FE_DOWNWARD", SYNTAX_CONSTANT},{"FE_INEXACT", SYNTAX_CONSTANT},{"FE_INVALID", SYNTAX_CONSTANT},{"FE_OVERFLOW", SYNTAX_CONSTANT},{"FE_TONEAREST", SYNTAX_CONSTANT},{"FE_TOWARDZERO", SYNTAX_CONSTANT},{"FE_UNDERFLOW", SYNTAX_CONSTANT},{"FE_UPWARD", SYNTAX_CONSTANT},{"FILE", SYNTAX_CONSTANT},{"FILENAME_MAX", SYNTAX_CONSTANT},{"FLT_DECIMAL_DIG", SYNTAX_CONSTANT},{"FLT_DIG", SYNTAX_CONSTANT},{"FLT_EVAL_METHOD", SYNTAX_CONSTANT},{"FLT_HAS_SUBNORM", SYNTAX_CONSTANT},{"FLT_MANT_DIG", SYNTAX_CONSTANT},{"FLT_MAX", SYNTAX_CONSTANT},{"FLT_MAX_10_EXP", SYNTAX_CONSTANT},{"FLT_MAX_EXP", SYNTAX_CONSTANT},{"FLT_MIN", SYNTAX_CONSTANT},{"FLT_MIN_10_EXP", SYNTAX_CONSTANT},{"FLT_MIN_EXP", SYNTAX_CONSTANT},{"FLT_RADIX", SYNTAX_CONSTANT},{"FLT_ROUNDS", SYNTAX_CONSTANT},{"FLT_TRUE_MIN", SYNTAX_CONSTANT},{"FOPEN_MAX", SYNTAX_CONSTANT},{"FP_FAST_FMA", SYNTAX_CONSTANT},{"FP_FAST_FMAF", SYNTAX_CONSTANT},{"FP_FAST_FMAL", SYNTAX_CONSTANT},{"FP_ILOGB0", SYNTAX_CONSTANT},{"FP_ILOGBNAN", SYNTAX_CONSTANT},{"FP_INFINITE", SYNTAX_CONSTANT},{"FP_NAN", SYNTAX_CONSTANT},{"FP_NORMAL", SYNTAX_CONSTANT},{"FP_SUBNORMAL", SYNTAX_CONSTANT},{"FP_ZERO", SYNTAX_CONSTANT}};
+static const Keyword syntax_keywords_cpp_F[38] = {{"FE_ALL_EXCEPT", SYNTAX_CONSTANT},{"FE_DFL_ENV", SYNTAX_CONSTANT},{"FE_DIVBYZERO", SYNTAX_CONSTANT},{"FE_DOWNWARD", SYNTAX_CONSTANT},{"FE_INEXACT", SYNTAX_CONSTANT},{"FE_INVALID", SYNTAX_CONSTANT},{"FE_OVERFLOW", SYNTAX_CONSTANT},{"FE_TONEAREST", SYNTAX_CONSTANT},{"FE_TOWARDZERO", SYNTAX_CONSTANT},{"FE_UNDERFLOW", SYNTAX_CONSTANT},{"FE_UPWARD", SYNTAX_CONSTANT},{"FILE", SYNTAX_BUILTIN},{"FILENAME_MAX", SYNTAX_CONSTANT},{"FLT_DECIMAL_DIG", SYNTAX_CONSTANT},{"FLT_DIG", SYNTAX_CONSTANT},{"FLT_EVAL_METHOD", SYNTAX_CONSTANT},{"FLT_HAS_SUBNORM", SYNTAX_CONSTANT},{"FLT_MANT_DIG", SYNTAX_CONSTANT},{"FLT_MAX", SYNTAX_CONSTANT},{"FLT_MAX_10_EXP", SYNTAX_CONSTANT},{"FLT_MAX_EXP", SYNTAX_CONSTANT},{"FLT_MIN", SYNTAX_CONSTANT},{"FLT_MIN_10_EXP", SYNTAX_CONSTANT},{"FLT_MIN_EXP", SYNTAX_CONSTANT},{"FLT_RADIX", SYNTAX_CONSTANT},{"FLT_ROUNDS", SYNTAX_CONSTANT},{"FLT_TRUE_MIN", SYNTAX_CONSTANT},{"FOPEN_MAX", SYNTAX_CONSTANT},{"FP_FAST_FMA", SYNTAX_CONSTANT},{"FP_FAST_FMAF", SYNTAX_CONSTANT},{"FP_FAST_FMAL", SYNTAX_CONSTANT},{"FP_ILOGB0", SYNTAX_CONSTANT},{"FP_ILOGBNAN", SYNTAX_CONSTANT},{"FP_INFINITE", SYNTAX_CONSTANT},{"FP_NAN", SYNTAX_CONSTANT},{"FP_NORMAL", SYNTAX_CONSTANT},{"FP_SUBNORMAL", SYNTAX_CONSTANT},{"FP_ZERO", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_cpp_H[3] = {{"HUGE_VAL", SYNTAX_CONSTANT},{"HUGE_VALF", SYNTAX_CONSTANT},{"HUGE_VALL", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_cpp_I[32] = {{"I", SYNTAX_CONSTANT},{"INFINITY", SYNTAX_CONSTANT},{"INT16_MAX", SYNTAX_CONSTANT},{"INT16_MIN", SYNTAX_CONSTANT},{"INT32_MAX", SYNTAX_CONSTANT},{"INT32_MIN", SYNTAX_CONSTANT},{"INT64_MAX", SYNTAX_CONSTANT},{"INT64_MIN", SYNTAX_CONSTANT},{"INT8_MAX", SYNTAX_CONSTANT},{"INT8_MIN", SYNTAX_CONSTANT},{"INTMAX_MAX", SYNTAX_CONSTANT},{"INTMAX_MIN", SYNTAX_CONSTANT},{"INTPTR_MAX", SYNTAX_CONSTANT},{"INTPTR_MIN", SYNTAX_CONSTANT},{"INT_FAST16_MAX", SYNTAX_CONSTANT},{"INT_FAST16_MIN", SYNTAX_CONSTANT},{"INT_FAST32_MAX", SYNTAX_CONSTANT},{"INT_FAST32_MIN", SYNTAX_CONSTANT},{"INT_FAST64_MAX", SYNTAX_CONSTANT},{"INT_FAST64_MIN", SYNTAX_CONSTANT},{"INT_FAST8_MAX", SYNTAX_CONSTANT},{"INT_FAST8_MIN", SYNTAX_CONSTANT},{"INT_LEAST16_MAX", SYNTAX_CONSTANT},{"INT_LEAST16_MIN", SYNTAX_CONSTANT},{"INT_LEAST32_MAX", SYNTAX_CONSTANT},{"INT_LEAST32_MIN", SYNTAX_CONSTANT},{"INT_LEAST64_MAX", SYNTAX_CONSTANT},{"INT_LEAST64_MIN", SYNTAX_CONSTANT},{"INT_LEAST8_MAX", SYNTAX_CONSTANT},{"INT_LEAST8_MIN", SYNTAX_CONSTANT},{"INT_MAX", SYNTAX_CONSTANT},{"INT_MIN", SYNTAX_CONSTANT}};
static const Keyword syntax_keywords_cpp_L[22] = {{"LC_ALL", SYNTAX_CONSTANT},{"LC_COLLATE", SYNTAX_CONSTANT},{"LC_CTYPE", SYNTAX_CONSTANT},{"LC_MONETARY", SYNTAX_CONSTANT},{"LC_NUMERIC", SYNTAX_CONSTANT},{"LC_TIME", SYNTAX_CONSTANT},{"LDBL_DECIMAL_DIG", SYNTAX_CONSTANT},{"LDBL_DIG", SYNTAX_CONSTANT},{"LDBL_EPSILON", SYNTAX_CONSTANT},{"LDBL_MANT_DIG", SYNTAX_CONSTANT},{"LDBL_MAX", SYNTAX_CONSTANT},{"LDBL_MAX_10_EXP", SYNTAX_CONSTANT},{"LDBL_MAX_EXP", SYNTAX_CONSTANT},{"LDBL_MIN", SYNTAX_CONSTANT},{"LDBL_MIN_10_EXP", SYNTAX_CONSTANT},{"LDBL_MIN_EXP", SYNTAX_CONSTANT},{"LDBL_TRUE_MIN", SYNTAX_CONSTANT},{"LLONG_MAX", SYNTAX_CONSTANT},{"LLONG_MIN", SYNTAX_CONSTANT},{"LONG_MAX", SYNTAX_CONSTANT},{"LONG_MIN", SYNTAX_CONSTANT},{"L_tmpnam", SYNTAX_CONSTANT}};
@@ -73,28 +74,29 @@ static const Keyword syntax_keywords_cpp_U[19] = {{"UCHAR_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_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}};
-static const Keyword syntax_keywords_cpp_d[8] = {{"decltype", SYNTAX_KEYWORD},{"default", SYNTAX_KEYWORD},{"delete", SYNTAX_KEYWORD},{"div_t", SYNTAX_BUILTIN},{"do", SYNTAX_KEYWORD},{"double", SYNTAX_KEYWORD},{"double_t", SYNTAX_BUILTIN},{"dynamic_cast", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_b[7] = {{"bitand", SYNTAX_KEYWORD},{"bitor", SYNTAX_KEYWORD},{"blkcnt64_t", SYNTAX_BUILTIN},{"blkcnt_t", SYNTAX_BUILTIN},{"blksize_t", SYNTAX_BUILTIN},{"bool", SYNTAX_KEYWORD},{"break", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_c[23] = {{"caddr_t", SYNTAX_BUILTIN},{"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}};
+static const Keyword syntax_keywords_cpp_d[10] = {{"daddr_t", SYNTAX_BUILTIN},{"decltype", SYNTAX_KEYWORD},{"default", SYNTAX_KEYWORD},{"delete", SYNTAX_KEYWORD},{"dev_t", SYNTAX_BUILTIN},{"div_t", SYNTAX_BUILTIN},{"do", SYNTAX_KEYWORD},{"double", SYNTAX_KEYWORD},{"double_t", SYNTAX_BUILTIN},{"dynamic_cast", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_cpp_e[6] = {{"else", SYNTAX_KEYWORD},{"enum", SYNTAX_KEYWORD},{"errno_t", SYNTAX_BUILTIN},{"explicit", SYNTAX_KEYWORD},{"export", SYNTAX_KEYWORD},{"extern", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_cpp_f[8] = {{"false", SYNTAX_CONSTANT},{"fenv_t", SYNTAX_BUILTIN},{"fexcept_t", SYNTAX_BUILTIN},{"float", SYNTAX_KEYWORD},{"float_t", SYNTAX_BUILTIN},{"for", SYNTAX_KEYWORD},{"fpos_t", SYNTAX_CONSTANT},{"friend", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_cpp_g[1] = {{"goto", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_cpp_i[18] = {{"if", SYNTAX_KEYWORD},{"imaxdiv_t", SYNTAX_BUILTIN},{"inline", SYNTAX_KEYWORD},{"int", SYNTAX_KEYWORD},{"int16_t", SYNTAX_BUILTIN},{"int32_t", SYNTAX_BUILTIN},{"int64_t", SYNTAX_BUILTIN},{"int8_t", SYNTAX_BUILTIN},{"int_fast16_t", SYNTAX_BUILTIN},{"int_fast32_t", SYNTAX_BUILTIN},{"int_fast64_t", SYNTAX_BUILTIN},{"int_fast8_t", SYNTAX_BUILTIN},{"int_least16_t", SYNTAX_BUILTIN},{"int_least32_t", SYNTAX_BUILTIN},{"int_least64_t", SYNTAX_BUILTIN},{"int_least8_t", SYNTAX_BUILTIN},{"intmax_t", SYNTAX_BUILTIN},{"intptr_t", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_cpp_f[12] = {{"false", SYNTAX_CONSTANT},{"fenv_t", SYNTAX_BUILTIN},{"fexcept_t", SYNTAX_BUILTIN},{"float", SYNTAX_KEYWORD},{"float_t", SYNTAX_BUILTIN},{"for", SYNTAX_KEYWORD},{"fpos_t", SYNTAX_BUILTIN},{"friend", SYNTAX_KEYWORD},{"fsblkcnt64_t", SYNTAX_BUILTIN},{"fsblkcnt_t", SYNTAX_BUILTIN},{"fsfilcnt64_t", SYNTAX_BUILTIN},{"fsfilcnt_t", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_cpp_g[2] = {{"gid_t", SYNTAX_BUILTIN},{"goto", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_i[20] = {{"id_t", SYNTAX_BUILTIN},{"if", SYNTAX_KEYWORD},{"imaxdiv_t", SYNTAX_BUILTIN},{"inline", SYNTAX_KEYWORD},{"ino_t", SYNTAX_BUILTIN},{"int", SYNTAX_KEYWORD},{"int16_t", SYNTAX_BUILTIN},{"int32_t", SYNTAX_BUILTIN},{"int64_t", SYNTAX_BUILTIN},{"int8_t", SYNTAX_BUILTIN},{"int_fast16_t", SYNTAX_BUILTIN},{"int_fast32_t", SYNTAX_BUILTIN},{"int_fast64_t", SYNTAX_BUILTIN},{"int_fast8_t", SYNTAX_BUILTIN},{"int_least16_t", SYNTAX_BUILTIN},{"int_least32_t", SYNTAX_BUILTIN},{"int_least64_t", SYNTAX_BUILTIN},{"int_least8_t", SYNTAX_BUILTIN},{"intmax_t", SYNTAX_BUILTIN},{"intptr_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_cpp_j[1] = {{"jmp_buf", SYNTAX_BUILTIN}};
+static const Keyword syntax_keywords_cpp_k[1] = {{"key_t", SYNTAX_BUILTIN}};
static const Keyword syntax_keywords_cpp_l[3] = {{"ldiv_t", SYNTAX_BUILTIN},{"lldiv_t", SYNTAX_BUILTIN},{"long", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_cpp_m[16] = {{"math_errhandling", SYNTAX_BUILTIN},{"max_align_t", SYNTAX_BUILTIN},{"mbstate_t", SYNTAX_BUILTIN},{"memory_order", SYNTAX_BUILTIN},{"memory_order_acq_rel", SYNTAX_BUILTIN},{"memory_order_acquire", SYNTAX_BUILTIN},{"memory_order_consume", SYNTAX_BUILTIN},{"memory_order_relaxed", SYNTAX_BUILTIN},{"memory_order_release", SYNTAX_BUILTIN},{"memory_order_seq_cst", SYNTAX_BUILTIN},{"mtx_plain", SYNTAX_CONSTANT},{"mtx_recursive", SYNTAX_CONSTANT},{"mtx_t", SYNTAX_BUILTIN},{"mtx_timed", SYNTAX_CONSTANT},{"mtx_try", SYNTAX_CONSTANT},{"mutable", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_cpp_n[7] = {{"namespace", SYNTAX_KEYWORD},{"new", SYNTAX_KEYWORD},{"noexcept", SYNTAX_KEYWORD},{"noreturn", SYNTAX_BUILTIN},{"not", SYNTAX_KEYWORD},{"not_eq", SYNTAX_KEYWORD},{"nullptr", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_cpp_o[5] = {{"offsetof", SYNTAX_BUILTIN},{"once_flag", SYNTAX_BUILTIN},{"operator", SYNTAX_KEYWORD},{"or", SYNTAX_KEYWORD},{"or_eq", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_cpp_p[4] = {{"private", SYNTAX_KEYWORD},{"protected", SYNTAX_KEYWORD},{"ptrdiff_t", SYNTAX_BUILTIN},{"public", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_m[17] = {{"math_errhandling", SYNTAX_BUILTIN},{"max_align_t", SYNTAX_BUILTIN},{"mbstate_t", SYNTAX_BUILTIN},{"memory_order", SYNTAX_BUILTIN},{"memory_order_acq_rel", SYNTAX_BUILTIN},{"memory_order_acquire", SYNTAX_BUILTIN},{"memory_order_consume", SYNTAX_BUILTIN},{"memory_order_relaxed", SYNTAX_BUILTIN},{"memory_order_release", SYNTAX_BUILTIN},{"memory_order_seq_cst", SYNTAX_BUILTIN},{"mode_t", SYNTAX_BUILTIN},{"mtx_plain", SYNTAX_CONSTANT},{"mtx_recursive", SYNTAX_CONSTANT},{"mtx_t", SYNTAX_BUILTIN},{"mtx_timed", SYNTAX_CONSTANT},{"mtx_try", SYNTAX_CONSTANT},{"mutable", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_n[8] = {{"namespace", SYNTAX_KEYWORD},{"new", SYNTAX_KEYWORD},{"nlink_t", SYNTAX_BUILTIN},{"noexcept", SYNTAX_KEYWORD},{"noreturn", SYNTAX_BUILTIN},{"not", SYNTAX_KEYWORD},{"not_eq", SYNTAX_KEYWORD},{"nullptr", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_o[7] = {{"off64_t", SYNTAX_BUILTIN},{"off_t", SYNTAX_BUILTIN},{"offsetof", SYNTAX_BUILTIN},{"once_flag", SYNTAX_BUILTIN},{"operator", SYNTAX_KEYWORD},{"or", SYNTAX_KEYWORD},{"or_eq", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_p[5] = {{"pid_t", SYNTAX_BUILTIN},{"private", SYNTAX_KEYWORD},{"protected", SYNTAX_KEYWORD},{"ptrdiff_t", SYNTAX_BUILTIN},{"public", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_cpp_r[7] = {{"reflexpr", SYNTAX_KEYWORD},{"register", SYNTAX_KEYWORD},{"reinterpret_cast", SYNTAX_KEYWORD},{"requires", SYNTAX_KEYWORD},{"restrict", SYNTAX_KEYWORD},{"return", SYNTAX_KEYWORD},{"rsize_t", SYNTAX_BUILTIN}};
-static const Keyword syntax_keywords_cpp_s[14] = {{"short", SYNTAX_KEYWORD},{"sig_atomic_t", SYNTAX_BUILTIN},{"signed", SYNTAX_KEYWORD},{"size_t", SYNTAX_BUILTIN},{"sizeof", SYNTAX_KEYWORD},{"static", SYNTAX_KEYWORD},{"static_assert", SYNTAX_BUILTIN},{"static_cast", SYNTAX_KEYWORD},{"stderr", SYNTAX_CONSTANT},{"stdin", SYNTAX_CONSTANT},{"stdout", SYNTAX_CONSTANT},{"struct", SYNTAX_KEYWORD},{"switch", SYNTAX_KEYWORD},{"synchronized", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_s[15] = {{"short", SYNTAX_KEYWORD},{"sig_atomic_t", SYNTAX_BUILTIN},{"signed", SYNTAX_KEYWORD},{"size_t", SYNTAX_BUILTIN},{"sizeof", SYNTAX_KEYWORD},{"ssize_t", SYNTAX_BUILTIN},{"static", SYNTAX_KEYWORD},{"static_assert", SYNTAX_BUILTIN},{"static_cast", SYNTAX_KEYWORD},{"stderr", SYNTAX_CONSTANT},{"stdin", SYNTAX_CONSTANT},{"stdout", SYNTAX_CONSTANT},{"struct", SYNTAX_KEYWORD},{"switch", SYNTAX_KEYWORD},{"synchronized", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_cpp_t[19] = {{"template", SYNTAX_KEYWORD},{"this", SYNTAX_KEYWORD},{"thrd_busy", SYNTAX_CONSTANT},{"thrd_error", SYNTAX_CONSTANT},{"thrd_nomem", SYNTAX_CONSTANT},{"thrd_start_t", SYNTAX_BUILTIN},{"thrd_success", SYNTAX_CONSTANT},{"thrd_t", SYNTAX_BUILTIN},{"thrd_timeout", SYNTAX_CONSTANT},{"thread_local", SYNTAX_KEYWORD},{"throw", SYNTAX_KEYWORD},{"time_t", SYNTAX_BUILTIN},{"true", SYNTAX_CONSTANT},{"try", SYNTAX_KEYWORD},{"tss_dtor_t", SYNTAX_BUILTIN},{"tss_t", SYNTAX_BUILTIN},{"typedef", SYNTAX_KEYWORD},{"typeid", SYNTAX_KEYWORD},{"typename", SYNTAX_KEYWORD}};
-static const Keyword syntax_keywords_cpp_u[17] = {{"uint16_t", SYNTAX_BUILTIN},{"uint32_t", SYNTAX_BUILTIN},{"uint64_t", SYNTAX_BUILTIN},{"uint8_t", SYNTAX_BUILTIN},{"uint_fast16_t", SYNTAX_BUILTIN},{"uint_fast32_t", SYNTAX_BUILTIN},{"uint_fast64_t", SYNTAX_BUILTIN},{"uint_fast8_t", SYNTAX_BUILTIN},{"uint_least16_t", SYNTAX_BUILTIN},{"uint_least32_t", SYNTAX_BUILTIN},{"uint_least64_t", SYNTAX_BUILTIN},{"uint_least8_t", SYNTAX_BUILTIN},{"uintmax_t", SYNTAX_BUILTIN},{"uintptr_t", SYNTAX_BUILTIN},{"union", SYNTAX_KEYWORD},{"unsigned", SYNTAX_KEYWORD},{"using", SYNTAX_KEYWORD}};
+static const Keyword syntax_keywords_cpp_u[19] = {{"uid_t", SYNTAX_BUILTIN},{"uint16_t", SYNTAX_BUILTIN},{"uint32_t", SYNTAX_BUILTIN},{"uint64_t", SYNTAX_BUILTIN},{"uint8_t", SYNTAX_BUILTIN},{"uint_fast16_t", SYNTAX_BUILTIN},{"uint_fast32_t", SYNTAX_BUILTIN},{"uint_fast64_t", SYNTAX_BUILTIN},{"uint_fast8_t", SYNTAX_BUILTIN},{"uint_least16_t", SYNTAX_BUILTIN},{"uint_least32_t", SYNTAX_BUILTIN},{"uint_least64_t", SYNTAX_BUILTIN},{"uint_least8_t", SYNTAX_BUILTIN},{"uintmax_t", SYNTAX_BUILTIN},{"uintptr_t", SYNTAX_BUILTIN},{"union", SYNTAX_KEYWORD},{"unsigned", SYNTAX_KEYWORD},{"useconds_t", SYNTAX_BUILTIN},{"using", SYNTAX_KEYWORD}};
static const Keyword syntax_keywords_cpp_v[4] = {{"va_list", SYNTAX_BUILTIN},{"virtual", SYNTAX_KEYWORD},{"void", SYNTAX_KEYWORD},{"volatile", SYNTAX_KEYWORD}};
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_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)}
+ ['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)}, ['k'] = {syntax_keywords_cpp_k, arr_count(syntax_keywords_cpp_k)}, ['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}};
diff --git a/keywords.py b/keywords.py
index e8c8451..9a74b85 100755
--- a/keywords.py
+++ b/keywords.py
@@ -66,7 +66,7 @@ constants_c = ['CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'DBL_DIG', 'DBL_EPSILON', 'DB
'UINT_MAX', 'ULLONG_MAX', 'ULONG_MAX', 'USHRT_MAX', 'true', 'false',
'PTRDIFF_MIN', 'PTRDIFF_MAX', 'SIG_ATOMIC_MIN', 'SIG_ATOMIC_MAX',
'SIZE_MAX', 'WCHAR_MIN', 'WCHAR_MAX', 'WINT_MIN', 'WINT_MAX',
- 'FILE', 'fpos_t', '_IOFBF', '_IOLBF', '_IONBF', 'BUFSIZ',
+ '_IOFBF', '_IOLBF', '_IONBF', 'BUFSIZ',
'EOF', 'FOPEN_MAX', 'FILENAME_MAX', 'L_tmpnam',
'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stderr', 'stdin', 'stdout', 'TIME_UTC',
'TMP_MAX_S', 'SIG_DFL', 'SIG_ERR', 'SIG_IGN',
@@ -133,7 +133,11 @@ builtins_c = [
'ptrdiff_t', 'max_align_t', 'offsetof',
'div_t', 'ldiv_t', 'lldiv_t', 'constraint_handler_t', 'cnd_t', 'thrd_t', 'tss_t', 'mtx_t',
'tss_dtor_t', 'thrd_start_t', 'once_flag', 'xtime',
- 'clock_t', 'time_t', 'wctrans_t', 'wctype_t',
+ 'clock_t', 'time_t', 'wctrans_t', 'wctype_t', 'FILE', 'fpos_t', 'ssize_t',
+ 'ino_t', 'dev_t', 'mode_t', 'uid_t', 'pid_t', 'off_t', 'gid_t', 'nlink_t',
+ 'id_t', 'off64_t', 'caddr_t', 'daddr_t', 'key_t', 'useconds_t', 'blksize_t',
+ 'blkcnt_t', 'fsblkcnt_t', 'fsfilcnt_t',
+ 'blkcnt64_t', 'fsblkcnt64_t', 'fsfilcnt64_t',
]
# see https://registry.khronos.org/OpenGL/specs/gl/GLSLangSpec.4.60.html#keywords
diff --git a/main.c b/main.c
index 0690f4d..7dbe7fc 100644
--- a/main.c
+++ b/main.c
@@ -1,9 +1,7 @@
/*
FUTURE FEATURES:
- styles ([color] sections)
- - for this, it would be nice to have #include in ted.cfg
- better undo chaining (dechain on backspace?)
-- auto-reload config even for %included files
- manual.md
- font setting & support for multiple fonts to cover more characters
- support for variable-width fonts
@@ -14,7 +12,6 @@ FUTURE FEATURES:
- 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"
-- allow multiple fonts (fonts directory?)
- config variables
- bind key to multiple commands
- plugins?
@@ -24,6 +21,7 @@ FUTURE FEATURES:
- keyboard macros
- ctrl+9/0 to inc/dec number would be useful here
- with macros we can really test performance of buffer_insert_text_at_pos, etc. (which should ideally be fast)
+- auto-reload config even for %included files
- LSP request timeout
BUG REPORTS IM TO LAZY TO FILE (RIGHT NOW)
- rust-analyzer:
@@ -193,7 +191,6 @@ static const char *windows_exception_to_str(DWORD exception_code) {
return "Unknown exception";
}
-
static LONG WINAPI error_signal_handler(EXCEPTION_POINTERS *info) {
if (signal_being_handled)
die(CRASH_CRASH_MESSAGE);
@@ -262,23 +259,23 @@ static void ted_update_window_dimensions(Ted *ted) {
#if _WIN32
INT WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
- PSTR lpCmdLine, INT nCmdShow) {
+ PSTR lpCmdLine, INT nCmdShow) {
(void)hInstance; (void)hPrevInstance; (void)lpCmdLine; (void)nCmdShow;
int argc = 0;
- LPWSTR* wide_argv = CommandLineToArgvW(GetCommandLineW(), &argc);
- char** argv = calloc(argc + 1, sizeof *argv);
+ LPWSTR* wide_argv = CommandLineToArgvW(GetCommandLineW(), &argc);
+ char** argv = calloc(argc + 1, sizeof *argv);
if (!argv) {
die("Out of memory.");
}
- for (int i = 0; i < argc; i++) {
- LPWSTR wide_arg = wide_argv[i];
- int len = (int)wcslen(wide_arg);
- int bufsz = len * 4 + 8;
- argv[i] = calloc((size_t)bufsz, 1);
- if (!argv[i]) die("Out of memory.");
- WideCharToMultiByte(CP_UTF8, 0, wide_arg, len, argv[i], bufsz - 1, NULL, NULL);
- }
- LocalFree(wide_argv);
+ for (int i = 0; i < argc; i++) {
+ LPWSTR wide_arg = wide_argv[i];
+ int len = (int)wcslen(wide_arg);
+ int bufsz = len * 4 + 8;
+ argv[i] = calloc((size_t)bufsz, 1);
+ if (!argv[i]) die("Out of memory.");
+ WideCharToMultiByte(CP_UTF8, 0, wide_arg, len, argv[i], bufsz - 1, NULL, NULL);
+ }
+ LocalFree(wide_argv);
#else
int main(int argc, char **argv) {
#endif
@@ -996,7 +993,7 @@ int main(int argc, char **argv) {
} else {
autocomplete_close(ted);
text_utf8_anchored(font, "Press Ctrl+O to open a file or Ctrl+N to create a new one.",
- window_width * 0.5f, window_height * 0.5f, ted_active_color(ted, COLOR_TEXT_SECONDARY), ANCHOR_MIDDLE);
+ window_width * 0.5f, window_height * 0.5f, ted_active_color(ted, COLOR_COMMENT), ANCHOR_MIDDLE);
text_render(font);
}
}
diff --git a/styles/classic-light.ted.cfg b/styles/classic-light.ted.cfg
new file mode 100644
index 0000000..c154020
--- /dev/null
+++ b/styles/classic-light.ted.cfg
@@ -0,0 +1,50 @@
+[colors]
+# for information about what these colors mean, see classic.ted.cfg
+border = #844
+active-tab-hl = #a779
+selected-tab-hl = #0002
+cursor-line-bg = #00000015
+cursor = #088
+cursor-error = #a00
+matching-bracket-hl = #8703
+selection-bg = #36a5
+view-only-cursor = #080
+view-only-selection-bg = #0a05
+text = #000
+text-folder = #029
+text-other = #060
+bg = #ddd
+menu-backdrop = #0004
+menu-bg = #ccc
+menu-hl = #0a04
+error-border = #f00
+error-bg = #faa
+warning-border = #ff0
+warning-bg = #ffa
+info-border = #00f
+info-bg = #aaf
+find-hl = #0002
+yes = #070
+no = #800
+cancel = #880
+autocomplete-bg = #eee
+autocomplete-border = #999
+autocomplete-hl = #f6a3
+hover-bg = #fffc
+hover-border = #fff
+hover-text = #000
+hover-hl = #0002
+hl-write = #f002
+autocomplete-variable = #061
+autocomplete-function = #039
+autocomplete-type = #939
+keyword = #062
+preprocessor = #11a
+string = #b33
+character = #960
+builtin = #70a
+comment = #555
+constant = #077
+line-numbers = #557
+cursor-line-number = #002
+line-numbers-separator = #0005
diff --git a/styles/classic.ted.cfg b/styles/classic.ted.cfg
new file mode 100644
index 0000000..b7a9025
--- /dev/null
+++ b/styles/classic.ted.cfg
@@ -0,0 +1,73 @@
+[colors]
+# below, bg is short for background and hl is short for highlight
+
+border = #a77
+active-tab-hl = #a77a
+# this color is used for tabs which are selected, but not active (because you are on the other side of a split, perhaps)
+selected-tab-hl = #7777
+cursor-line-bg = #fff2
+cursor = #3ff
+# used as cursor color when you do autocomplete and there are no suggestions
+cursor-error = #f00
+# color to highlight matching brackets with
+matching-bracket-hl = #fda8
+selection-bg = #36aa
+view-only-cursor = #0d0
+view-only-selection-bg = #0a05
+text = #fff
+# For example, in the open menu it is nice to have a visual distinction between folders and files.
+# This is the color used for folders.
+text-folder = #88f
+# Used for things that are neither files nor folders.
+text-other = #8f8
+bg = #001
+# The entire screen gets filled with this color when a menu (e.g. the "open" menu) is shown.
+# By making it transparent, we can dim everything else while the menu is open.
+menu-backdrop = #0004
+menu-bg = #222
+menu-hl = #afa2
+# error box colors
+error-border = #f00
+error-bg = #800
+# warning box colors
+warning-border = #ff0
+warning-bg = #660
+# info box colors
+info-border = #00f
+info-bg = #004
+# color to highlight search results with
+find-hl = #fff4
+yes = #afa
+no = #faa
+cancel = #ffa
+
+# autocomplete
+autocomplete-bg = #000
+autocomplete-border = #999
+autocomplete-hl = #f6a3
+# hover (press F1 while hovering over an identifier with an LSP server running)
+hover-bg = #000a
+hover-border = #fffa
+hover-text = #fff
+hover-hl = #fff4
+# highlight color for F2 key (LSP "document highlights") for write accesses to a variable
+# (hover-hl is used for read accesses)
+hl-write = #fca4
+# these control the text color for various kinds of completions
+autocomplete-variable = #bfb
+autocomplete-function = #fec
+autocomplete-type = #faf
+
+
+# Syntax highlighting
+keyword = #0c0
+preprocessor = #77f
+string = #f77
+character = #fa7
+builtin = #a7f
+comment = #999
+constant = #8ff
+
+line-numbers = #779
+cursor-line-number = #ddf
+line-numbers-separator = #fff3
diff --git a/syntax.c b/syntax.c
index 3e9d3d9..05bf04b 100644
--- a/syntax.c
+++ b/syntax.c
@@ -1191,7 +1191,7 @@ static void syntax_highlight_cfg(SyntaxState *state, const char32_t *line, u32 l
}
if (!string && is_ted_cfg && line[0] == '%') {
- memset(char_types, SYNTAX_PREPROCESSOR, line_len);
+ if (char_types) memset(char_types, SYNTAX_PREPROCESSOR, line_len);
return;
}
diff --git a/ted.c b/ted.c
index 4eb43be..3c66703 100644
--- a/ted.c
+++ b/ted.c
@@ -268,10 +268,11 @@ static bool ted_is_regular_buffer(Ted *ted, TextBuffer *buffer) {
}
Status ted_get_file(Ted const *ted, const char *name, char *out, size_t outsz) {
- if (ted->search_start_cwd && fs_file_exists(name)) {
+ if (ted->search_start_cwd) {
// check in start_cwd
path_full(ted->start_cwd, name, out, outsz);
- return true;
+ if (fs_file_exists(out))
+ return true;
}
if (*ted->local_data_dir) {
str_printf(out, outsz, "%s" PATH_SEPARATOR_STR "%s", ted->local_data_dir, name);
diff --git a/ted.cfg b/ted.cfg
index bd21664..cf6fda8 100644
--- a/ted.cfg
+++ b/ted.cfg
@@ -351,83 +351,6 @@ Ctrl+Shift+tab = :split-swap
Escape = :escape
-[colors]
-# below, bg is short for background and hl is short for highlight
-
-border = #a77
-active-tab-hl = #a77a
-# this color is used for tabs which are selected, but not active (because you are on the other side of a split, perhaps)
-selected-tab-hl = #7777
-cursor-line-bg = #fff2
-cursor = #3ff
-# used as cursor color when you do autocomplete and there are no suggestions
-cursor-error = #f00
-# color to highlight matching brackets with
-matching-bracket-hl = #fda8
-selection-bg = #36aa
-view-only-cursor = #0d0
-view-only-selection-bg = #0a05
-hl = #ccc
-text = #fff
-# less prominent text color
-text-secondary = #fff7
-# For example, in the open menu it is nice to have a visual distinction between folders and files.
-# This is the color used for folders.
-text-folder = #88f
-# Used for things that are neither files nor folders.
-text-other = #8f8
-bg = #001
-# The entire screen gets filled with this color when a menu (e.g. the "open" menu) is shown.
-# By making it transparent, we can dim everything else while the menu is open.
-menu-backdrop = #0004
-menu-bg = #222
-menu-hl = #afa2
-# error box colors
-error-border = #f00
-error-bg = #800
-# warning box colors
-warning-border = #ff0
-warning-bg = #660
-# info box colors
-info-border = #00f
-info-bg = #004
-# color to highlight search results with
-find-hl = #fff4
-yes = #afa
-no = #faa
-cancel = #ffa
-
-# autocomplete
-autocomplete-bg = #000
-autocomplete-border = #999
-autocomplete-hl = #f6a3
-# hover (press F1 while hovering over an identifier with an LSP server running)
-hover-bg = #000a
-hover-border = #fffa
-hover-text = #fff
-hover-hl = #fff4
-# highlight color for F2 key (LSP "document highlights") for write accesses to a variable
-# (hover-hl is used for read accesses)
-hl-write = #fca4
-# these control the text color for various kinds of completions
-autocomplete-variable = #bfb
-autocomplete-function = #fec
-autocomplete-type = #faf
-
-
-# Syntax highlighting
-keyword = #0c0
-preprocessor = #77f
-string = #f77
-character = #fa7
-builtin = #a7f
-comment = #999
-constant = #8ff
-
-line-numbers = #779
-cursor-line-number = #ddf
-line-numbers-separator = #fff3
-
[extensions]
# text is the default if the extension doesn't match any of the ones below
Text = .txt
@@ -461,3 +384,6 @@ CSS = .css
# Or both!
# [/path/to/special/project//Javascript.keyboard]
# Ctrl+J = "function() {" :insert-text
+
+%include styles/classic.ted.cfg
+
diff --git a/util.c b/util.c
index f7cbfbc..38d201a 100644
--- a/util.c
+++ b/util.c
@@ -123,7 +123,19 @@ const char32_t *util_mem32chr_const(const char32_t *s, char32_t c, size_t n) {
}
bool str_has_prefix(const char *str, const char *prefix) {
- return strncmp(str, prefix, strlen(prefix)) == 0;
+ size_t prefix_len = strlen(prefix);
+ size_t str_len = strlen(str);
+ if (str_len < prefix_len)
+ return false;
+ return memcmp(str, prefix, prefix_len) == 0;
+}
+
+bool str_has_suffix(const char *str, const char *suffix) {
+ size_t suffix_len = strlen(suffix);
+ size_t str_len = strlen(str);
+ if (str_len < suffix_len)
+ return false;
+ return memcmp(str + str_len - suffix_len, suffix, suffix_len) == 0;
}
bool str_has_path_prefix(const char *path, const char *prefix) {
diff --git a/util.h b/util.h
index 0f8ca55..8c65b35 100644
--- a/util.h
+++ b/util.h
@@ -73,9 +73,11 @@ bool util_is_power_of_2(u64 x);
char32_t *util_mem32chr(char32_t *s, char32_t c, size_t n);
/// like memchr, but 32-bit, and constant.
const char32_t *util_mem32chr_const(const char32_t *s, char32_t c, size_t n);
-/// does `str` have this prefix?
+/// does `str` start with `prefix`?
bool str_has_prefix(const char *str, const char *prefix);
-/// like str_has_prefix, but for paths. "ab/cd" is a path-prefix of "ab/cd/ef", but not "ab/cde".
+/// does `str` end with `suffix`?
+bool str_has_suffix(const char *str, const char *suffix);
+/// like \ref str_has_prefix, but for paths. "ab/cd" is a path-prefix of "ab/cd/ef", but not "ab/cde".
/// also handles the fact that \ and / are the same on windows
bool str_has_path_prefix(const char *path, const char *prefix);
/// are these two strings equal?