From 00f871ab51e6d094c0cd83dc4668dbe7ec047d04 Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Sat, 18 Apr 2020 19:21:01 +0200 Subject: feat: add an example locals query This will be the guide for the implementation of locals extraction, which is treesitters name of definition/scope. --- queries/lua/locals.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 queries/lua/locals.scm (limited to 'queries/lua') diff --git a/queries/lua/locals.scm b/queries/lua/locals.scm new file mode 100644 index 000000000..a7b15d1e5 --- /dev/null +++ b/queries/lua/locals.scm @@ -0,0 +1,45 @@ +;;; DECLARATIONS AND SCOPES + +;; Variable and field declarations +((variable_declarator + (identifier) @definition) + (set! kind "v")) + +((variable_declarator + (field_expression object:(*) @definition.associated (property_identifier) @definition)) + (set! kind "v")) + +;; Parameters +((local_function + (parameters (identifier) @definition)) + (set! kind "v")) +((function + (parameters (identifier) @definition)) + (set! kind "v")) + +;; Function definitions +;; Functions definitions creates both a definition and a new scope +((function + (function_name_field + object: (identifier) @definition.associated + (property_identifier) @definition)) @scope + (set! kind "m")) + +((function + (function_name (identifier) @definition)) @scope + (set! kind "f")) + +((local_function + (identifier) @definition) @scope + (set! kind "f")) + +((if_statement) @scope) +((for_in_statement) @scope) +((repeat_statement) @scope) +;; Loops +((loop_expression + (identifier) @definition) + (set! kind "v")) + +;;; REFERENCES +((identifier) @reference) -- cgit v1.2.3-70-g09d2