From 8a13f9fa37b5401c836e0ce8674cee5255512d5e Mon Sep 17 00:00:00 2001 From: pommicket Date: Sat, 4 Mar 2023 18:48:22 -0500 Subject: new light style also highlighting of POSIX types --- buffer.c | 8 ++--- colors.c | 1 - colors.h | 1 - keywords.h | 58 ++++++++++++++++---------------- keywords.py | 8 +++-- main.c | 31 ++++++++--------- styles/classic-light.ted.cfg | 50 +++++++++++++++++++++++++++ styles/classic.ted.cfg | 73 ++++++++++++++++++++++++++++++++++++++++ syntax.c | 2 +- ted.c | 5 +-- ted.cfg | 80 ++------------------------------------------ util.c | 14 +++++++- util.h | 6 ++-- 13 files changed, 200 insertions(+), 137 deletions(-) create mode 100644 styles/classic-light.ted.cfg create mode 100644 styles/classic.ted.cfg 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? -- cgit v1.2.3