Rework c-family shell expansions to speed them up slightly
This commit is contained in:
parent
a9ee4e8af4
commit
ca105f8cc6
|
@ -141,20 +141,20 @@ evaluate-commands %sh{
|
||||||
maybe_at=''
|
maybe_at=''
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf %s\\n '
|
cat <<-EOF
|
||||||
add-highlighter shared/FT regions
|
add-highlighter shared/$ft regions
|
||||||
add-highlighter shared/FT/code default-region group
|
add-highlighter shared/$ft/code default-region group
|
||||||
add-highlighter shared/FT/string region %{MAYBEAT(?<!QUOTE)(?<!QUOTE\\)"} %{(?<!\\)(?:\\\\)*"} fill string
|
add-highlighter shared/$ft/string region %{$maybe_at(?<!')(?<!'\\\\)"} %{(?<!\\\\)(?:\\\\\\\\)*"} fill string
|
||||||
add-highlighter shared/FT/raw_string region -match-capture %{R"([^(]*)\(} %{\)([^")]*)"} fill string
|
add-highlighter shared/$ft/raw_string region -match-capture %{R"([^(]*)\\(} %{\\)([^")]*)"} fill string
|
||||||
add-highlighter shared/FT/comment region /\* \*/ fill comment
|
add-highlighter shared/$ft/comment region /\\* \\*/ fill comment
|
||||||
add-highlighter shared/FT/line_comment region // (?<!\\)(?=\n) fill comment
|
add-highlighter shared/$ft/line_comment region // (?<!\\\\)(?=\\n) fill comment
|
||||||
add-highlighter shared/FT/disabled region -recurse "#\h*if(?:def)?" ^\h*?#\h*if\h+(?:0|FALSE)\b "#\h*(?:else|elif|endif)" fill rgb:666666
|
add-highlighter shared/$ft/disabled region -recurse "#\\h*if(?:def)?" ^\\h*?#\\h*if\\h+(?:0|FALSE)\\b "#\\h*(?:else|elif|endif)" fill rgb:666666
|
||||||
add-highlighter shared/FT/macro region %{^\h*?\K#} %{(?<!\\)(?=\n)|(?=//)} group
|
add-highlighter shared/$ft/macro region %{^\\h*?\\K#} %{(?<!\\\\)(?=\\n)|(?=//)} group
|
||||||
|
|
||||||
add-highlighter shared/FT/macro/ fill meta
|
add-highlighter shared/$ft/macro/ fill meta
|
||||||
add-highlighter shared/FT/macro/ regex ^\h*#include\h+(\S*) 1:module
|
add-highlighter shared/$ft/macro/ regex ^\\h*#include\\h+(\\S*) 1:module
|
||||||
add-highlighter shared/FT/macro/ regex /\*.*?\*/ 0:comment
|
add-highlighter shared/$ft/macro/ regex /\\*.*?\\*/ 0:comment
|
||||||
' | sed -e "s/FT/${ft}/g; s/QUOTE/'/g; s/MAYBEAT/${maybe_at}/;"
|
EOF
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,11 +162,11 @@ evaluate-commands %sh{
|
||||||
add-highlighter shared/c/code/numbers regex %{\b-?(0x[0-9a-fA-F]+|\d+)([uU][lL]{0,2}|[lL]{1,2}[uU]?|[fFdDiI])?|'((\\.)?|[^'\\])'} 0:value
|
add-highlighter shared/c/code/numbers regex %{\b-?(0x[0-9a-fA-F]+|\d+)([uU][lL]{0,2}|[lL]{1,2}[uU]?|[fFdDiI])?|'((\\.)?|[^'\\])'} 0:value
|
||||||
evaluate-commands %sh{
|
evaluate-commands %sh{
|
||||||
# Grammar
|
# Grammar
|
||||||
keywords="asm break case continue default do else for goto if return
|
keywords='asm break case continue default do else for goto if return
|
||||||
sizeof switch while offsetof alignas alignof"
|
sizeof switch while offsetof alignas alignof'
|
||||||
attributes="auto atomic const enum extern inline register restrict static
|
attributes='auto atomic const enum extern inline register restrict static
|
||||||
struct typedef union volatile thread_local"
|
struct typedef union volatile thread_local'
|
||||||
types="char double float int long short signed unsigned void
|
types='char double float int long short signed unsigned void
|
||||||
complex imaginary
|
complex imaginary
|
||||||
fenv_t fexcept_t
|
fenv_t fexcept_t
|
||||||
imaxdiv_t
|
imaxdiv_t
|
||||||
|
@ -186,9 +186,9 @@ evaluate-commands %sh{
|
||||||
mbstate_t wint_t
|
mbstate_t wint_t
|
||||||
wctrans_t wctype_t
|
wctrans_t wctype_t
|
||||||
char16_t char32_t
|
char16_t char32_t
|
||||||
ssize_t gid_t uid_t off_t off64_t useconds_t pid_t socklen_t"
|
ssize_t gid_t uid_t off_t off64_t useconds_t pid_t socklen_t'
|
||||||
|
|
||||||
macros="assert static_assert NDEBUG
|
macros='assert static_assert NDEBUG
|
||||||
I
|
I
|
||||||
EDOM EILSEQ ERANGE errno
|
EDOM EILSEQ ERANGE errno
|
||||||
FE_DIVBYZERO FE_INEXACT FE_INVALID FE_OVERFLOW FE_UNDERFLOW FE_ALL_EXCEPT FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD FE_DFL_ENV
|
FE_DIVBYZERO FE_INEXACT FE_INVALID FE_OVERFLOW FE_UNDERFLOW FE_ALL_EXCEPT FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD FE_DFL_ENV
|
||||||
|
@ -211,7 +211,7 @@ evaluate-commands %sh{
|
||||||
CLOCKS_PER_SEC TIME_UTC
|
CLOCKS_PER_SEC TIME_UTC
|
||||||
WEOF
|
WEOF
|
||||||
noreturn
|
noreturn
|
||||||
R_OK W_OK X_OK F_OK F_LOCK F_ULOCK F_TLOCK F_TEST"
|
R_OK W_OK X_OK F_OK F_LOCK F_ULOCK F_TLOCK F_TEST'
|
||||||
|
|
||||||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||||
|
|
||||||
|
@ -250,20 +250,20 @@ add-highlighter shared/cpp/code/char regex %{(\b(u8|u|U|L)|\B)'((\\.)|[^'\\])'\B
|
||||||
|
|
||||||
evaluate-commands %sh{
|
evaluate-commands %sh{
|
||||||
# Grammar
|
# Grammar
|
||||||
keywords="alignas alignof and and_eq asm bitand bitor break case catch
|
keywords='alignas alignof and and_eq asm bitand bitor break case catch
|
||||||
compl const_cast continue decltype delete do dynamic_cast
|
compl const_cast continue decltype delete do dynamic_cast
|
||||||
else export for goto if new not not_eq operator or or_eq
|
else export for goto if new not not_eq operator or or_eq
|
||||||
reinterpret_cast return sizeof static_assert static_cast switch
|
reinterpret_cast return sizeof static_assert static_cast switch
|
||||||
throw try typedef typeid using while xor xor_eq"
|
throw try typedef typeid using while xor xor_eq'
|
||||||
attributes="audit auto axiom const consteval constexpr default explicit
|
attributes='audit auto axiom const consteval constexpr default explicit
|
||||||
extern final friend inline mutable noexcept override private
|
extern final friend inline mutable noexcept override private
|
||||||
protected public register requires static thread_local typename
|
protected public register requires static thread_local typename
|
||||||
virtual volatile"
|
virtual volatile'
|
||||||
entities="class concept enum namespace struct template union"
|
entities='class concept enum namespace struct template union'
|
||||||
types="bool byte char char8_t char16_t char32_t double float int long
|
types='bool byte char char8_t char16_t char32_t double float int long
|
||||||
max_align_t nullptr_t ptrdiff_t short signed size_t unsigned void
|
max_align_t nullptr_t ptrdiff_t short signed size_t unsigned void
|
||||||
wchar_t"
|
wchar_t'
|
||||||
values="NULL false nullptr this true"
|
values='NULL false nullptr this true'
|
||||||
|
|
||||||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||||
|
|
||||||
|
@ -296,16 +296,16 @@ add-highlighter shared/objc/code/number regex %{\b-?\d+[fdiu]?|'((\\.)?|[^'\\])'
|
||||||
|
|
||||||
evaluate-commands %sh{
|
evaluate-commands %sh{
|
||||||
# Grammar
|
# Grammar
|
||||||
keywords="break case continue default do else for goto if return switch
|
keywords='break case continue default do else for goto if return switch
|
||||||
while"
|
while'
|
||||||
attributes="IBAction IBOutlet __block assign auto const copy enum extern
|
attributes='IBAction IBOutlet __block assign auto const copy enum extern
|
||||||
inline nonatomic readonly retain static strong struct typedef
|
inline nonatomic readonly retain static strong struct typedef
|
||||||
union volatile weak"
|
union volatile weak'
|
||||||
types="BOOL CGFloat NSInteger NSString NSUInteger bool char float
|
types='BOOL CGFloat NSInteger NSString NSUInteger bool char float
|
||||||
instancetype int long short signed size_t unsigned void"
|
instancetype int long short signed size_t unsigned void'
|
||||||
values="FALSE NO NULL TRUE YES id nil self super"
|
values='FALSE NO NULL TRUE YES id nil self super'
|
||||||
decorators="autoreleasepool catch class end implementation interface
|
decorators='autoreleasepool catch class end implementation interface
|
||||||
property protocol selector synchronized synthesize try"
|
property protocol selector synchronized synthesize try'
|
||||||
|
|
||||||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user