Fixed many of the filetype support modules to not use BufSetOption
to load
This commit is contained in:
parent
887a5223ac
commit
80ac46e09d
|
@ -8,8 +8,14 @@ hook global BufCreate .+\.(a(scii)?doc|asc) %{
|
|||
set-option buffer filetype asciidoc
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=asciidoc %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group asciidoc-highlight global WinSetOption filetype=asciidoc %{
|
||||
require-module asciidoc
|
||||
|
||||
add-highlighter window/asciidoc ref asciidoc
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/asciidoc }
|
||||
}
|
||||
|
||||
provide-module asciidoc %{
|
||||
|
@ -40,12 +46,4 @@ add-highlighter shared/asciidoc/ regex ^:[-\w]+: 0:meta
|
|||
# Commands
|
||||
# ‾‾‾‾‾‾‾‾
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group asciidoc-highlight global WinSetOption filetype=asciidoc %{
|
||||
add-highlighter window/asciidoc ref asciidoc
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/asciidoc }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -23,8 +23,39 @@ hook global BufCreate .*\.m %{
|
|||
set-option buffer filetype objc
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=(c|cpp|objc) %{
|
||||
hook global WinSetOption filetype=(c|cpp|objc) %[
|
||||
require-module c-family
|
||||
|
||||
evaluate-commands "set-option window static_words %%opt{%val{hook_param_capture_1}_static_words}"
|
||||
|
||||
hook -group "%val{hook_param_capture_1}-trim-indent" window ModeChange insert:.* c-family-trim-indent
|
||||
hook -group "%val{hook_param_capture_1}-insert" window InsertChar \n c-family-insert-on-newline
|
||||
hook -group "%val{hook_param_capture_1}-indent" window InsertChar \n c-family-indent-on-newline
|
||||
hook -group "%val{hook_param_capture_1}-indent" window InsertChar \{ c-family-indent-on-opening-curly-brace
|
||||
hook -group "%val{hook_param_capture_1}-indent" window InsertChar \} c-family-indent-on-closing-curly-brace
|
||||
hook -group "%val{hook_param_capture_1}-insert" window InsertChar \} c-family-insert-on-closing-curly-brace
|
||||
|
||||
alias window alt "%val{hook_param_capture_1}-alternative-file"
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* "
|
||||
remove-hooks window %val{hook_param_capture_1}-.+
|
||||
unalias window alt %val{hook_param_capture_1}-alternative-file
|
||||
"
|
||||
]
|
||||
|
||||
hook -group c-highlight global WinSetOption filetype=c %{
|
||||
add-highlighter window/c ref c
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/c }
|
||||
}
|
||||
|
||||
hook -group cpp-highlight global WinSetOption filetype=cpp %{
|
||||
add-highlighter window/cpp ref cpp
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/cpp }
|
||||
}
|
||||
|
||||
hook -group objc-highlight global WinSetOption filetype=objc %{
|
||||
add-highlighter window/objc ref objc
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/objc }
|
||||
}
|
||||
|
||||
|
||||
|
@ -234,9 +265,7 @@ evaluate-commands %sh{
|
|||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf '%s\n' "hook global WinSetOption filetype=c %{
|
||||
set-option window static_words $(join "${keywords} ${attributes} ${types} ${macros}" ' ')
|
||||
}"
|
||||
printf %s\\n "declare-option str-list c_static_words $(join "${keywords} ${attributes} ${types} ${macros}" ' ')"
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -286,9 +315,7 @@ evaluate-commands %sh{
|
|||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=cpp %{
|
||||
set-option window static_words $(join "${keywords} ${attributes} ${entities} ${types} ${values}" ' ')
|
||||
}"
|
||||
printf %s\\n "declare-option str-list cpp_static_words $(join "${keywords} ${attributes} ${entities} ${types} ${values}" ' ')"
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -328,9 +355,7 @@ evaluate-commands %sh{
|
|||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=objc %{
|
||||
set-option window static_words $(join "${keywords} ${attributes} ${types} ${values} ${decorators}" ' ')
|
||||
}"
|
||||
printf %s\\n "declare-option str-list objc_static_words $(join "${keywords} ${attributes} ${types} ${values} ${decorators}" ' ')"
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -342,37 +367,6 @@ evaluate-commands %sh{
|
|||
"
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=(c|cpp|objc) %[
|
||||
hook -group "%val{hook_param_capture_1}-trim-indent" window ModeChange insert:.* c-family-trim-indent
|
||||
hook -group "%val{hook_param_capture_1}-insert" window InsertChar \n c-family-insert-on-newline
|
||||
hook -group "%val{hook_param_capture_1}-indent" window InsertChar \n c-family-indent-on-newline
|
||||
hook -group "%val{hook_param_capture_1}-indent" window InsertChar \{ c-family-indent-on-opening-curly-brace
|
||||
hook -group "%val{hook_param_capture_1}-indent" window InsertChar \} c-family-indent-on-closing-curly-brace
|
||||
hook -group "%val{hook_param_capture_1}-insert" window InsertChar \} c-family-insert-on-closing-curly-brace
|
||||
|
||||
alias window alt "%val{hook_param_capture_1}-alternative-file"
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* "
|
||||
remove-hooks window %val{hook_param_capture_1}-.+
|
||||
unalias window alt %val{hook_param_capture_1}-alternative-file
|
||||
"
|
||||
]
|
||||
|
||||
hook -group c-highlight global WinSetOption filetype=c %{
|
||||
add-highlighter window/c ref c
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/c }
|
||||
}
|
||||
|
||||
hook -group cpp-highlight global WinSetOption filetype=cpp %{
|
||||
add-highlighter window/cpp ref cpp
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/cpp }
|
||||
}
|
||||
|
||||
hook -group objc-highlight global WinSetOption filetype=objc %{
|
||||
add-highlighter window/objc ref objc
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/objc }
|
||||
}
|
||||
|
||||
declare-option -docstring %{control the type of include guard to be inserted in empty headers
|
||||
Can be one of the following:
|
||||
ifdef: old style ifndef/define guard
|
||||
|
|
|
@ -8,8 +8,22 @@ hook global BufCreate .*[.](clj|cljc|cljs|cljx|edn) %{
|
|||
set-option buffer filetype clojure
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=clojure %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
hook global WinSetOption filetype=clojure %[
|
||||
require-module clojure
|
||||
|
||||
set-option window static_words %opt{clojure_static_words}
|
||||
|
||||
hook window ModeChange insert:.* -group clojure-trim-indent clojure-trim-indent
|
||||
hook window InsertChar \n -group clojure-indent clojure-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window clojure-.+ }
|
||||
]
|
||||
|
||||
hook -group clojure-highlight global WinSetOption filetype=clojure %{
|
||||
add-highlighter window/clojure ref clojure
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/clojure }
|
||||
}
|
||||
|
||||
provide-module clojure %{
|
||||
|
@ -157,12 +171,11 @@ evaluate-commands %sh{
|
|||
print_word_highlighter(core_fns, "function");
|
||||
print_word_highlighter(core_vars, "variable");
|
||||
|
||||
printf(" hook global WinSetOption filetype=clojure %%{\n"\
|
||||
" set-option window static_words ");
|
||||
printf("declare-option str-list clojure_static_words ")
|
||||
print_static_words(keywords);
|
||||
print_static_words(core_fns);
|
||||
print_static_words(core_vars);
|
||||
printf("\n }\n");
|
||||
printf("\n");
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
@ -199,18 +212,4 @@ define-command -hidden clojure-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
hook -group clojure-highlight global WinSetOption filetype=clojure %{
|
||||
add-highlighter window/clojure ref clojure
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/clojure }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=clojure %[
|
||||
hook window ModeChange insert:.* -group clojure-trim-indent clojure-trim-indent
|
||||
hook window InsertChar \n -group clojure-indent clojure-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window clojure-.+ }
|
||||
]
|
||||
|
||||
}
|
||||
|
|
|
@ -8,10 +8,26 @@ hook global BufCreate .*[.](css) %{
|
|||
set-option buffer filetype css
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=css %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=css %[
|
||||
require-module css
|
||||
|
||||
hook window ModeChange insert:.* -group css-trim-indent css-trim-indent
|
||||
hook window InsertChar \n -group css-indent css-indent-on-new-line
|
||||
hook window InsertChar \} -group css-indent css-indent-on-closing-curly-brace
|
||||
set-option buffer extra_word_chars '_' '-'
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window css-.+ }
|
||||
]
|
||||
|
||||
hook -group css-highlight global WinSetOption filetype=css %{
|
||||
add-highlighter window/css ref css
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/css }
|
||||
}
|
||||
|
||||
|
||||
provide-module css %[
|
||||
|
||||
# Highlighters
|
||||
|
@ -64,21 +80,4 @@ define-command -hidden css-indent-on-closing-curly-brace %[
|
|||
]
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group css-highlight global WinSetOption filetype=css %{
|
||||
add-highlighter window/css ref css
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/css }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=css %[
|
||||
hook window ModeChange insert:.* -group css-trim-indent css-trim-indent
|
||||
hook window InsertChar \n -group css-indent css-indent-on-new-line
|
||||
hook window InsertChar \} -group css-indent css-indent-on-closing-curly-brace
|
||||
set-option buffer extra_word_chars '_' '-'
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window css-.+ }
|
||||
]
|
||||
|
||||
]
|
||||
|
|
|
@ -8,8 +8,26 @@ hook global BufCreate .*\.di? %{
|
|||
set-option buffer filetype d
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=d %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=d %{
|
||||
require-module d
|
||||
|
||||
set-option window static_words %opt{d_static_words}
|
||||
|
||||
# cleanup trailing whitespaces when exiting insert mode
|
||||
hook window ModeChange insert:.* -group d-trim-indent %{ try %{ execute-keys -draft <a-x>s^\h+$<ret>d } }
|
||||
hook window InsertChar \n -group d-indent d-indent-on-new-line
|
||||
hook window InsertChar \{ -group d-indent d-indent-on-opening-curly-brace
|
||||
hook window InsertChar \} -group d-indent d-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window d-.+ }
|
||||
}
|
||||
|
||||
hook -group d-highlight global WinSetOption filetype=d %{
|
||||
add-highlighter window/d ref d
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/d }
|
||||
}
|
||||
|
||||
provide-module d %🦀
|
||||
|
@ -68,9 +86,7 @@ evaluate-commands %sh{
|
|||
decorators="disable|property|nogc|safe|trusted|system"
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=d %{
|
||||
set-option window static_words ${keywords} ${attributes} ${types} ${values} ${decorators} ${properties}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list d_static_words ${keywords} ${attributes} ${types} ${values} ${decorators} ${properties}" | tr '|' ' '
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -119,22 +135,4 @@ define-command -hidden d-indent-on-closing-curly-brace %[
|
|||
try %[ execute-keys -itersel -draft <a-h><a-k>^\h+\}$<ret>hms\A|.\z<ret>1<a-&> ]
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group d-highlight global WinSetOption filetype=d %{
|
||||
add-highlighter window/d ref d
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/d }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=d %{
|
||||
# cleanup trailing whitespaces when exiting insert mode
|
||||
hook window ModeChange insert:.* -group d-trim-indent %{ try %{ execute-keys -draft <a-x>s^\h+$<ret>d } }
|
||||
hook window InsertChar \n -group d-indent d-indent-on-new-line
|
||||
hook window InsertChar \{ -group d-indent d-indent-on-opening-curly-brace
|
||||
hook window InsertChar \} -group d-indent d-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window d-.+ }
|
||||
}
|
||||
|
||||
🦀
|
||||
|
|
|
@ -8,11 +8,29 @@ hook global BufCreate .*\.dart %{
|
|||
set-option buffer filetype dart
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=dart %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=dart %{
|
||||
require-module dart
|
||||
|
||||
set-option window static_words %opt{dart_static_words}
|
||||
|
||||
# cleanup trailing whitespaces when exiting insert mode
|
||||
hook window ModeChange insert:.* -group dart-trim-indent %{ try %{ execute-keys -draft <a-x>s^\h+$<ret>d } }
|
||||
hook window InsertChar \n -group dart-indent dart-indent-on-new-line
|
||||
hook window InsertChar \{ -group dart-indent dart-indent-on-opening-curly-brace
|
||||
hook window InsertChar \} -group dart-indent dart-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window dart-.+ }
|
||||
}
|
||||
|
||||
provide-module dart %{
|
||||
hook -group dart-highlight global WinSetOption filetype=dart %{
|
||||
add-highlighter window/dart ref dart
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/dart }
|
||||
}
|
||||
|
||||
provide-module dart %🦀
|
||||
|
||||
# Highlighters
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
@ -44,9 +62,7 @@ evaluate-commands %sh{
|
|||
classes="[A-Z][a-zA-Z0-9]*"
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=dart %{
|
||||
set-option window static_words ${keywords} ${attributes} ${types} ${values}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list dart_static_words ${keywords} ${attributes} ${types} ${values}" | tr '|' ' '
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -93,23 +109,4 @@ define-command -hidden dart-indent-on-closing-curly-brace %[
|
|||
try %[ execute-keys -itersel -draft <a-h><a-k>^\h+\}$<ret>hms\A|.\z<ret>1<a-&> ]
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group dart-highlight global WinSetOption filetype=dart %{
|
||||
add-highlighter window/dart ref dart
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/dart }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=dart %{
|
||||
# cleanup trailing whitespaces when exiting insert mode
|
||||
hook window ModeChange insert:.* -group dart-trim-indent %{ try %{ execute-keys -draft <a-x>s^\h+$<ret>d } }
|
||||
hook window InsertChar \n -group dart-indent dart-indent-on-new-line
|
||||
hook window InsertChar \{ -group dart-indent dart-indent-on-opening-curly-brace
|
||||
hook window InsertChar \} -group dart-indent dart-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window dart-.+ }
|
||||
}
|
||||
|
||||
# balancing }}}
|
||||
}
|
||||
🦀
|
||||
|
|
|
@ -10,8 +10,17 @@ hook global BufCreate .*/?Dockerfile(\.\w+)?$ %{
|
|||
set-option buffer filetype dockerfile
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=dockerfile %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=dockerfile %{
|
||||
require-module dockerfile
|
||||
set-option window static_words %opt{dockerfile_static_words}
|
||||
}
|
||||
|
||||
hook -group dockerfile-highlight global WinSetOption filetype=dockerfile %{
|
||||
add-highlighter window/dockerfile ref dockerfile
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/dockerfile }
|
||||
}
|
||||
|
||||
provide-module dockerfile %{
|
||||
|
@ -31,9 +40,7 @@ evaluate-commands %sh{
|
|||
keywords="${keywords}|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR"
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=dockerfile %{
|
||||
set window static_words ONBUILD|${keywords}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list dockerfile_static_words ONBUILD|${keywords}" | tr '|' ' '
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -45,12 +52,4 @@ evaluate-commands %sh{
|
|||
add-highlighter shared/dockerfile/code/ regex '\$\{[\w_]+\}' 0:value
|
||||
add-highlighter shared/dockerfile/code/ regex '\$[\w_]+' 0:value
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group dockerfile-highlight global WinSetOption filetype=dockerfile %{
|
||||
add-highlighter window/dockerfile ref dockerfile
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/dockerfile }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,10 +8,24 @@ hook global BufCreate .*[.](ex|exs) %{
|
|||
set-option buffer filetype elixir
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=elixir %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=elixir %{
|
||||
require-module elixir
|
||||
|
||||
hook window ModeChange insert:.* -group elixir-trim-indent elixir-trim-indent
|
||||
hook window InsertChar \n -group elixir-indent elixir-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window elixir-.+ }
|
||||
}
|
||||
|
||||
hook -group elixir-highlight global WinSetOption filetype=elixir %{
|
||||
add-highlighter window/elixir ref elixir
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/elixir }
|
||||
}
|
||||
|
||||
|
||||
provide-module elixir %[
|
||||
|
||||
# Highlighters
|
||||
|
@ -66,19 +80,4 @@ define-command -hidden elixir-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group elixir-highlight global WinSetOption filetype=elixir %{
|
||||
add-highlighter window/elixir ref elixir
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/elixir }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=elixir %{
|
||||
hook window ModeChange insert:.* -group elixir-trim-indent elixir-trim-indent
|
||||
hook window InsertChar \n -group elixir-indent elixir-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window elixir-.+ }
|
||||
}
|
||||
|
||||
]
|
||||
|
|
|
@ -8,8 +8,26 @@ hook global BufCreate .*\.go %{
|
|||
set-option buffer filetype go
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=go %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=go %{
|
||||
require-module go
|
||||
|
||||
set-option window static_words %opt{go_static_words}
|
||||
|
||||
# cleanup trailing whitespaces when exiting insert mode
|
||||
hook window ModeChange insert:.* -group go-trim-indent %{ try %{ execute-keys -draft <a-x>s^\h+$<ret>d } }
|
||||
hook window InsertChar \n -group go-indent go-indent-on-new-line
|
||||
hook window InsertChar \{ -group go-indent go-indent-on-opening-curly-brace
|
||||
hook window InsertChar \} -group go-indent go-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window go-.+ }
|
||||
}
|
||||
|
||||
hook -group go-highlight global WinSetOption filetype=go %{
|
||||
add-highlighter window/go ref go
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/go }
|
||||
}
|
||||
|
||||
provide-module go %🦀
|
||||
|
@ -29,26 +47,26 @@ add-highlighter shared/go/code/ regex %{-?([0-9]*\.(?!0[xX]))?\b([0-9]+|0[xX][0-
|
|||
|
||||
evaluate-commands %sh{
|
||||
# Grammar
|
||||
keywords="break|default|func|interface|select|case|defer|go|map|struct"
|
||||
keywords="${keywords}|chan|else|goto|package|switch|const|fallthrough|if|range|type"
|
||||
keywords="${keywords}|continue|for|import|return|var"
|
||||
types="bool|byte|chan|complex128|complex64|error|float32|float64|int|int16|int32"
|
||||
types="${types}|int64|int8|interface|intptr|map|rune|string|struct|uint|uint16|uint32|uint64|uint8"
|
||||
values="false|true|nil|iota"
|
||||
functions="append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover"
|
||||
keywords='break default func interface select case defer go map struct
|
||||
chan else goto package switch const fallthrough if range type
|
||||
continue for import return var'
|
||||
types='bool byte chan complex128 complex64 error float32 float64 int int16 int32
|
||||
int64 int8 interface intptr map rune string struct uint uint16 uint32 uint64 uint8'
|
||||
values='false true nil iota'
|
||||
functions='append cap close complex copy delete imag len make new panic print println real recover'
|
||||
|
||||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=go %{
|
||||
set-option window static_words ${keywords} ${attributes} ${types} ${values} ${functions}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list go_static_words $(join "${keywords} ${attributes} ${types} ${values} ${functions}" ' ')"
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
add-highlighter shared/go/code/ regex \b(${keywords})\b 0:keyword
|
||||
add-highlighter shared/go/code/ regex \b(${attributes})\b 0:attribute
|
||||
add-highlighter shared/go/code/ regex \b(${types})\b 0:type
|
||||
add-highlighter shared/go/code/ regex \b(${values})\b 0:value
|
||||
add-highlighter shared/go/code/ regex \b(${functions})\b 0:builtin
|
||||
add-highlighter shared/go/code/ regex \b($(join "${keywords}" '|'))\b 0:keyword
|
||||
add-highlighter shared/go/code/ regex \b($(join "${attributes}" '|'))\b 0:attribute
|
||||
add-highlighter shared/go/code/ regex \b($(join "${types}" '|'))\b 0:type
|
||||
add-highlighter shared/go/code/ regex \b($(join "${values}" '|'))\b 0:value
|
||||
add-highlighter shared/go/code/ regex \b($(join "${functions}" '|'))\b 0:builtin
|
||||
"
|
||||
}
|
||||
|
||||
|
@ -84,22 +102,4 @@ define-command -hidden go-indent-on-closing-curly-brace %[
|
|||
try %[ execute-keys -itersel -draft <a-h><a-k>^\h+\}$<ret>hms\A|.\z<ret>1<a-&> ]
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group go-highlight global WinSetOption filetype=go %{
|
||||
add-highlighter window/go ref go
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/go }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=go %{
|
||||
# cleanup trailing whitespaces when exiting insert mode
|
||||
hook window ModeChange insert:.* -group go-trim-indent %{ try %{ execute-keys -draft <a-x>s^\h+$<ret>d } }
|
||||
hook window InsertChar \n -group go-indent go-indent-on-new-line
|
||||
hook window InsertChar \{ -group go-indent go-indent-on-opening-curly-brace
|
||||
hook window InsertChar \} -group go-indent go-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window go-.+ }
|
||||
}
|
||||
|
||||
🦀
|
||||
|
|
|
@ -8,10 +8,25 @@ hook global BufCreate .*[.](hs) %{
|
|||
set-option buffer filetype haskell
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=haskell %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=haskell %{
|
||||
require-module haskell
|
||||
|
||||
set-option window extra_word_chars '_' "'"
|
||||
hook window ModeChange insert:.* -group haskell-trim-indent haskell-trim-indent
|
||||
hook window InsertChar \n -group haskell-indent haskell-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window haskell-.+ }
|
||||
}
|
||||
|
||||
hook -group haskell-highlight global WinSetOption filetype=haskell %{
|
||||
add-highlighter window/haskell ref haskell
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/haskell }
|
||||
}
|
||||
|
||||
|
||||
provide-module haskell %[
|
||||
|
||||
# Highlighters
|
||||
|
@ -94,20 +109,4 @@ define-command -hidden haskell-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group haskell-highlight global WinSetOption filetype=haskell %{
|
||||
add-highlighter window/haskell ref haskell
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/haskell }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=haskell %{
|
||||
set-option window extra_word_chars '_' "'"
|
||||
hook window ModeChange insert:.* -group haskell-trim-indent haskell-trim-indent
|
||||
hook window InsertChar \n -group haskell-indent haskell-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window haskell-.+ }
|
||||
}
|
||||
|
||||
]
|
||||
|
|
|
@ -12,10 +12,29 @@ hook global BufCreate .*\.xml %{
|
|||
set-option buffer filetype xml
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=(html|xml) %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=(html|xml) %{
|
||||
require-module html
|
||||
|
||||
hook window ModeChange insert:.* -group "%val{hook_param_capture_1}-trim-indent" html-trim-indent
|
||||
hook window InsertChar '>' -group "%val{hook_param_capture_1}-indent" html-indent-on-greater-than
|
||||
hook window InsertChar \n -group "%val{hook_param_capture_1}-indent" html-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption "filetype=.*" "
|
||||
remove-hooks window ""%val{hook_param_capture_1}-.+""
|
||||
"
|
||||
}
|
||||
|
||||
hook -group html-highlight global WinSetOption filetype=(html|xml) %{
|
||||
add-highlighter "window/%val{hook_param_capture_1}" ref html
|
||||
hook -once -always window WinSetOption "filetype=.*" "
|
||||
remove-highlighter ""window/%val{hook_param_capture_1}""
|
||||
"
|
||||
}
|
||||
|
||||
|
||||
provide-module html %[
|
||||
|
||||
try %{
|
||||
|
@ -65,24 +84,4 @@ define-command -hidden html-indent-on-new-line %{
|
|||
try %{ execute-keys -draft k <a-x> <a-k> <lt>(?!area)(?!base)(?!br)(?!col)(?!command)(?!embed)(?!hr)(?!img)(?!input)(?!keygen)(?!link)(?!menuitem)(?!meta)(?!param)(?!source)(?!track)(?!wbr)(?!/)(?!>)[a-zA-Z0-9_-]+[^>]*?>$ <ret> j <a-gt> } }
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group html-highlight global WinSetOption filetype=(html|xml) %{
|
||||
add-highlighter "window/%val{hook_param_capture_1}" ref html
|
||||
hook -once -always window WinSetOption "filetype=.*" "
|
||||
remove-highlighter ""window/%val{hook_param_capture_1}""
|
||||
"
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=(html|xml) %{
|
||||
hook window ModeChange insert:.* -group "%val{hook_param_capture_1}-trim-indent" html-trim-indent
|
||||
hook window InsertChar '>' -group "%val{hook_param_capture_1}-indent" html-indent-on-greater-than
|
||||
hook window InsertChar \n -group "%val{hook_param_capture_1}-indent" html-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption "filetype=.*" "
|
||||
remove-hooks window ""%val{hook_param_capture_1}-.+""
|
||||
"
|
||||
}
|
||||
|
||||
]
|
||||
|
|
|
@ -13,6 +13,34 @@ hook -once global BufSetOption filetype=(java|type)script %{
|
|||
require-module javascript
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=(javascript|typescript) %{
|
||||
require-module javascript
|
||||
|
||||
hook window ModeChange insert:.* -group "%val{hook_param_capture_1}-trim-indent javascript-trim-indent"
|
||||
hook window InsertChar .* -group "%val{hook_param_capture_1}-indent javascript-indent-on-char"
|
||||
hook window InsertChar \n -group "%val{hook_param_capture_1}-indent javascript-indent-on-new-line"
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* "
|
||||
remove-hooks window %val{hook_param_capture_1}-.+
|
||||
"
|
||||
}
|
||||
|
||||
hook -group javascript-highlight global WinSetOption filetype=javascript %{
|
||||
add-highlighter window/javascript ref javascript
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/javascript }
|
||||
}
|
||||
|
||||
hook -group typescript-highlight global WinSetOption filetype=typescript %{
|
||||
add-highlighter window/typescript ref typescript
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/typescript }
|
||||
}
|
||||
|
||||
|
||||
provide-module javascript %🦀
|
||||
|
||||
# Commands
|
||||
|
@ -93,23 +121,6 @@ define-command -hidden init-javascript-filetype -params 1 %~
|
|||
# Keywords are collected at
|
||||
# https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords
|
||||
add-highlighter "shared/%arg{1}/code/" regex \b(async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|export|extends|finally|for|function|if|import|in|instanceof|let|new|of|return|static|super|switch|throw|try|typeof|var|void|while|with|yield)\b 0:keyword
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group "%arg{1}-highlight" global WinSetOption "filetype=%arg{1}" "
|
||||
add-highlighter window/%arg{1} ref %arg{1}
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %%{ remove-highlighter window/%arg{1} }
|
||||
"
|
||||
|
||||
hook global WinSetOption "filetype=%arg{1}" "
|
||||
hook window ModeChange insert:.* -group %arg{1}-trim-indent javascript-trim-indent
|
||||
hook window InsertChar .* -group %arg{1}-indent javascript-indent-on-char
|
||||
hook window InsertChar \n -group %arg{1}-indent javascript-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %%{ remove-hooks window %arg{1}-.+ }
|
||||
"
|
||||
~
|
||||
|
||||
init-javascript-filetype javascript
|
||||
|
|
|
@ -9,9 +9,27 @@ hook global BufCreate .*[.](json) %{
|
|||
}
|
||||
|
||||
hook -once global BufSetOption filetype=json %{
|
||||
require-module json
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=json %{
|
||||
require-module json
|
||||
|
||||
hook window ModeChange insert:.* -group json-trim-indent json-trim-indent
|
||||
hook window InsertChar .* -group json-indent json-indent-on-char
|
||||
hook window InsertChar \n -group json-indent json-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window json-.+ }
|
||||
}
|
||||
|
||||
hook -group json-highlight global WinSetOption filetype=json %{
|
||||
add-highlighter window/json ref json
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/json }
|
||||
}
|
||||
|
||||
|
||||
provide-module json %(
|
||||
|
||||
# Highlighters
|
||||
|
@ -49,20 +67,4 @@ define-command -hidden json-indent-on-new-line %<
|
|||
>
|
||||
>
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group json-highlight global WinSetOption filetype=json %{
|
||||
add-highlighter window/json ref json
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/json }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=json %{
|
||||
hook window ModeChange insert:.* -group json-trim-indent json-trim-indent
|
||||
hook window InsertChar .* -group json-indent json-indent-on-char
|
||||
hook window InsertChar \n -group json-indent json-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window json-.+ }
|
||||
}
|
||||
|
||||
)
|
||||
|
|
|
@ -8,8 +8,27 @@ hook global BufCreate (.*/)?(kakrc|.*.kak) %{
|
|||
set-option buffer filetype kak
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=kak %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=kak %~
|
||||
require-module kak
|
||||
|
||||
set-option window static_words %opt{kak_static_words}
|
||||
|
||||
hook window InsertChar \n -group kak-indent kak-indent-on-new-line
|
||||
hook window InsertChar [>)}\]] -group kak-indent kak-indent-on-closing-matching
|
||||
hook window InsertChar (?![[{(<>)}\]])[^\s\w] -group kak-indent kak-indent-on-closing-char
|
||||
# cleanup trailing whitespaces on current line insert end
|
||||
hook window ModeChange insert:.* -group kak-trim-indent %{ try %{ execute-keys -draft \; <a-x> s ^\h+$ <ret> d } }
|
||||
set-option buffer extra_word_chars '_' '-'
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window kak-.+ }
|
||||
~
|
||||
|
||||
hook -group kak-highlight global WinSetOption filetype=kak %{
|
||||
add-highlighter window/kakrc ref kakrc
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/kakrc }
|
||||
}
|
||||
|
||||
provide-module kak %🦀
|
||||
|
@ -52,10 +71,7 @@ evaluate-commands %sh{
|
|||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf '%s\n' "hook global WinSetOption filetype=kak %{
|
||||
set-option window static_words $(join "${keywords} ${attributes} ${types} ${values}" ' ')'
|
||||
set-option -- window extra_word_chars '_' '-'
|
||||
}"
|
||||
printf %s\\n "declare-option str-list kak_static_words $(join "${keywords} ${attributes} ${types} ${values}" ' ')'"
|
||||
|
||||
# Highlight keywords (which are always surrounded by whitespace)
|
||||
printf '%s\n' "add-highlighter shared/kakrc/code/keywords regex (?:\s|\A)\K($(join "${keywords}" '|'))(?:(?=\s)|\z) 0:keyword
|
||||
|
@ -98,23 +114,4 @@ define-command -hidden kak-indent-on-closing-char %{
|
|||
try %{ execute-keys -draft -itersel <a-h><a-k>^\h*\Q %val{hook_param} \E$<ret>gi<a-f> %val{hook_param} <a-T>%<a-k>\w*\Q %val{hook_param} \E$<ret> s \A|.\z<ret> gi 1<a-&> }
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group kak-highlight global WinSetOption filetype=kak %{
|
||||
add-highlighter window/kakrc ref kakrc
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/kakrc }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=kak %~
|
||||
hook window InsertChar \n -group kak-indent kak-indent-on-new-line
|
||||
hook window InsertChar [>)}\]] -group kak-indent kak-indent-on-closing-matching
|
||||
hook window InsertChar (?![[{(<>)}\]])[^\s\w] -group kak-indent kak-indent-on-closing-char
|
||||
# cleanup trailing whitespaces on current line insert end
|
||||
hook window ModeChange insert:.* -group kak-trim-indent %{ try %{ execute-keys -draft \; <a-x> s ^\h+$ <ret> d } }
|
||||
set-option buffer extra_word_chars '_' '-'
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window kak-.+ }
|
||||
~
|
||||
|
||||
🦀
|
||||
|
|
|
@ -8,10 +8,18 @@ hook global BufCreate .*\.tex %{
|
|||
set-option buffer filetype latex
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=latex %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=latex %{
|
||||
require-module latex
|
||||
}
|
||||
|
||||
hook -group latex-highlight global WinSetOption filetype=latex %{
|
||||
add-highlighter window/latex ref latex
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/latex }
|
||||
}
|
||||
|
||||
provide-module latex %(
|
||||
|
||||
# Highlighters
|
||||
|
@ -32,12 +40,4 @@ add-highlighter shared/latex/content/ regex '\\(emph|textit)\{([^}]+)\}' 2:defau
|
|||
# Bold text
|
||||
add-highlighter shared/latex/content/ regex '\\textbf\{([^}]+)\}' 1:default+b
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group latex-highlight global WinSetOption filetype=latex %{
|
||||
add-highlighter window/latex ref latex
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/latex }
|
||||
}
|
||||
|
||||
)
|
||||
|
|
|
@ -8,8 +8,21 @@ hook global BufCreate .*[.](lisp) %{
|
|||
set-option buffer filetype lisp
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=lisp %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=lisp %{
|
||||
require-module lisp
|
||||
|
||||
hook window ModeChange insert:.* -group lisp-trim-indent lisp-trim-indent
|
||||
hook window InsertChar \n -group lisp-indent lisp-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window lisp-.+ }
|
||||
}
|
||||
|
||||
hook -group lisp-highlight global WinSetOption filetype=lisp %{
|
||||
add-highlighter window/lisp ref lisp
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/lisp }
|
||||
}
|
||||
|
||||
provide-module lisp %{
|
||||
|
@ -64,19 +77,4 @@ define-command -hidden lisp-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group lisp-highlight global WinSetOption filetype=lisp %{
|
||||
add-highlighter window/lisp ref lisp
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/lisp }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=lisp %{
|
||||
hook window ModeChange insert:.* -group lisp-trim-indent lisp-trim-indent
|
||||
hook window InsertChar \n -group lisp-indent lisp-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window lisp-.+ }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,10 +8,30 @@ hook global BufCreate .*[.](lua) %{
|
|||
set-option buffer filetype lua
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=lua %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=lua %{
|
||||
require-module lua
|
||||
|
||||
hook window InsertChar .* -group lua-indent lua-indent-on-char
|
||||
hook window InsertChar \n -group lua-indent lua-indent-on-new-line
|
||||
hook window InsertChar \n -group lua-insert lua-insert-on-new-line
|
||||
|
||||
alias window alt lua-alternative-file
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{
|
||||
remove-hooks window lua-.+
|
||||
unalias window alt lua-alternative-file
|
||||
}
|
||||
}
|
||||
|
||||
hook -group lua-highlight global WinSetOption filetype=lua %{
|
||||
add-highlighter window/lua ref lua
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/lua }
|
||||
}
|
||||
|
||||
|
||||
provide-module lua %[
|
||||
|
||||
# Highlighters
|
||||
|
@ -87,25 +107,4 @@ define-command -hidden lua-insert-on-new-line %[
|
|||
]
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group lua-highlight global WinSetOption filetype=lua %{
|
||||
add-highlighter window/lua ref lua
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/lua }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=lua %{
|
||||
hook window InsertChar .* -group lua-indent lua-indent-on-char
|
||||
hook window InsertChar \n -group lua-indent lua-indent-on-new-line
|
||||
hook window InsertChar \n -group lua-insert lua-insert-on-new-line
|
||||
|
||||
alias window alt lua-alternative-file
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{
|
||||
remove-hooks window lua-.+
|
||||
unalias window alt lua-alternative-file
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
|
|
|
@ -5,8 +5,21 @@ hook global BufCreate .*(/?[mM]akefile|\.mk) %{
|
|||
set-option buffer filetype makefile
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=makefile %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=makefile %{
|
||||
require-module makefile
|
||||
|
||||
set-option window static_words %opt{makefile_static_words}
|
||||
|
||||
hook window InsertChar \n -group makefile-indent makefile-indent-on-new-line
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window makefile-.+ }
|
||||
}
|
||||
|
||||
hook -group makefile-highlight global WinSetOption filetype=makefile %{
|
||||
add-highlighter window/makefile ref makefile
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/makefile }
|
||||
}
|
||||
|
||||
provide-module makefile %{
|
||||
|
@ -28,9 +41,7 @@ evaluate-commands %sh{
|
|||
keywords="ifeq|ifneq|ifdef|ifndef|else|endif|define|endef"
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=makefile %{
|
||||
set-option window static_words ${keywords}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list makefile_static_words ${keywords}" | tr '|' ' '
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "add-highlighter shared/makefile/content/ regex \b(${keywords})\b 0:keyword"
|
||||
|
@ -52,17 +63,4 @@ define-command -hidden makefile-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group makefile-highlight global WinSetOption filetype=makefile %{
|
||||
add-highlighter window/makefile ref makefile
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/makefile }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=makefile %{
|
||||
hook window InsertChar \n -group makefile-indent makefile-indent-on-new-line
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window makefile-.+ }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,8 +8,24 @@ hook global BufCreate .*\.nim(s|ble)? %{
|
|||
set-option buffer filetype nim
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=nim %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=nim %{
|
||||
require-module nim
|
||||
|
||||
set-option window static_words %opt{nim_static_words}
|
||||
|
||||
hook window InsertChar \n -group nim-indent nim-indent-on-new-line
|
||||
# cleanup trailing whitespaces on current line insert end
|
||||
hook window ModeChange insert:.* -group nim-trim-indent %{ try %{ exec -draft \; <a-x> s ^\h+$ <ret> d } }
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window nim-.+ }
|
||||
}
|
||||
|
||||
hook -group nim-highlight global WinSetOption filetype=nim %{
|
||||
add-highlighter window/nim ref nim
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/nim }
|
||||
}
|
||||
|
||||
provide-module nim %{
|
||||
|
@ -57,9 +73,7 @@ evaluate-commands %sh{
|
|||
static_words="$(join "${keywords} ${types} ${operator} ${values}" ' ')"
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s "hook global WinSetOption filetype=nim %{
|
||||
set-option window static_words ${static_words}
|
||||
}"
|
||||
printf %s\\n "declare-option str-list nim_static_words ${static_words}"
|
||||
|
||||
keywords="$(join "${keywords}" '|')"
|
||||
operators="$(join "${operators}" '|')"
|
||||
|
@ -101,20 +115,4 @@ def -hidden nim-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group nim-highlight global WinSetOption filetype=nim %{
|
||||
add-highlighter window/nim ref nim
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/nim }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=nim %{
|
||||
hook window InsertChar \n -group nim-indent nim-indent-on-new-line
|
||||
# cleanup trailing whitespaces on current line insert end
|
||||
hook window ModeChange insert:.* -group nim-trim-indent %{ try %{ exec -draft \; <a-x> s ^\h+$ <ret> d } }
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window nim-.+ }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,8 +8,17 @@ hook global BufCreate .*\.mli? %{
|
|||
set-option buffer filetype ocaml
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=ocaml %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=ocaml %{
|
||||
require-module ocaml
|
||||
set-option window static_words %opt{ocaml_static_words}
|
||||
}
|
||||
|
||||
hook -group ocaml-highlight global WinSetOption filetype=ocaml %{
|
||||
add-highlighter window/ocaml ref ocaml
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/ocaml }
|
||||
}
|
||||
|
||||
provide-module ocaml %{
|
||||
|
@ -22,24 +31,19 @@ add-highlighter shared/ocaml/code default-region group
|
|||
add-highlighter shared/ocaml/string region '"' (?<!\\)(\\\\)*" fill string
|
||||
add-highlighter shared/ocaml/comment region \Q(* \Q*) fill comment
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group ocaml-highlight global WinSetOption filetype=ocaml %{
|
||||
add-highlighter window/ocaml ref ocaml
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/ocaml }
|
||||
}
|
||||
|
||||
# Macro
|
||||
# ‾‾‾‾‾
|
||||
|
||||
evaluate-commands %sh{
|
||||
keywords=and:as:asr:assert:begin:class:constraint:do:done:downto:else:end:exception:external:false:for:fun:function:functor:if:in:include:inherit:initializer:land:lazy:let:lor:lsl:lsr:lxor:match:method:mod:module:mutable:new:nonrec:object:of:open:or:private:rec:sig:struct:then:to:true:try:type:val:virtual:when:while:with
|
||||
echo "
|
||||
add-highlighter shared/ocaml/code/ regex \b($(printf $keywords | tr : '|'))\b 0:keyword
|
||||
hook global WinSetOption filetype=ocaml %{
|
||||
set-option window static_words $keywords
|
||||
}
|
||||
keywords="and|as|asr|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false"
|
||||
keywords="${keywords}|for|fun|function|functor|if|in|include|inherit|initializer|land|lazy|let|lor"
|
||||
keywords="${keywords}|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|object|of|open|or"
|
||||
keywords="${keywords}|private|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with"
|
||||
|
||||
printf %s\\n "declare-option str-list ocaml_static_words ${keywords}" | tr '|' ' '
|
||||
|
||||
printf %s "
|
||||
add-highlighter shared/ocaml/code/ regex \b(${keywords})\b 0:keyword
|
||||
"
|
||||
}
|
||||
|
||||
|
|
|
@ -8,8 +8,26 @@ hook global BufCreate .*\.(t|p[lm])$ %{
|
|||
set-option buffer filetype perl
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=perl %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=perl %{
|
||||
require-module perl
|
||||
|
||||
set-option window static_words %opt{perl_static_words}
|
||||
|
||||
# cleanup trailing whitespaces when exiting insert mode
|
||||
hook window ModeChange insert:.* -group perl-trim-indent %{ try %{ execute-keys -draft <a-x>s^\h+$<ret>d } }
|
||||
hook window InsertChar \n -group perl-indent perl-indent-on-new-line
|
||||
hook window InsertChar \{ -group perl-indent perl-indent-on-opening-curly-brace
|
||||
hook window InsertChar \} -group perl-indent perl-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window perl-.+ }
|
||||
}
|
||||
|
||||
hook -group perl-highlight global WinSetOption filetype=perl %{
|
||||
add-highlighter window/perl ref perl
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/perl }
|
||||
}
|
||||
|
||||
provide-module perl %🦀
|
||||
|
@ -26,31 +44,31 @@ add-highlighter shared/perl/comment region (?<!\$)(?<!\\)# $
|
|||
|
||||
evaluate-commands %sh{
|
||||
# Grammar
|
||||
keywords="else|lock|qw|elsif|lt|qx|eq|exp|ne|sub|for|no|my|not|tr|goto|and|foreach|or|break|exit|unless|cmp|ge|package|until|continue|gt|while|if|qq|xor|do|le|qr|return"
|
||||
attributes="END|AUTOLOAD|BEGIN|CHECK|UNITCHECK|INIT|DESTROY"
|
||||
attributes="${attributes}|length|setpgrp|endgrent|link|setpriority|endhostent|listen|setprotoent|endnetent|local|setpwent"
|
||||
attributes="${attributes}|endprotoent|localtime|setservent|endpwent|log|setsockopt|endservent|lstat|shift|eof|map|shmctl|eval|mkdir|shmget|exec|msgctl|shmread"
|
||||
attributes="${attributes}|exists|msgget|shmwrite|msgrcv|shutdown|fcntl|msgsnd|sin|fileno|sleep|flock|next|socket|fork|socketpair|format|oct|sort"
|
||||
attributes="${attributes}|formline|open|splice|getc|opendir|split|getgrent|ord|sprintf|getgrgid|our|sqrt|getgrnam|pack|srand|gethostbyaddr|pipe|stat|gethostbyname"
|
||||
attributes="${attributes}|pop|state|gethostent|pos|study|getlogin|print|substr|getnetbyaddr|printf|symlink|abs|getnetbyname|prototype|syscall|accept|getnetent"
|
||||
attributes="${attributes}|push|sysopen|alarm|getpeername|quotemeta|sysread|atan2|getpgrp|rand|sysseek|getppid|read|system|getpriority|readdir|syswrite|bind"
|
||||
attributes="${attributes}|getprotobyname|readline|tell|binmode|getprotobynumber|readlink|telldir|bless|getprotoent|readpipe|tie|getpwent|recv|tied|caller"
|
||||
attributes="${attributes}|getpwnam|redo|time|chdir|getpwuid|ref|times|getservbyname|rename|truncate|chmod|getservbyport|require|uc|chomp|getservent|reset|ucfirst"
|
||||
attributes="${attributes}|chop|getsockname|umask|chown|getsockopt|reverse|undef|chr|glob|rewinddir|chroot|gmtime|rindex|unlink|close|rmdir|unpack"
|
||||
attributes="${attributes}|closedir|grep|say|unshift|connect|hex|scalar|untie|cos|index|seek|use|crypt|seekdir|utime|dbmclose|int|select|values|dbmopen|ioctl|semctl"
|
||||
attributes="${attributes}|vec|defined|join|semget|wait|delete|keys|semop|waitpid|kill|send|wantarray|die|last|setgrent|warn|dump|lc|sethostent|write|each|lcfirst|setnetent"
|
||||
values="ARGV|STDERR|STDOUT|ARGVOUT|STDIN|__DATA__|__END__|__FILE__|__LINE__|__PACKAGE__"
|
||||
keywords="else lock qw elsif lt qx eq exp ne sub for no my not tr goto and foreach or break exit unless cmp ge package until continue gt while if qq xor do le qr return"
|
||||
attributes="END AUTOLOAD BEGIN CHECK UNITCHECK INIT DESTROY
|
||||
length setpgrp endgrent link setpriority endhostent listen setprotoent endnetent local setpwent
|
||||
endprotoent localtime setservent endpwent log setsockopt endservent lstat shift eof map shmctl eval mkdir shmget exec msgctl shmread
|
||||
exists msgget shmwrite msgrcv shutdown fcntl msgsnd sin fileno sleep flock next socket fork socketpair format oct sort
|
||||
formline open splice getc opendir split getgrent ord sprintf getgrgid our sqrt getgrnam pack srand gethostbyaddr pipe stat gethostbyname
|
||||
pop state gethostent pos study getlogin print substr getnetbyaddr printf symlink abs getnetbyname prototype syscall accept getnetent
|
||||
push sysopen alarm getpeername quotemeta sysread atan2 getpgrp rand sysseek getppid read system getpriority readdir syswrite bind
|
||||
getprotobyname readline tell binmode getprotobynumber readlink telldir bless getprotoent readpipe tie getpwent recv tied caller
|
||||
getpwnam redo time chdir getpwuid ref times getservbyname rename truncate chmod getservbyport require uc chomp getservent reset ucfirst
|
||||
chop getsockname umask chown getsockopt reverse undef chr glob rewinddir chroot gmtime rindex unlink close rmdir unpack
|
||||
closedir grep say unshift connect hex scalar untie cos index seek use crypt seekdir utime dbmclose int select values dbmopen ioctl semctl
|
||||
vec defined join semget wait delete keys semop waitpid kill send wantarray die last setgrent warn dump lc sethostent write each lcfirst setnetent"
|
||||
values="ARGV STDERR STDOUT ARGVOUT STDIN __DATA__ __END__ __FILE__ __LINE__ __PACKAGE__"
|
||||
|
||||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=perl %{
|
||||
set-option window static_words ${keywords} ${attributes} ${values}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list perl_static_words $(join "${keywords} ${attributes} ${values}" ' ')"
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
add-highlighter shared/perl/code/ regex \b(${keywords})\b 0:keyword
|
||||
add-highlighter shared/perl/code/ regex \b(${attributes})\b 0:attribute
|
||||
add-highlighter shared/perl/code/ regex \b(${values})\b 0:value
|
||||
add-highlighter shared/perl/code/ regex \b($(join "${keywords}" '|'))\b 0:keyword
|
||||
add-highlighter shared/perl/code/ regex \b($(join "${attributes}" '|'))\b 0:attribute
|
||||
add-highlighter shared/perl/code/ regex \b($(join "${values}" '|'))\b 0:value
|
||||
"
|
||||
}
|
||||
|
||||
|
@ -101,22 +119,4 @@ define-command -hidden perl-indent-on-closing-curly-brace %[
|
|||
try %[ execute-keys -itersel -draft <a-h><a-k>^\h+\}$<ret>hms\A|.\z<ret>1<a-&> ]
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group perl-highlight global WinSetOption filetype=perl %{
|
||||
add-highlighter window/perl ref perl
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/perl }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=perl %{
|
||||
# cleanup trailing whitespaces when exiting insert mode
|
||||
hook window ModeChange insert:.* -group perl-trim-indent %{ try %{ execute-keys -draft <a-x>s^\h+$<ret>d } }
|
||||
hook window InsertChar \n -group perl-indent perl-indent-on-new-line
|
||||
hook window InsertChar \{ -group perl-indent perl-indent-on-opening-curly-brace
|
||||
hook window InsertChar \} -group perl-indent perl-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window perl-.+ }
|
||||
}
|
||||
|
||||
🦀
|
||||
|
|
|
@ -5,8 +5,22 @@ hook global BufCreate .*[.](php) %{
|
|||
set-option buffer filetype php
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=php %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=php %{
|
||||
require-module php
|
||||
|
||||
hook window ModeChange insert:.* -group php-trim-indent php-trim-indent
|
||||
hook window InsertChar .* -group php-indent php-indent-on-char
|
||||
hook window InsertChar \n -group php-indent php-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window php-.+ }
|
||||
}
|
||||
|
||||
hook -group php-highlight global WinSetOption filetype=php %{
|
||||
add-highlighter window/php-file ref php-file
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/php-file }
|
||||
}
|
||||
|
||||
provide-module php %(
|
||||
|
@ -80,20 +94,4 @@ define-command -hidden php-indent-on-new-line %<
|
|||
>
|
||||
>
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group php-highlight global WinSetOption filetype=php %{
|
||||
add-highlighter window/php-file ref php-file
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/php-file }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=php %{
|
||||
hook window ModeChange insert:.* -group php-trim-indent php-trim-indent
|
||||
hook window InsertChar .* -group php-indent php-indent-on-char
|
||||
hook window InsertChar \n -group php-indent php-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window php-.+ }
|
||||
}
|
||||
|
||||
)
|
||||
|
|
|
@ -8,8 +8,24 @@ hook global BufCreate .*[.](pony) %{
|
|||
set-option buffer filetype pony
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=pony %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=pony %{
|
||||
require-module pony
|
||||
|
||||
set-option window static_words %opt{pony_static_words}
|
||||
|
||||
hook window InsertChar \n -group pony-indent pony-indent-on-new-line
|
||||
# cleanup trailing whitespaces on current line insert end
|
||||
hook window ModeChange insert:.* -group pony-trim-indent %{ try %{ execute-keys -draft \; <a-x> s ^\h+$ <ret> d } }
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window pony-.+ }
|
||||
}
|
||||
|
||||
hook -group pony-highlight global WinSetOption filetype=pony %{
|
||||
add-highlighter window/pony ref pony
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter pony }
|
||||
}
|
||||
|
||||
provide-module pony %{
|
||||
|
@ -39,9 +55,7 @@ evaluate-commands %sh{
|
|||
# Add the language's grammar to the static completion list
|
||||
static_words="${values} ${meta} ${keywords} ${types_decl} ${capabilities}"
|
||||
static_words="${static_words} ${struct}"
|
||||
printf %s\\n "hook global WinSetOption filetype=pony %{
|
||||
set-option window static_words ${static_words}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list pony_static_words ${static_words}" | tr '|' ' '
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -81,20 +95,4 @@ define-command -hidden pony-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group pony-highlight global WinSetOption filetype=pony %{
|
||||
add-highlighter window/pony ref pony
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter pony }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=pony %{
|
||||
hook window InsertChar \n -group pony-indent pony-indent-on-new-line
|
||||
# cleanup trailing whitespaces on current line insert end
|
||||
hook window ModeChange insert:.* -group pony-trim-indent %{ try %{ execute-keys -draft \; <a-x> s ^\h+$ <ret> d } }
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window pony-.+ }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,8 +7,24 @@ hook global BufCreate .*\.proto$ %{
|
|||
set-option buffer filetype protobuf
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=protobuf %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=protobuf %[
|
||||
require-module protobuf
|
||||
|
||||
set-option window static_words %opt{protobuf_static_words}
|
||||
|
||||
hook -group protobuf-indent window InsertChar \n protobuf-indent-on-newline
|
||||
hook -group protobuf-indent window InsertChar \{ protobuf-indent-on-opening-curly-brace
|
||||
hook -group protobuf-indent window InsertChar \} protobuf-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window protobuf-.+ }
|
||||
]
|
||||
|
||||
hook -group protobuf-highlight global WinSetOption filetype=protobuf %{
|
||||
add-highlighter window/protobuf ref protobuf
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/protobuf }
|
||||
}
|
||||
|
||||
provide-module protobuf %[
|
||||
|
@ -26,31 +42,30 @@ add-highlighter shared/protobuf/code/ regex %{(0x)?[0-9]+\b} 0:value
|
|||
|
||||
evaluate-commands %sh{
|
||||
# Grammer
|
||||
keywords="default|deprecated|enum|extend|import|message|oneof|option"
|
||||
keywords="${keywords}|package|service|syntax"
|
||||
attributes="optional|repeated|required"
|
||||
types="double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64"
|
||||
types="${types}|sfixed32|sfixed64|bool|string|bytes|rpc"
|
||||
values="false|true"
|
||||
keywords='default deprecated enum extend import message oneof option
|
||||
package service syntax'
|
||||
attributes='optional repeated required'
|
||||
types='double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64
|
||||
sfixed32 sfixed64 bool string bytes rpc'
|
||||
values='false true'
|
||||
|
||||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammer to the static completion list
|
||||
printf '%s\n' "hook global WinSetOption filetype=protobuf %{
|
||||
set-option window static_words ${keywords} ${attributes} ${types} ${values}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list protobuf_static_words $(join "${keywords} ${attributes} ${types} ${values}" ' ')"
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
add-highlighter shared/protobuf/code/keywords regex \b(${keywords})\b 0:keyword
|
||||
add-highlighter shared/protobuf/code/attributes regex \b(${attributes})\b 0:attribute
|
||||
add-highlighter shared/protobuf/code/types regex \b(${types})\b 0:type
|
||||
add-highlighter shared/protobuf/code/values regex \b(${values})\b 0:value
|
||||
add-highlighter shared/protobuf/code/keywords regex \b($(join "${keywords}" '|'))\b 0:keyword
|
||||
add-highlighter shared/protobuf/code/attributes regex \b($(join "${attributes}" '|'))\b 0:attribute
|
||||
add-highlighter shared/protobuf/code/types regex \b($(join "${types}" '|'))\b 0:type
|
||||
add-highlighter shared/protobuf/code/values regex \b($(join "${values}" '|'))\b 0:value
|
||||
"
|
||||
}
|
||||
|
||||
# Commands
|
||||
# ‾‾‾‾‾‾‾‾
|
||||
|
||||
|
||||
define-command -hidden protobuf-indent-on-newline %~
|
||||
evaluate-commands -draft -itersel %[
|
||||
# preserve previous line indent
|
||||
|
@ -74,20 +89,4 @@ define-command -hidden protobuf-indent-on-closing-curly-brace %[
|
|||
try %[ execute-keys -itersel -draft <a-h><a-k>^\h+\}$<ret>hms\A|.\z<ret>1<a-&> ]
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group protobuf-highlight global WinSetOption filetype=protobuf %{
|
||||
add-highlighter window/protobuf ref protobuf
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/protobuf }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=protobuf %[
|
||||
hook -group protobuf-indent window InsertChar \n protobuf-indent-on-newline
|
||||
hook -group protobuf-indent window InsertChar \{ protobuf-indent-on-opening-curly-brace
|
||||
hook -group protobuf-indent window InsertChar \} protobuf-indent-on-closing-curly-brace
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window protobuf-.+ }
|
||||
]
|
||||
|
||||
]
|
||||
|
|
|
@ -12,10 +12,24 @@ hook global BufCreate .*[.](pug|jade) %{
|
|||
set-option buffer filetype pug
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=pug %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=pug %{
|
||||
require-module pug
|
||||
|
||||
hook window ModeChange insert:.* -group pug-trim-indent pug-trim-indent
|
||||
hook window InsertChar \n -group pug-indent pug-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window pug-.+ }
|
||||
}
|
||||
|
||||
hook -group pug-highlight global WinSetOption filetype=pug %{
|
||||
add-highlighter window/pug ref pug
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/pug }
|
||||
}
|
||||
|
||||
|
||||
provide-module pug %{
|
||||
|
||||
# Highlighters
|
||||
|
@ -64,19 +78,4 @@ define-command -hidden pug-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group pug-highlight global WinSetOption filetype=pug %{
|
||||
add-highlighter window/pug ref pug
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/pug }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=pug %{
|
||||
hook window ModeChange insert:.* -group pug-trim-indent pug-trim-indent
|
||||
hook window InsertChar \n -group pug-indent pug-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window pug-.+ }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,8 +8,23 @@ hook global BufCreate .*[.](py) %{
|
|||
set-option buffer filetype python
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=python %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=python %{
|
||||
require-module python
|
||||
|
||||
set-option window static_words %opt{python_static_words}
|
||||
|
||||
hook window InsertChar \n -group python-indent python-indent-on-new-line
|
||||
# cleanup trailing whitespaces on current line insert end
|
||||
hook window ModeChange insert:.* -group python-trim-indent %{ try %{ execute-keys -draft \; <a-x> s ^\h+$ <ret> d } }
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window python-.+ }
|
||||
}
|
||||
|
||||
hook -group python-highlight global WinSetOption filetype=python %{
|
||||
add-highlighter window/python ref python
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/python }
|
||||
}
|
||||
|
||||
provide-module python %{
|
||||
|
@ -42,79 +57,79 @@ add-highlighter shared/python/docstring/ region '\.\.\. \K' '\z' ref python
|
|||
|
||||
evaluate-commands %sh{
|
||||
# Grammar
|
||||
values="True|False|None|self|inf"
|
||||
meta="import|from"
|
||||
values="True False None self inf"
|
||||
meta="import from"
|
||||
|
||||
# attributes and methods list based on https://docs.python.org/3/reference/datamodel.html
|
||||
attributes="__annotations__|__closure__|__code__|__defaults__|__dict__|__doc__"
|
||||
attributes="${attributes}|__globals__|__kwdefaults__|__module__|__name__|__qualname__"
|
||||
methods="__abs__|__add__|__aenter__|__aexit__|__aiter__|__and__|__anext__"
|
||||
methods="${methods}|__await__|__bool__|__bytes__|__call__|__complex__|__contains__"
|
||||
methods="${methods}|__del__|__delattr__|__delete__|__delitem__|__dir__|__divmod__"
|
||||
methods="${methods}|__enter__|__eq__|__exit__|__float__|__floordiv__|__format__"
|
||||
methods="${methods}|__ge__|__get__|__getattr__|__getattribute__|__getitem__"
|
||||
methods="${methods}|__gt__|__hash__|__iadd__|__iand__|__ifloordiv__|__ilshift__"
|
||||
methods="${methods}|__imatmul__|__imod__|__imul__|__index__|__init__"
|
||||
methods="${methods}|__init_subclass__|__int__|__invert__|__ior__|__ipow__"
|
||||
methods="${methods}|__irshift__|__isub__|__iter__|__itruediv__|__ixor__|__le__"
|
||||
methods="${methods}|__len__|__length_hint__|__lshift__|__lt__|__matmul__"
|
||||
methods="${methods}|__missing__|__mod__|__mul__|__ne__|__neg__|__new__|__or__"
|
||||
methods="${methods}|__pos__|__pow__|__radd__|__rand__|__rdivmod__|__repr__"
|
||||
methods="${methods}|__reversed__|__rfloordiv__|__rlshift__|__rmatmul__|__rmod__"
|
||||
methods="${methods}|__rmul__|__ror__|__round__|__rpow__|__rrshift__|__rshift__"
|
||||
methods="${methods}|__rsub__|__rtruediv__|__rxor__|__set__|__setattr__"
|
||||
methods="${methods}|__setitem__|__set_name__|__slots__|__str__|__sub__"
|
||||
methods="${methods}|__truediv__|__xor__"
|
||||
attributes="__annotations__ __closure__ __code__ __defaults__ __dict__ __doc__
|
||||
__globals__ __kwdefaults__ __module__ __name__ __qualname__"
|
||||
methods="__abs__ __add__ __aenter__ __aexit__ __aiter__ __and__ __anext__
|
||||
__await__ __bool__ __bytes__ __call__ __complex__ __contains__
|
||||
__del__ __delattr__ __delete__ __delitem__ __dir__ __divmod__
|
||||
__enter__ __eq__ __exit__ __float__ __floordiv__ __format__
|
||||
__ge__ __get__ __getattr__ __getattribute__ __getitem__
|
||||
__gt__ __hash__ __iadd__ __iand__ __ifloordiv__ __ilshift__
|
||||
__imatmul__ __imod__ __imul__ __index__ __init__
|
||||
__init_subclass__ __int__ __invert__ __ior__ __ipow__
|
||||
__irshift__ __isub__ __iter__ __itruediv__ __ixor__ __le__
|
||||
__len__ __length_hint__ __lshift__ __lt__ __matmul__
|
||||
__missing__ __mod__ __mul__ __ne__ __neg__ __new__ __or__
|
||||
__pos__ __pow__ __radd__ __rand__ __rdivmod__ __repr__
|
||||
__reversed__ __rfloordiv__ __rlshift__ __rmatmul__ __rmod__
|
||||
__rmul__ __ror__ __round__ __rpow__ __rrshift__ __rshift__
|
||||
__rsub__ __rtruediv__ __rxor__ __set__ __setattr__
|
||||
__setitem__ __set_name__ __slots__ __str__ __sub__
|
||||
__truediv__ __xor__"
|
||||
|
||||
# built-in exceptions https://docs.python.org/3/library/exceptions.html
|
||||
exceptions="ArithmeticError|AssertionError|AttributeError|BaseException|BlockingIOError"
|
||||
exceptions="${exceptions}|BrokenPipeError|BufferError|BytesWarning|ChildProcessError"
|
||||
exceptions="${exceptions}|ConnectionAbortedError|ConnectionError|ConnectionRefusedError"
|
||||
exceptions="${exceptions}|ConnectionResetError|DeprecationWarning|EOFError|Exception"
|
||||
exceptions="${exceptions}|FileExistsError|FileNotFoundError|FloatingPointError|FutureWarning"
|
||||
exceptions="${exceptions}|GeneratorExit|ImportError|ImportWarning|IndentationError"
|
||||
exceptions="${exceptions}|IndexError|InterruptedError|IsADirectoryError|KeyboardInterrupt"
|
||||
exceptions="${exceptions}|KeyError|LookupError|MemoryError|ModuleNotFoundError|NameError"
|
||||
exceptions="${exceptions}|NotADirectoryError|NotImplementedError|OSError|OverflowError"
|
||||
exceptions="${exceptions}|PendingDeprecationWarning|PermissionError|ProcessLookupError"
|
||||
exceptions="${exceptions}|RecursionError|ReferenceError|ResourceWarning|RuntimeError"
|
||||
exceptions="${exceptions}|RuntimeWarning|StopAsyncIteration|StopIteration|SyntaxError"
|
||||
exceptions="${exceptions}|SyntaxWarning|SystemError|SystemExit|TabError|TimeoutError|TypeError"
|
||||
exceptions="${exceptions}|UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|UnicodeError"
|
||||
exceptions="${exceptions}|UnicodeTranslateError|UnicodeWarning|UserWarning|ValueError|Warning"
|
||||
exceptions="${exceptions}|ZeroDivisionError"
|
||||
exceptions="ArithmeticError AssertionError AttributeError BaseException BlockingIOError
|
||||
BrokenPipeError BufferError BytesWarning ChildProcessError
|
||||
ConnectionAbortedError ConnectionError ConnectionRefusedError
|
||||
ConnectionResetError DeprecationWarning EOFError Exception
|
||||
FileExistsError FileNotFoundError FloatingPointError FutureWarning
|
||||
GeneratorExit ImportError ImportWarning IndentationError
|
||||
IndexError InterruptedError IsADirectoryError KeyboardInterrupt
|
||||
KeyError LookupError MemoryError ModuleNotFoundError NameError
|
||||
NotADirectoryError NotImplementedError OSError OverflowError
|
||||
PendingDeprecationWarning PermissionError ProcessLookupError
|
||||
RecursionError ReferenceError ResourceWarning RuntimeError
|
||||
RuntimeWarning StopAsyncIteration StopIteration SyntaxError
|
||||
SyntaxWarning SystemError SystemExit TabError TimeoutError TypeError
|
||||
UnboundLocalError UnicodeDecodeError UnicodeEncodeError UnicodeError
|
||||
UnicodeTranslateError UnicodeWarning UserWarning ValueError Warning
|
||||
ZeroDivisionError"
|
||||
|
||||
# Keyword list is collected using `keyword.kwlist` from `keyword`
|
||||
keywords="and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec"
|
||||
keywords="${keywords}|finally|for|global|if|in|is|lambda|nonlocal|not|or|pass|print"
|
||||
keywords="${keywords}|raise|return|try|while|with|yield"
|
||||
keywords="and as assert async await break class continue def del elif else except exec
|
||||
finally for global if in is lambda nonlocal not or pass print
|
||||
raise return try while with yield"
|
||||
|
||||
types="bool|buffer|bytearray|bytes|complex|dict|file|float|frozenset|int"
|
||||
types="${types}|list|long|memoryview|object|set|str|tuple|unicode|xrange"
|
||||
types="bool buffer bytearray bytes complex dict file float frozenset int
|
||||
list long memoryview object set str tuple unicode xrange"
|
||||
|
||||
functions="abs|all|any|ascii|bin|breakpoint|callable|chr|classmethod|compile|complex"
|
||||
functions="${functions}|delattr|dict|dir|divmod|enumerate|eval|exec|filter"
|
||||
functions="${functions}|format|frozenset|getattr|globals|hasattr|hash|help"
|
||||
functions="${functions}|hex|id|__import__|input|isinstance|issubclass|iter"
|
||||
functions="${functions}|len|locals|map|max|memoryview|min|next|oct|open|ord"
|
||||
functions="${functions}|pow|print|property|range|repr|reversed|round"
|
||||
functions="${functions}|setattr|slice|sorted|staticmethod|sum|super|type|vars|zip"
|
||||
functions="abs all any ascii bin breakpoint callable chr classmethod compile complex
|
||||
delattr dict dir divmod enumerate eval exec filter
|
||||
format frozenset getattr globals hasattr hash help
|
||||
hex id __import__ input isinstance issubclass iter
|
||||
len locals map max memoryview min next oct open ord
|
||||
pow print property range repr reversed round
|
||||
setattr slice sorted staticmethod sum super type vars zip"
|
||||
|
||||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=python %{
|
||||
set-option window static_words ${values} ${meta} ${attributes} ${methods} ${exceptions} ${keywords} ${types} ${functions}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list python_static_words $(join "${values} ${meta} ${attributes} ${methods} ${exceptions} ${keywords} ${types} ${functions}" ' ')"
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
add-highlighter shared/python/code/ regex '\b(${values})\b' 0:value
|
||||
add-highlighter shared/python/code/ regex '\b(${meta})\b' 0:meta
|
||||
add-highlighter shared/python/code/ regex '\b(${attribute})\b' 0:attribute
|
||||
add-highlighter shared/python/code/ regex '\bdef\s+(${methods})\b' 1:function
|
||||
add-highlighter shared/python/code/ regex '\b(${exceptions})\b' 0:function
|
||||
add-highlighter shared/python/code/ regex '\b(${keywords})\b' 0:keyword
|
||||
add-highlighter shared/python/code/ regex '\b(${functions})\b\(' 1:builtin
|
||||
add-highlighter shared/python/code/ regex '\b(${types})\b' 0:type
|
||||
add-highlighter shared/python/code/ regex '\b($(join "${values}" '|'))\b' 0:value
|
||||
add-highlighter shared/python/code/ regex '\b($(join "${meta}" '|'))\b' 0:meta
|
||||
add-highlighter shared/python/code/ regex '\b($(join "${attribute}" '|'))\b' 0:attribute
|
||||
add-highlighter shared/python/code/ regex '\bdef\s+($(join "${methods}" '|'))\b' 1:function
|
||||
add-highlighter shared/python/code/ regex '\b($(join "${exceptions}" '|'))\b' 0:function
|
||||
add-highlighter shared/python/code/ regex '\b($(join "${keywords}" '|'))\b' 0:keyword
|
||||
add-highlighter shared/python/code/ regex '\b($(join "${functions}" '|'))\b\(' 1:builtin
|
||||
add-highlighter shared/python/code/ regex '\b($(join "${types}" '|'))\b' 0:type
|
||||
add-highlighter shared/python/code/ regex '@[\w_]+\b' 0:attribute
|
||||
"
|
||||
}
|
||||
|
@ -138,19 +153,4 @@ define-command -hidden python-indent-on-new-line %{
|
|||
}
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group python-highlight global WinSetOption filetype=python %{
|
||||
add-highlighter window/python ref python
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/python }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=python %{
|
||||
hook window InsertChar \n -group python-indent python-indent-on-new-line
|
||||
# cleanup trailing whitespaces on current line insert end
|
||||
hook window ModeChange insert:.* -group python-trim-indent %{ try %{ execute-keys -draft \; <a-x> s ^\h+$ <ret> d } }
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window python-.+ }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,8 +10,22 @@ hook global BufCreate .*[.](ragel|rl) %{
|
|||
set-option buffer filetype ragel
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=ragel %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=ragel %{
|
||||
require-module ragel
|
||||
|
||||
hook window ModeChange insert:.* -group ragel-trim-indent ragel-trim-indent
|
||||
hook window InsertChar .* -group ragel-indent ragel-indent-on-char
|
||||
hook window InsertChar \n -group ragel-indent ragel-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window ragel-.+ }
|
||||
}
|
||||
|
||||
hook -group ragel-highlight global WinSetOption filetype=ragel %{
|
||||
add-highlighter window/ragel ref ragel
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/ragel }
|
||||
}
|
||||
|
||||
provide-module ragel %🦀
|
||||
|
@ -59,20 +73,4 @@ define-command -hidden ragel-indent-on-new-line %<
|
|||
>
|
||||
>
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group ragel-highlight global WinSetOption filetype=ragel %{
|
||||
add-highlighter window/ragel ref ragel
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/ragel }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=ragel %{
|
||||
hook window ModeChange insert:.* -group ragel-trim-indent ragel-trim-indent
|
||||
hook window InsertChar .* -group ragel-indent ragel-indent-on-char
|
||||
hook window InsertChar \n -group ragel-indent ragel-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window ragel-.+ }
|
||||
}
|
||||
|
||||
🦀
|
||||
|
|
|
@ -8,8 +8,29 @@ hook global BufCreate .*(([.](rb))|(irbrc)|(pryrc)|(Brewfile)|(Capfile|[.]cap)|(
|
|||
set-option buffer filetype ruby
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=ruby %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=ruby %{
|
||||
require-module ruby
|
||||
|
||||
set-option window static_words %opt{ruby_static_words}
|
||||
|
||||
hook window InsertChar .* -group ruby-indent ruby-indent-on-char
|
||||
hook window InsertChar \n -group ruby-insert ruby-insert-on-new-line
|
||||
hook window InsertChar \n -group ruby-indent ruby-indent-on-new-line
|
||||
|
||||
alias window alt ruby-alternative-file
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{
|
||||
remove-hooks window ruby-.+
|
||||
unalias window alt ruby-alternative-file
|
||||
}
|
||||
}
|
||||
|
||||
hook -group ruby-highlight global WinSetOption filetype=ruby %{
|
||||
add-highlighter window/ruby ref ruby
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/ruby }
|
||||
}
|
||||
|
||||
provide-module ruby %[
|
||||
|
@ -61,9 +82,7 @@ evaluate-commands %sh{
|
|||
meta="require|include|extend"
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=ruby %{
|
||||
set-option window static_words ${keywords} ${attributes} ${values} ${meta}
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list ruby_static_words ${keywords} ${attributes} ${values} ${meta}" | tr '|' ' '
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -152,25 +171,4 @@ define-command -hidden ruby-insert-on-new-line %[
|
|||
]
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group ruby-highlight global WinSetOption filetype=ruby %{
|
||||
add-highlighter window/ruby ref ruby
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/ruby }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=ruby %{
|
||||
hook window InsertChar .* -group ruby-indent ruby-indent-on-char
|
||||
hook window InsertChar \n -group ruby-insert ruby-insert-on-new-line
|
||||
hook window InsertChar \n -group ruby-indent ruby-indent-on-new-line
|
||||
|
||||
alias window alt ruby-alternative-file
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{
|
||||
remove-hooks window ruby-.+
|
||||
unalias window alt ruby-alternative-file
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
|
|
|
@ -8,10 +8,32 @@ hook global BufCreate .*[.](rust|rs) %{
|
|||
set-option buffer filetype rust
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=rust %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=rust %[
|
||||
require-module rust
|
||||
|
||||
hook window ModeChange insert:.* -group rust-trim-indent rust-trim-indent
|
||||
hook window InsertChar \n -group rust-indent rust-indent-on-new-line
|
||||
hook window InsertChar \{ -group rust-indent rust-indent-on-opening-curly-brace
|
||||
hook window InsertChar [)}] -group rust-indent rust-indent-on-closing
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window rust-.+ }
|
||||
]
|
||||
|
||||
hook -group rust-highlight global WinSetOption filetype=rust %{
|
||||
add-highlighter window/rust ref rust
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/rust }
|
||||
}
|
||||
|
||||
# Configuration
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=rust %[
|
||||
set window formatcmd 'rustfmt'
|
||||
]
|
||||
|
||||
|
||||
provide-module rust %🦀
|
||||
|
||||
# Highlighters
|
||||
|
@ -77,27 +99,4 @@ define-command -hidden rust-indent-on-closing %[
|
|||
_
|
||||
]
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group rust-highlight global WinSetOption filetype=rust %{
|
||||
add-highlighter window/rust ref rust
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/rust }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=rust %[
|
||||
hook window ModeChange insert:.* -group rust-trim-indent rust-trim-indent
|
||||
hook window InsertChar \n -group rust-indent rust-indent-on-new-line
|
||||
hook window InsertChar \{ -group rust-indent rust-indent-on-opening-curly-brace
|
||||
hook window InsertChar [)}] -group rust-indent rust-indent-on-closing
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window rust-.+ }
|
||||
]
|
||||
|
||||
# Configuration
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=rust %[
|
||||
set window formatcmd 'rustfmt'
|
||||
]
|
||||
|
||||
🦀
|
||||
|
|
|
@ -8,8 +8,24 @@ hook global BufCreate (.*/)?(.*\.(scm|ss|sld)) %{
|
|||
set-option buffer filetype scheme
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=scheme %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=scheme %{
|
||||
require-module scheme
|
||||
|
||||
set-option window static_words %opt{scheme_static_words}
|
||||
|
||||
set-option buffer extra_word_chars '_' '-' '!' '%' '?' '<' '>' '='
|
||||
hook window InsertEnd .* -group scheme-trim-indent lisp-trim-indent
|
||||
hook window InsertChar \n -group scheme-indent lisp-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window scheme-.+ }
|
||||
}
|
||||
|
||||
hook -group scheme-highlight global WinSetOption filetype=scheme %{
|
||||
add-highlighter window/scheme ref scheme
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/scheme }
|
||||
}
|
||||
|
||||
provide-module scheme %{
|
||||
|
@ -105,9 +121,9 @@ evaluate-commands %sh{ exec awk -f - <<'EOF'
|
|||
}
|
||||
|
||||
BEGIN {
|
||||
printf("hook global WinSetOption filetype=scheme %%{ set-option window static_words ");
|
||||
printf("declare-option str-list scheme_static_words ");
|
||||
print_words(keywords); print_words(meta); print_words(operators); print_words(builtins);
|
||||
printf(" }\n")
|
||||
printf("\n");
|
||||
|
||||
add_word_highlighter(keywords, "keyword");
|
||||
add_word_highlighter(meta, "meta");
|
||||
|
@ -121,21 +137,4 @@ evaluate-commands %sh{ exec awk -f - <<'EOF'
|
|||
EOF
|
||||
}
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group scheme-highlight global WinSetOption filetype=scheme %{
|
||||
add-highlighter window/scheme ref scheme
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/scheme }
|
||||
}
|
||||
|
||||
|
||||
hook global WinSetOption filetype=scheme %{
|
||||
set-option buffer extra_word_chars '_' '-' '!' '%' '?' '<' '>' '='
|
||||
hook window InsertEnd .* -group scheme-trim-indent lisp-trim-indent
|
||||
hook window InsertChar \n -group scheme-indent lisp-indent-on-new-line
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window scheme-.+ }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,10 +8,26 @@ hook global BufCreate .*[.](scss) %{
|
|||
set-option buffer filetype scss
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=scss %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=scss %[
|
||||
require-module scss
|
||||
|
||||
hook window ModeChange insert:.* -group scss-trim-indent scss-trim-indent
|
||||
hook window InsertChar \n -group scss-indent scss-indent-on-new-line
|
||||
hook window InsertChar \} -group scss-indent scss-indent-on-closing-curly-brace
|
||||
set-option buffer extra_word_chars '_' '-'
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window scss-.+ }
|
||||
]
|
||||
|
||||
hook -group scss-highlight global WinSetOption filetype=scss %{
|
||||
add-highlighter window/scss ref scss
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/scss }
|
||||
}
|
||||
|
||||
|
||||
provide-module scss %[
|
||||
|
||||
require-module css
|
||||
|
@ -33,21 +49,4 @@ define-command -hidden scss-trim-indent css-trim-indent
|
|||
define-command -hidden scss-indent-on-new-line css-indent-on-new-line
|
||||
define-command -hidden scss-indent-on-closing-curly-brace css-indent-on-closing-curly-brace
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group scss-highlight global WinSetOption filetype=scss %{
|
||||
add-highlighter window/scss ref scss
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/scss }
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=scss %[
|
||||
hook window ModeChange insert:.* -group scss-trim-indent scss-trim-indent
|
||||
hook window InsertChar \n -group scss-indent scss-indent-on-new-line
|
||||
hook window InsertChar \} -group scss-indent scss-indent-on-closing-curly-brace
|
||||
set-option buffer extra_word_chars '_' '-'
|
||||
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window scss-.+ }
|
||||
]
|
||||
|
||||
]
|
||||
|
|
|
@ -2,8 +2,14 @@ hook global BufCreate .*\.(z|ba|c|k|mk)?sh(rc|_profile)? %{
|
|||
set-option buffer filetype sh
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=sh %{
|
||||
hook global WinSetOption filetype=sh %{
|
||||
require-module sh
|
||||
set-option window static_words %opt{sh_static_words}
|
||||
}
|
||||
|
||||
hook -group sh-highlight global WinSetOption filetype=sh %{
|
||||
add-highlighter window/sh ref sh
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/sh }
|
||||
}
|
||||
|
||||
provide-module sh %[
|
||||
|
@ -29,9 +35,7 @@ evaluate-commands %sh{
|
|||
join() { sep=$2; eval set -- $1; IFS="$sep"; echo "$*"; }
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=sh %{
|
||||
set-option window static_words $(join "${keywords}" ' ')
|
||||
}"
|
||||
printf %s\\n "declare-option str-list sh_static_words $(join "${keywords}" ' ')"
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "add-highlighter shared/sh/code/ regex \b($(join "${keywords}" '|'))\b 0:keyword"
|
||||
|
@ -44,9 +48,4 @@ add-highlighter shared/sh/code/function regex ^\h*(\w+)\h*\(\) 1:function
|
|||
add-highlighter shared/sh/code/unscoped_expansion regex \$(\w+|#|@|\?|\$|!|-|\*) 0:value
|
||||
add-highlighter shared/sh/double_string/expansion regex \$(\w+|\{.+?\}) 0:value
|
||||
|
||||
hook -group sh-highlight global WinSetOption filetype=sh %{
|
||||
add-highlighter window/sh ref sh
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/sh }
|
||||
}
|
||||
|
||||
]
|
||||
|
|
|
@ -8,10 +8,20 @@ hook global BufCreate .*/?(?i)sql %{
|
|||
set-option buffer filetype sql
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=sql %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=sql %{
|
||||
require-module sql
|
||||
set-option window static_words %opt{sql_static_words}
|
||||
}
|
||||
|
||||
hook -group sql-highlight global WinSetOption filetype=sql %{
|
||||
add-highlighter window/sql ref sql
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/sql }
|
||||
}
|
||||
|
||||
|
||||
provide-module sql %{
|
||||
|
||||
# Highlighters
|
||||
|
@ -86,9 +96,7 @@ evaluate-commands %sh{
|
|||
data_types="${data_types}|Time|Ole Object|Hyperlink|Lookup Wizard"
|
||||
|
||||
# Add the language's grammar to the static completion list
|
||||
printf %s\\n "hook global WinSetOption filetype=sql %{
|
||||
set-option window static_words ${keywords} ${operators} ${functions} ${data_types} ${data_types_fn} NULL
|
||||
}" | tr '|' ' '
|
||||
printf %s\\n "declare-option str-list sql_static_words ${keywords} ${operators} ${functions} ${data_types} ${data_types_fn} NULL" | tr '|' ' '
|
||||
|
||||
# Highlight keywords
|
||||
printf %s "
|
||||
|
@ -104,12 +112,4 @@ add-highlighter shared/sql/code/ regex '\+|-|\*|/|%|&|\||^|=|>|<|>=|<=|<>|\+=|-=
|
|||
add-highlighter shared/sql/code/ regex \bNULL\b 0:value
|
||||
add-highlighter shared/sql/code/ regex \b\d+(?:\.\d+)?\b 0:value
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group sql-highlight global WinSetOption filetype=sql %{
|
||||
add-highlighter window/sql ref sql
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/sql }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,10 +2,16 @@ hook global BufCreate .*\.(swift) %{
|
|||
set-option buffer filetype swift
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=swift %{
|
||||
hook global WinSetOption filetype=swift %{
|
||||
require-module swift
|
||||
}
|
||||
|
||||
hook -group swift-highlight global WinSetOption filetype=swift %{
|
||||
add-highlighter window/swift ref swift
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/swift }
|
||||
}
|
||||
|
||||
|
||||
provide-module swift %{
|
||||
|
||||
add-highlighter shared/swift regions
|
||||
|
@ -28,9 +34,4 @@ add-highlighter shared/swift/code/ regex "\b(Bool|String|UInt|UInt16|UInt32|UInt
|
|||
add-highlighter shared/swift/code/ regex "\b(IBAction|IBOutlet)\b" 0:attribute
|
||||
add-highlighter shared/swift/code/ regex "@\w+\b" 0:attribute
|
||||
|
||||
hook -group swift-highlight global WinSetOption filetype=swift %{
|
||||
add-highlighter window/swift ref swift
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/swift }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,10 +5,18 @@ hook global BufCreate .*\.\d+ %{
|
|||
set-option buffer filetype troff
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=troff %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook global WinSetOption filetype=troff %{
|
||||
require-module troff
|
||||
}
|
||||
|
||||
hook -group troff-highlight global WinSetOption filetype=troff %{
|
||||
add-highlighter window/troff ref troff
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/troff }
|
||||
}
|
||||
|
||||
provide-module troff %{
|
||||
|
||||
# Highlighters
|
||||
|
@ -27,12 +35,4 @@ add-highlighter shared/troff/ regex '^\.BR\s+(\S+)' 1:+b
|
|||
add-highlighter shared/troff/ regex '^\.I\s+([^\n]+)' 1:+i
|
||||
add-highlighter shared/troff/ regex '^\.B\s+([^\n]+)' 1:+b
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group troff-highlight global WinSetOption filetype=troff %{
|
||||
add-highlighter window/troff ref troff
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/troff }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,10 +8,17 @@ hook global BufCreate .*/?Tup(file|rules)(\.\w+)?$ %{
|
|||
set-option buffer filetype tupfile
|
||||
}
|
||||
|
||||
hook -once global BufSetOption filetype=tupfile %{
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group tupfile-highlight global WinSetOption filetype=tupfile %{
|
||||
require-module tupfile
|
||||
|
||||
add-highlighter window/tupfile ref tupfile
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/tupfile }
|
||||
}
|
||||
|
||||
|
||||
provide-module tupfile %{
|
||||
|
||||
# Highlighters
|
||||
|
@ -30,12 +37,4 @@ add-highlighter shared/tupfile/code/ regex '^\h*\b(ifn?eq|ifn?def|else|endif|err
|
|||
add-highlighter shared/tupfile/code/ regex '^\h*\b(&?[\w_]+)\s*[:+]?=' 1:keyword
|
||||
add-highlighter shared/tupfile/code/ regex '`[^`\n]+`' 0:meta
|
||||
|
||||
# Initialization
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
hook -group tupfile-highlight global WinSetOption filetype=tupfile %{
|
||||
add-highlighter window/tupfile ref tupfile
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-highlighter window/tupfile }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user