From 94d72c4bad528285956ab7f0cdb9b9db18ae0410 Mon Sep 17 00:00:00 2001 From: Lee Machin Date: Fri, 16 Dec 2016 19:20:26 +0200 Subject: [PATCH 1/2] Add basic PHP syntax highlighting based on the highlighting for JS --- rc/extra/php.kak | 75 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 rc/extra/php.kak diff --git a/rc/extra/php.kak b/rc/extra/php.kak new file mode 100644 index 000000000..6f522698f --- /dev/null +++ b/rc/extra/php.kak @@ -0,0 +1,75 @@ +# Detection +# ‾‾‾‾‾‾‾‾‾ + +hook global BufCreate .*[.](php) %{ + set buffer filetype php +} + +# Highlighters +# ‾‾‾‾‾‾‾‾‾‾‾‾ + +addhl -group / regions -default code php \ + double_string '"' (? s \h+$ d } +} + +def -hidden _php_indent_on_char %< + eval -draft -itersel %< + # align closer token to its opener when alone on a line + try %/ exec -draft ^\h+[]}]$ m s \`|.\' 1 / + > +> + +def -hidden _php_indent_on_new_line %< + eval -draft -itersel %< + # preserve previous line indent + try %{ exec -draft K } + # filter previous line + try %{ exec -draft k : _php_filter_around_selections } + # copy // comments prefix and following white spaces + try %{ exec -draft k x s ^\h*\K#\h* y j p } + # indent after lines beginning / ending with opener token + try %_ exec -draft k x ^\h*[[{]|[[{]$ j _ + > +> + +# Initialization +# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾ + +hook -group php-highlight global WinSetOption filetype=php %{ addhl ref php } + +hook global WinSetOption filetype=php %{ + hook window InsertEnd .* -group php-hooks _php_filter_around_selections + hook window InsertChar .* -group php-indent _php_indent_on_char + hook window InsertChar \n -group php-indent _php_indent_on_new_line +} + +hook -group php-highlight global WinSetOption filetype=(?!php).* %{ rmhl php } + +hook global WinSetOption filetype=(?!php).* %{ + rmhooks window php-indent + rmhooks window php-hooks +} From 25cea1c62c08f96f83e61bd5fb72698df333c8a2 Mon Sep 17 00:00:00 2001 From: Lee Machin Date: Fri, 16 Dec 2016 19:25:58 +0200 Subject: [PATCH 2/2] Lee Machin Copyright Waiver I dedicate any and all copyright interest in this software to the public domain. I make this dedication for the benefit of the public at large and to the detriment of my heirs and successors. I intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.