diff --git a/rc/extra/php.kak b/rc/extra/php.kak index a65a385e..97c9d2f0 100644 --- a/rc/extra/php.kak +++ b/rc/extra/php.kak @@ -9,26 +9,45 @@ hook global BufCreate .*[.](php) %{ # ‾‾‾‾‾‾‾‾‾‾‾‾ add-highlighter shared/ regions -default code php \ - double_string '"' (?' 0:meta + +add-highlighter shared/php/double_string regex (?\w+)* 0:variable +add-highlighter shared/php/double_string regex \{(?\w+)*\} 0:variable + +# Highlight doc comments +add-highlighter shared/php/doc_comment fill string +add-highlighter shared/php/doc_comment regex '`.*`' 0:module +add-highlighter shared/php/doc_comment regex '@\w+' 0:meta # Keywords are collected at # http://php.net/manual/en/reserved.keywords.php add-highlighter shared/php/code regex \b(__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__CLASS__|__DIR__|__FILE__|__FUNCTION__|__LINE__|__METHOD__|__NAMESPACE__|__TRAIT__)\b 0:keyword +# Highlighter for html with php tags in it, i.e. the structure of conventional php files +add-highlighter shared/ regions -default html php-file \ + php '<\?(php)?' '\?>' '' + +add-highlighter shared/php-file/php ref php +add-highlighter shared/php-file/html ref html + # Commands # ‾‾‾‾‾‾‾‾ @@ -60,7 +79,7 @@ define-command -hidden php-indent-on-new-line %< # Initialization # ‾‾‾‾‾‾‾‾‾‾‾‾‾‾ -hook -group php-highlight global WinSetOption filetype=php %{ add-highlighter window ref php } +hook -group php-highlight global WinSetOption filetype=php %{ add-highlighter window ref php-file } hook global WinSetOption filetype=php %{ hook window ModeChange insert:.* -group php-hooks php-filter-around-selections @@ -68,7 +87,7 @@ hook global WinSetOption filetype=php %{ hook window InsertChar \n -group php-indent php-indent-on-new-line } -hook -group php-highlight global WinSetOption filetype=(?!php).* %{ remove-highlighter window/php } +hook -group php-highlight global WinSetOption filetype=(?!php).* %{ remove-highlighter window/php-file } hook global WinSetOption filetype=(?!php).* %{ remove-hooks window php-indent