feat!: drop modules, general refactor and cleanup

This commit is contained in:
Christian Clason 2023-06-12 09:54:30 -06:00
parent c13e28f894
commit 2c8f2f2fad
829 changed files with 4905 additions and 8010 deletions

View file

@ -0,0 +1,16 @@
[
(if_statement)
(switch_statement)
(while_statement)
(do_statement)
(for_statement)
(foreach_statement)
(try_statement)
(function_definition)
(class_declaration)
(interface_declaration)
(trait_declaration)
(enum_declaration)
(function_static_declaration)
(method_declaration)
] @fold

View file

@ -0,0 +1,322 @@
; Variables
(variable_name) @variable
; Constants
((name) @constant
(#lua-match? @constant "^_?[A-Z][A-Z%d_]*$"))
((name) @constant.builtin
(#lua-match? @constant.builtin "^__[A-Z][A-Z%d_]+__$"))
(const_declaration (const_element (name) @constant))
; Types
[
(primitive_type)
(cast_type)
] @type.builtin
(named_type
[(name) @type
(qualified_name (name) @type)])
(class_declaration
name: (name) @type)
(base_clause
[(name) @type
(qualified_name (name) @type)])
(enum_declaration
name: (name) @type)
(interface_declaration
name: (name) @type)
(namespace_use_clause
[(name) @type
(qualified_name (name) @type)])
(namespace_aliasing_clause (name) @type.definition)
(class_interface_clause
[(name) @type
(qualified_name (name) @type)])
(scoped_call_expression
scope: [(name) @type
(qualified_name (name) @type)])
(class_constant_access_expression
. [(name) @type
(qualified_name (name) @type)]
(name) @constant)
(trait_declaration
name: (name) @type)
(use_declaration
(name) @type)
(binary_expression
operator: "instanceof"
right: [(name) @type
(qualified_name (name) @type)])
; Functions, methods, constructors
(array_creation_expression "array" @function.builtin)
(list_literal "list" @function.builtin)
(method_declaration
name: (name) @method)
(function_call_expression
function: (qualified_name (name) @function.call))
(function_call_expression
(name) @function.call)
(scoped_call_expression
name: (name) @function.call)
(member_call_expression
name: (name) @method.call)
(function_definition
name: (name) @function)
(nullsafe_member_call_expression
name: (name) @method)
(method_declaration
name: (name) @constructor
(#eq? @constructor "__construct"))
(object_creation_expression
[(name) @constructor
(qualified_name (name) @constructor)])
; Parameters
[
(simple_parameter)
(variadic_parameter)
] @parameter
(argument
(name) @parameter)
; Member
(property_element
(variable_name) @property)
(member_access_expression
name: (variable_name (name)) @property)
(member_access_expression
name: (name) @property)
; Variables
(relative_scope) @variable.builtin
((variable_name) @variable.builtin
(#eq? @variable.builtin "$this"))
; Namespace
(namespace_definition
name: (namespace_name (name) @namespace))
(namespace_name_as_prefix
(namespace_name (name) @namespace))
; Attributes
(attribute_list) @attribute
; Conditions ( ? : )
(conditional_expression) @conditional
; Directives
(declare_directive ["strict_types" "ticks" "encoding"] @parameter)
; Basic tokens
[
(string)
(encapsed_string)
(heredoc_body)
(nowdoc_body)
(shell_command_expression) ; backtick operator: `ls -la`
] @string
(escape_sequence) @string.escape
[
(heredoc_start)
(heredoc_end)
] @label
(nowdoc "'" @label)
(boolean) @boolean
(null) @constant.builtin
(integer) @number
(float) @float
(comment) @comment @spell
(named_label_statement) @label
; Keywords
[
"and"
"as"
"instanceof"
"or"
"xor"
] @keyword.operator
[
"fn"
"function"
] @keyword.function
[
"break"
"class"
"clone"
"declare"
"default"
"echo"
"enddeclare"
"enum"
"extends"
"global"
"goto"
"implements"
"insteadof"
"interface"
"namespace"
"new"
"trait"
"unset"
] @keyword
[
"abstract"
"const"
"final"
"private"
"protected"
"public"
"readonly"
"static"
] @type.qualifier
[
"return"
"yield"
] @keyword.return
[
"case"
"else"
"elseif"
"endif"
"endswitch"
"if"
"switch"
"match"
"??"
] @conditional
[
"continue"
"do"
"endfor"
"endforeach"
"endwhile"
"for"
"foreach"
"while"
] @repeat
[
"catch"
"finally"
"throw"
"try"
] @exception
[
"include_once"
"include"
"require_once"
"require"
"use"
] @include
[
","
";"
":"
"\\"
] @punctuation.delimiter
[
(php_tag)
"?>"
"("
")"
"["
"]"
"{"
"}"
"#["
] @punctuation.bracket
[
"="
"."
"-"
"*"
"/"
"+"
"%"
"**"
"~"
"|"
"^"
"&"
"<<"
">>"
"<<<"
"->"
"?->"
"=>"
"<"
"<="
">="
">"
"<>"
"=="
"!="
"==="
"!=="
"!"
"&&"
"||"
".="
"-="
"+="
"*="
"/="
"%="
"**="
"&="
"|="
"^="
"<<="
">>="
"??="
"--"
"++"
"@"
"::"
] @operator
(ERROR) @error

View file

@ -0,0 +1,28 @@
[
(array_creation_expression)
(compound_statement)
(declaration_list)
(binary_expression)
(return_statement)
(arguments)
(formal_parameters)
(enum_declaration_list)
(switch_block)
(match_block)
(case_statement)
"["
] @indent.begin
[
")"
"}"
"]"
] @indent.branch
[
(comment)
] @indent.auto
(compound_statement "}" @indent.end)
(ERROR) @indent.auto

View file

@ -0,0 +1,46 @@
((text) @injection.content
(#set! injection.language "html")
(#set! injection.combined))
((comment) @injection.content
(#set! injection.language "phpdoc"))
((heredoc
(heredoc_body) @injection.content
(heredoc_end) @injection.language
(#set! injection.include-children)
(#downcase! @injection.language)))
((nowdoc
(nowdoc_body) @injection.content
(heredoc_end) @injection.language
(#set! injection.include-children)
(#downcase! @injection.language)))
;; regex
((function_call_expression
function: (_) @_preg_func_identifier
arguments:
(arguments .
(argument
(_ (string_value) @injection.content))))
(#set! injection.language "regex")
(#lua-match? @_preg_func_identifier "^preg_"))
;; bash
((function_call_expression
function: (_) @_shell_func_identifier
arguments:
(arguments .
(argument
(_ (string_value) @injection.content))))
(#set! injection.language "bash")
(#any-of? @_shell_func_identifier "shell_exec" "escapeshellarg"
"escapeshellcmd" "exec" "passthru" "proc_open" "shell_exec" "system"))
(expression_statement
(shell_command_expression
(string_value) @injection.content)
(#set! injection.language "bash"))

View file

@ -0,0 +1,87 @@
; Scopes
;-------
((class_declaration
name: (name) @definition.type) @scope
(#set! definition.type.scope "parent"))
((method_declaration
name: (name) @definition.method) @scope
(#set! definition.method.scope "parent"))
((function_definition
name: (name) @definition.function) @scope
(#set! definition.function.scope "parent"))
(anonymous_function_creation_expression
(anonymous_function_use_clause
(variable_name
(name) @definition.var))) @scope
; Definitions
;------------
(simple_parameter
(variable_name
(name) @definition.var))
(foreach_statement
(pair
(variable_name
(name) @definition.var)))
(foreach_statement
(variable_name
(name) @reference
(#set! reference.kind "var"))
(variable_name
(name) @definition.var))
(property_declaration
(property_element
(variable_name
(name) @definition.field)))
(namespace_use_clause
(qualified_name
(name) @definition.type))
; References
;------------
(named_type
(name) @reference
(#set! reference.kind "type"))
(named_type
(qualified_name) @reference
(#set! reference.kind "type"))
(variable_name
(name) @reference
(#set! reference.kind "var"))
(member_access_expression
name: (name) @reference
(#set! reference.kind "field"))
(member_call_expression
name: (name) @reference
(#set! reference.kind "method"))
(function_call_expression
function: (qualified_name
(name) @reference
(#set! reference.kind "function")))
(object_creation_expression
(qualified_name
(name) @reference
(#set! reference.kind "type")))
(scoped_call_expression
scope: (qualified_name
(name) @reference
(#set! reference.kind "type"))
name: (name) @reference
(#set! reference.kind "method"))