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,5 @@
; inherits: lua
[
(object_type)
] @fold

View file

@ -0,0 +1,252 @@
; Preproc
(hash_bang_line) @preproc
;; Keywords
"return" @keyword.return
[
"local"
"type"
"export"
] @keyword
(do_statement
[
"do"
"end"
] @keyword)
(while_statement
[
"while"
"do"
"end"
] @repeat)
(repeat_statement
[
"repeat"
"until"
] @repeat)
[
(break_statement)
(continue_statement)
] @repeat
(if_statement
[
"if"
"elseif"
"else"
"then"
"end"
] @conditional)
(elseif_statement
[
"elseif"
"then"
"end"
] @conditional)
(else_statement
[
"else"
"end"
] @conditional)
(for_statement
[
"for"
"do"
"end"
] @repeat)
(function_declaration
[
"function"
"end"
] @keyword.function)
(function_definition
[
"function"
"end"
] @keyword.function)
;; Operators
[
"and"
"not"
"or"
"in"
"typeof"
] @keyword.operator
[
"+"
"-"
"*"
"/"
"%"
"^"
"#"
"=="
"~="
"<="
">="
"<"
">"
"="
"&"
"~"
"|"
"?"
"//"
".."
"+="
"-="
"*="
"/="
"%="
"^="
"..="
] @operator
;; Variables
(identifier) @variable
; Types
(type (identifier) @type)
(type (generic_type (identifier) @type))
(builtin_type) @type.builtin
((identifier) @type
(#lua-match? @type "^[A-Z]"))
; Typedefs
(type_definition "type" . (type) @type.definition "=")
; Constants
((identifier) @constant
(#lua-match? @constant "^[A-Z][A-Z_0-9]+$"))
; Builtins
((identifier) @constant.builtin
(#eq? @constant.builtin "_VERSION"))
((identifier) @variable.builtin
(#eq? @variable.builtin "self"))
((identifier) @namespace.builtin
(#any-of? @namespace.builtin "_G" "debug" "io" "jit" "math" "os" "package" "string" "table" "utf8"))
((identifier) @keyword.coroutine
(#eq? @keyword.coroutine "coroutine"))
;; Tables
(field name: (identifier) @field)
(dot_index_expression field: (identifier) @field)
(object_type (identifier) @field)
(table_constructor
[
"{"
"}"
] @constructor)
; Functions
(parameter . (identifier) @parameter)
(function_type (identifier) @parameter)
(function_call name: (identifier) @function.call)
(function_declaration name: (identifier) @function)
(function_call name: (dot_index_expression field: (identifier) @function.call))
(function_declaration name: (dot_index_expression field: (identifier) @function))
(method_index_expression method: (identifier) @method.call)
(function_call
(identifier) @function.builtin
(#any-of? @function.builtin
;; built-in functions in Lua 5.1
"assert" "collectgarbage" "dofile" "error" "getfenv" "getmetatable" "ipairs"
"load" "loadfile" "loadstring" "module" "next" "pairs" "pcall" "print"
"rawequal" "rawget" "rawlen" "rawset" "require" "select" "setfenv" "setmetatable"
"tonumber" "tostring" "type" "unpack" "xpcall" "typeof"
"__add" "__band" "__bnot" "__bor" "__bxor" "__call" "__concat" "__div" "__eq" "__gc"
"__idiv" "__index" "__le" "__len" "__lt" "__metatable" "__mod" "__mul" "__name" "__newindex"
"__pairs" "__pow" "__shl" "__shr" "__sub" "__tostring" "__unm"))
; Literals
(number) @number
(string) @string
(nil) @constant.builtin
(vararg_expression) @variable.builtin
[
(false)
(true)
] @boolean
;; Punctuations
[
";"
":"
"::"
","
"."
"->"
] @punctuation.delimiter
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
(variable_list
attribute: (attribute
(["<" ">"] @punctuation.bracket
(identifier) @attribute)))
(generic_type [ "<" ">" ] @punctuation.bracket)
(generic_type_list [ "<" ">" ] @punctuation.bracket)
; Comments
(comment) @comment @spell
((comment) @comment.documentation
(#lua-match? @comment.documentation "^[-][-][-]"))
((comment) @comment.documentation
(#lua-match? @comment.documentation "^[-][-](%s?)@"))
; Errors
(ERROR) @error

View file

@ -0,0 +1,5 @@
; inherits: lua
[
(object_type)
] @indent.begin

View file

@ -0,0 +1,46 @@
((function_call
name: [
(identifier) @_cdef_identifier
(_ _ (identifier) @_cdef_identifier)
]
arguments: (arguments (string content: _ @injection.content)))
(#eq? @_cdef_identifier "cdef")
(#set! injection.language "c"))
((comment) @injection.content
(#lua-match? @injection.content "[-][-][-][%s]*@")
(#offset! @injection.content 0 3 0 0)
(#set! injection.language "luadoc"))
; string.match("123", "%d+")
(function_call
(dot_index_expression
field: (identifier) @_method
(#any-of? @_method "find" "format" "match"))
arguments: (arguments (_) . (string content: _ @injection.content))
(#set! injection.language "luap"))
(function_call
(dot_index_expression
field: (identifier) @_method
(#any-of? @_method "gmatch" "gsub"))
arguments: (arguments (_) (string content: _ @injection.content))
(#set! injection.language "luap"))
; ("123"):match("%d+")
(function_call
(method_index_expression
method: (identifier) @_method
(#any-of? @_method "find" "format" "match"))
arguments: (arguments . (string content: _ @injection.content))
(#set! injection.language "luap"))
(function_call
(method_index_expression
method: (identifier) @_method
(#any-of? @_method "gmatch" "gsub"))
arguments: (arguments (string content: _ @injection.content))
(#set! injection.language "luap"))
((comment) @injection.content
(#set! injection.language "comment"))

View file

@ -0,0 +1,51 @@
; Scopes
[
(chunk)
(do_statement)
(while_statement)
(repeat_statement)
(if_statement)
(for_statement)
(function_declaration)
(function_definition)
] @scope
; References
[
(identifier)
] @reference
; Definitions
(assignment_statement
(variable_list
(identifier) @definition.var))
(assignment_statement
(variable_list
(dot_index_expression . (_) @definition.associated (identifier) @definition.var)))
((function_declaration
name: (identifier) @definition.function)
(#set! definition.function.scope "parent"))
((function_declaration
name: (dot_index_expression
. (_) @definition.associated (identifier) @definition.function))
(#set! definition.method.scope "parent"))
((function_declaration
name: (method_index_expression
. (_) @definition.associated (identifier) @definition.method))
(#set! definition.method.scope "parent"))
(for_generic_clause
(variable_list
(identifier) @definition.var))
(for_numeric_clause
name: (identifier) @definition.var)
(parameter (identifier) @definition.parameter)