beswarm 0.1.2__py3-none-any.whl → 0.1.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- beswarm/__init__.py +0 -1
- beswarm/queries/tree-sitter-language-pack/README.md +7 -0
- beswarm/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
- beswarm/queries/tree-sitter-language-pack/c-tags.scm +9 -0
- beswarm/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
- beswarm/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
- beswarm/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
- beswarm/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
- beswarm/queries/tree-sitter-language-pack/d-tags.scm +26 -0
- beswarm/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
- beswarm/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
- beswarm/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
- beswarm/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
- beswarm/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
- beswarm/queries/tree-sitter-language-pack/go-tags.scm +42 -0
- beswarm/queries/tree-sitter-language-pack/java-tags.scm +20 -0
- beswarm/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
- beswarm/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
- beswarm/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
- beswarm/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
- beswarm/queries/tree-sitter-language-pack/python-tags.scm +14 -0
- beswarm/queries/tree-sitter-language-pack/r-tags.scm +21 -0
- beswarm/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
- beswarm/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
- beswarm/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
- beswarm/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
- beswarm/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
- beswarm/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
- beswarm/queries/tree-sitter-languages/README.md +23 -0
- beswarm/queries/tree-sitter-languages/c-tags.scm +9 -0
- beswarm/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
- beswarm/queries/tree-sitter-languages/cpp-tags.scm +15 -0
- beswarm/queries/tree-sitter-languages/dart-tags.scm +91 -0
- beswarm/queries/tree-sitter-languages/elisp-tags.scm +8 -0
- beswarm/queries/tree-sitter-languages/elixir-tags.scm +54 -0
- beswarm/queries/tree-sitter-languages/elm-tags.scm +19 -0
- beswarm/queries/tree-sitter-languages/go-tags.scm +30 -0
- beswarm/queries/tree-sitter-languages/hcl-tags.scm +77 -0
- beswarm/queries/tree-sitter-languages/java-tags.scm +20 -0
- beswarm/queries/tree-sitter-languages/javascript-tags.scm +88 -0
- beswarm/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
- beswarm/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
- beswarm/queries/tree-sitter-languages/php-tags.scm +26 -0
- beswarm/queries/tree-sitter-languages/python-tags.scm +12 -0
- beswarm/queries/tree-sitter-languages/ql-tags.scm +26 -0
- beswarm/queries/tree-sitter-languages/ruby-tags.scm +64 -0
- beswarm/queries/tree-sitter-languages/rust-tags.scm +60 -0
- beswarm/queries/tree-sitter-languages/scala-tags.scm +65 -0
- beswarm/queries/tree-sitter-languages/typescript-tags.scm +41 -0
- beswarm/tools/__init__.py +13 -0
- beswarm/tools/edit_file.py +162 -0
- beswarm/tools/planner.py +33 -0
- beswarm/tools/repomap.py +1289 -0
- beswarm/tools/search_arxiv.py +206 -0
- beswarm/tools/think.py +40 -0
- beswarm/tools/worker.py +118 -0
- {beswarm-0.1.2.dist-info → beswarm-0.1.4.dist-info}/METADATA +1 -1
- beswarm-0.1.4.dist-info/RECORD +60 -0
- beswarm-0.1.2.dist-info/RECORD +0 -5
- {beswarm-0.1.2.dist-info → beswarm-0.1.4.dist-info}/WHEEL +0 -0
- {beswarm-0.1.2.dist-info → beswarm-0.1.4.dist-info}/top_level.txt +0 -0
beswarm/__init__.py
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
from tools import *
|
@@ -0,0 +1,7 @@
|
|
1
|
+
These scm files are all adapted from the github repositories listed here:
|
2
|
+
|
3
|
+
https://github.com/Goldziher/tree-sitter-language-pack/blob/main/sources/language_definitions.json
|
4
|
+
|
5
|
+
See this URL for information on the licenses of each repo:
|
6
|
+
|
7
|
+
https://github.com/Goldziher/tree-sitter-language-pack/
|
@@ -0,0 +1,9 @@
|
|
1
|
+
(struct_specifier name: (type_identifier) @name.definition.class body:(_)) @definition.class
|
2
|
+
|
3
|
+
(declaration type: (union_specifier name: (type_identifier) @name.definition.class)) @definition.class
|
4
|
+
|
5
|
+
(function_declarator declarator: (identifier) @name.definition.function) @definition.function
|
6
|
+
|
7
|
+
(type_definition declarator: (type_identifier) @name.definition.type) @definition.type
|
8
|
+
|
9
|
+
(enum_specifier name: (type_identifier) @name.definition.type) @definition.type
|
@@ -0,0 +1,16 @@
|
|
1
|
+
; Definitions
|
2
|
+
(intent_def
|
3
|
+
(intent) @name.definition.intent) @definition.intent
|
4
|
+
|
5
|
+
(slot_def
|
6
|
+
(slot) @name.definition.slot) @definition.slot
|
7
|
+
|
8
|
+
(alias_def
|
9
|
+
(alias) @name.definition.alias) @definition.alias
|
10
|
+
|
11
|
+
; References
|
12
|
+
(slot_ref
|
13
|
+
(slot) @name.reference.slot) @reference.slot
|
14
|
+
|
15
|
+
(alias_ref
|
16
|
+
(alias) @name.reference.alias) @reference.alias
|
@@ -0,0 +1,122 @@
|
|
1
|
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
2
|
+
;;; Function Definitions ;;;;;;;;;;;;;;;;;;;;;;;
|
3
|
+
|
4
|
+
(defun_header
|
5
|
+
function_name: (sym_lit) @name.definition.function) @definition.function
|
6
|
+
|
7
|
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
8
|
+
;;; Function Calls ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
9
|
+
;;;
|
10
|
+
;;; Basically, we consider every list literal with symbol as the
|
11
|
+
;;; first element to be a call to a function named by that element.
|
12
|
+
;;; But we must exclude some cases. Note, tree-sitter @ignore
|
13
|
+
;;; cases only work if they are declared before the cases
|
14
|
+
;;; we want to include.
|
15
|
+
|
16
|
+
;; Exclude lambda lists for function definitions
|
17
|
+
;; For example:
|
18
|
+
;;
|
19
|
+
;; (defun my-func (arg1 arg2) ...)
|
20
|
+
;;
|
21
|
+
;; do not treat (arg1 arg2) as a call of function arg1
|
22
|
+
;;
|
23
|
+
(defun_header
|
24
|
+
lambda_list: (list_lit . [(sym_lit) (package_lit)] @ignore))
|
25
|
+
|
26
|
+
;; Similar to the above, but for
|
27
|
+
;;
|
28
|
+
;; (defmethod m ((type1 param1) (type2 param2)) ...)
|
29
|
+
;;
|
30
|
+
;; where list literals having symbol as their first element
|
31
|
+
;; are nested inside the lambda list.
|
32
|
+
(defun_header
|
33
|
+
lambda_list: (list_lit (list_lit . [(sym_lit) (package_lit)] @ignore)))
|
34
|
+
|
35
|
+
;;
|
36
|
+
;; (let ((var ...) (var2 ...)) ...)
|
37
|
+
;;
|
38
|
+
;; - exclude var, var2
|
39
|
+
;; - the same for let*, flet, labels, macrolet, symbol-macrolet
|
40
|
+
(list_lit . [(sym_lit) (package_lit)] @name.reference.call
|
41
|
+
. (list_lit (list_lit . [(sym_lit) (package_lit)] @ignore))
|
42
|
+
(#match? @name.reference.call
|
43
|
+
"(?i)^(cl:)?(let|let\\*|flet|labels|macrolet|symbol-macrolet)$")
|
44
|
+
)
|
45
|
+
|
46
|
+
;; TODO:
|
47
|
+
;; - exclude also:
|
48
|
+
;; - (defclass name (parent parent2)
|
49
|
+
;; ((slot1 ...)
|
50
|
+
;; (slot2 ...))
|
51
|
+
;; exclude the parent, slot1, slot2
|
52
|
+
;; - (flet ((func-1 (param1 param2))) ...)
|
53
|
+
;; - we already exclude func-1, but param1 is still recognized
|
54
|
+
;; as a function call - exclude it too
|
55
|
+
;; - the same for labels
|
56
|
+
;; - the same macrolet
|
57
|
+
;; - what else?
|
58
|
+
;; (that's a non-goal to completely support all macros
|
59
|
+
;; and special operators, but every one we support
|
60
|
+
;; makes the solution a little bit better)
|
61
|
+
;; - (flet ((func-1 (param1 param2))) ...)
|
62
|
+
;; - instead of simply excluding it, as we do today,
|
63
|
+
;; tag func-1 as @local.definition.function (I suppose)
|
64
|
+
;; - the same for labels, macrolet
|
65
|
+
;; - @local.scope for let, let*, flet, labels, macrolet
|
66
|
+
;; - I guess the whole span of the scope text,
|
67
|
+
;; till the closing paren, should be tagged as @local.scope;
|
68
|
+
;; Hopefully, combined with @local.definition.function
|
69
|
+
;; within the scope, the usual @reference.call within
|
70
|
+
;; that scope will refer to the local definition,
|
71
|
+
;; and there will be no need to use @local.reference.call
|
72
|
+
;; (which is more difficult to implement).
|
73
|
+
;; - When implementing, remember the scope rules differences
|
74
|
+
;; of let vs let*, flet vs labels.
|
75
|
+
|
76
|
+
|
77
|
+
;; Include all other cases - list literal with symbol as the
|
78
|
+
;; first element
|
79
|
+
(list_lit . [(sym_lit) (package_lit)] @name.reference.call) @reference.call
|
80
|
+
|
81
|
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
82
|
+
;;; classes
|
83
|
+
|
84
|
+
(list_lit . [(sym_lit) (package_lit)] @ignore
|
85
|
+
. [(sym_lit) (package_lit)] @name.definition.class
|
86
|
+
(#match? @ignore "(?i)^(cl:)?defclass$")
|
87
|
+
) @definition.class
|
88
|
+
|
89
|
+
(list_lit . [(sym_lit) (package_lit)] @ignore
|
90
|
+
. (quoting_lit [(sym_lit) (package_lit)] @name.reference.class)
|
91
|
+
(#match? @ignore "(?i)^(cl:)?make-instance$")
|
92
|
+
) @reference.class
|
93
|
+
|
94
|
+
;;; TODO:
|
95
|
+
;; - @reference.class for base classes
|
96
|
+
|
97
|
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
98
|
+
;;; TODO:
|
99
|
+
;; - Symbols referenced in defpackage
|
100
|
+
;;
|
101
|
+
;; (defpackage ...
|
102
|
+
;; (:export (symbol-a :symbol-b #:symbol-c "SYMBOL-D")))
|
103
|
+
;;
|
104
|
+
;; The goal is to allow quick navigation from the API
|
105
|
+
;; overview in the form of defpackage, to the definition
|
106
|
+
;; where user can read parameters, docstring, etc.
|
107
|
+
;; - The @name must not include the colon, or sharpsign colon, quotes,
|
108
|
+
;; just symbol-a, symbol-b, symbol-c, sybmol-d
|
109
|
+
;; - Downcase the names specified as string literals?
|
110
|
+
;; ("SYMBOL-D" -> symbol-d)
|
111
|
+
;; - We don't know if the exported symbol is a function, variable,
|
112
|
+
;; class or something else. The official doc
|
113
|
+
;; (https://tree-sitter.github.io/tree-sitter/code-navigation-systems)
|
114
|
+
;; does not even suggest a tag for variable reference.
|
115
|
+
;; (Although in practice, the `tree-sitter tags` command
|
116
|
+
;; allows any @reference.* and @definition.* tags)
|
117
|
+
;; Probably it's better to just use @reference.call for all
|
118
|
+
;; the symbols in the :export clause.
|
119
|
+
;;
|
120
|
+
;; - The same for the export function call:
|
121
|
+
;;
|
122
|
+
;; (export '(symbol-a :symbol-b #:symbol-c "SYMBOL-D"))
|
@@ -0,0 +1,15 @@
|
|
1
|
+
(struct_specifier name: (type_identifier) @name.definition.class body:(_)) @definition.class
|
2
|
+
|
3
|
+
(declaration type: (union_specifier name: (type_identifier) @name.definition.class)) @definition.class
|
4
|
+
|
5
|
+
(function_declarator declarator: (identifier) @name.definition.function) @definition.function
|
6
|
+
|
7
|
+
(function_declarator declarator: (field_identifier) @name.definition.function) @definition.function
|
8
|
+
|
9
|
+
(function_declarator declarator: (qualified_identifier scope: (namespace_identifier) @local.scope name: (identifier) @name.definition.method)) @definition.method
|
10
|
+
|
11
|
+
(type_definition declarator: (type_identifier) @name.definition.type) @definition.type
|
12
|
+
|
13
|
+
(enum_specifier name: (type_identifier) @name.definition.type) @definition.type
|
14
|
+
|
15
|
+
(class_specifier name: (type_identifier) @name.definition.class) @definition.class
|
@@ -0,0 +1,26 @@
|
|
1
|
+
; Based on https://github.com/tree-sitter/tree-sitter-c-sharp/blob/master/queries/tags.scm
|
2
|
+
; MIT License.
|
3
|
+
|
4
|
+
(class_declaration name: (identifier) @name.definition.class) @definition.class
|
5
|
+
|
6
|
+
(class_declaration (base_list (_) @name.reference.class)) @reference.class
|
7
|
+
|
8
|
+
(interface_declaration name: (identifier) @name.definition.interface) @definition.interface
|
9
|
+
|
10
|
+
(interface_declaration (base_list (_) @name.reference.interface)) @reference.interface
|
11
|
+
|
12
|
+
(method_declaration name: (identifier) @name.definition.method) @definition.method
|
13
|
+
|
14
|
+
(object_creation_expression type: (identifier) @name.reference.class) @reference.class
|
15
|
+
|
16
|
+
(type_parameter_constraints_clause (identifier) @name.reference.class) @reference.class
|
17
|
+
|
18
|
+
(type_parameter_constraint (type type: (identifier) @name.reference.class)) @reference.class
|
19
|
+
|
20
|
+
(variable_declaration type: (identifier) @name.reference.class) @reference.class
|
21
|
+
|
22
|
+
(invocation_expression function: (member_access_expression name: (identifier) @name.reference.send)) @reference.send
|
23
|
+
|
24
|
+
(namespace_declaration name: (identifier) @name.definition.module) @definition.module
|
25
|
+
|
26
|
+
(namespace_declaration name: (identifier) @name.definition.module) @module
|
@@ -0,0 +1,26 @@
|
|
1
|
+
(module_def (module_declaration (module_fqn) @name.definition.module)) @definition.module
|
2
|
+
|
3
|
+
(struct_declaration (struct) . (identifier) @name.definition.class) @definition.class
|
4
|
+
(interface_declaration (interface) . (identifier) @name.definition.interface) @definition.interface
|
5
|
+
(enum_declaration (enum) . (identifier) @name.definition.type) @definition.type
|
6
|
+
|
7
|
+
(class_declaration (class) . (identifier) @name.definition.class) @definition.class
|
8
|
+
(constructor (this) @name.definition.method) @definition.method
|
9
|
+
(destructor (this) @name.definition.method) @definition.method
|
10
|
+
(postblit (this) @name.definition.method) @definition.method
|
11
|
+
|
12
|
+
(manifest_declarator . (identifier) @name.definition.type) @definition.type
|
13
|
+
|
14
|
+
(function_declaration (identifier) @name.definition.function) @definition.function
|
15
|
+
|
16
|
+
(union_declaration (union) . (identifier) @name.definition.type) @definition.type
|
17
|
+
|
18
|
+
(anonymous_enum_declaration (enum_member . (identifier) @name.definition.constant)) @definition.constant
|
19
|
+
|
20
|
+
(enum_declaration (enum_member . (identifier) @name.definition.constant)) @definition.constant
|
21
|
+
|
22
|
+
(call_expression (identifier) @name.reference.call) @reference.call
|
23
|
+
(call_expression (type (template_instance (identifier) @name.reference.call))) @reference.call
|
24
|
+
(parameter (type (identifier) @name.reference.class) @reference.class (identifier))
|
25
|
+
|
26
|
+
(variable_declaration (type (identifier) @name.reference.class) @reference.class (declarator))
|
@@ -0,0 +1,92 @@
|
|
1
|
+
|
2
|
+
(class_definition
|
3
|
+
name: (identifier) @name.definition.class) @definition.class
|
4
|
+
|
5
|
+
(method_signature
|
6
|
+
(function_signature)) @definition.method
|
7
|
+
|
8
|
+
(type_alias
|
9
|
+
(type_identifier) @name.definition.type) @definition.type
|
10
|
+
|
11
|
+
(method_signature
|
12
|
+
(getter_signature
|
13
|
+
name: (identifier) @name.definition.method)) @definition.method
|
14
|
+
|
15
|
+
(method_signature
|
16
|
+
(setter_signature
|
17
|
+
name: (identifier) @name.definition.method)) @definition.method
|
18
|
+
|
19
|
+
(method_signature
|
20
|
+
(function_signature
|
21
|
+
name: (identifier) @name.definition.method)) @definition.method
|
22
|
+
|
23
|
+
(method_signature
|
24
|
+
(factory_constructor_signature
|
25
|
+
(identifier) @name.definition.method)) @definition.method
|
26
|
+
|
27
|
+
(method_signature
|
28
|
+
(constructor_signature
|
29
|
+
name: (identifier) @name.definition.method)) @definition.method
|
30
|
+
|
31
|
+
(method_signature
|
32
|
+
(operator_signature)) @definition.method
|
33
|
+
|
34
|
+
(method_signature) @definition.method
|
35
|
+
|
36
|
+
(mixin_declaration
|
37
|
+
(mixin)
|
38
|
+
(identifier) @name.definition.mixin) @definition.mixin
|
39
|
+
|
40
|
+
(extension_declaration
|
41
|
+
name: (identifier) @name.definition.extension) @definition.extension
|
42
|
+
|
43
|
+
|
44
|
+
(new_expression
|
45
|
+
(type_identifier) @name.reference.class) @reference.class
|
46
|
+
|
47
|
+
(enum_declaration
|
48
|
+
name: (identifier) @name.definition.enum) @definition.enum
|
49
|
+
|
50
|
+
(function_signature
|
51
|
+
name: (identifier) @name.definition.function) @definition.function
|
52
|
+
|
53
|
+
(initialized_variable_definition
|
54
|
+
name: (identifier)
|
55
|
+
value: (identifier) @name.reference.class
|
56
|
+
value: (selector
|
57
|
+
"!"?
|
58
|
+
(argument_part
|
59
|
+
(arguments
|
60
|
+
(argument)*))?)?) @reference.class
|
61
|
+
|
62
|
+
(assignment_expression
|
63
|
+
left: (assignable_expression
|
64
|
+
(identifier)
|
65
|
+
(unconditional_assignable_selector
|
66
|
+
"."
|
67
|
+
(identifier) @name.reference.send))) @reference.call
|
68
|
+
|
69
|
+
(assignment_expression
|
70
|
+
left: (assignable_expression
|
71
|
+
(identifier)
|
72
|
+
(conditional_assignable_selector
|
73
|
+
"?."
|
74
|
+
(identifier) @name.reference.send))) @reference.call
|
75
|
+
|
76
|
+
((identifier) @name.reference.send
|
77
|
+
(selector
|
78
|
+
"!"?
|
79
|
+
(conditional_assignable_selector
|
80
|
+
"?." (identifier) @name.reference.send)?
|
81
|
+
(unconditional_assignable_selector
|
82
|
+
"."? (identifier) @name.reference.send)?
|
83
|
+
(argument_part
|
84
|
+
(arguments
|
85
|
+
(argument)*))?)*
|
86
|
+
(cascade_section
|
87
|
+
(cascade_selector
|
88
|
+
(identifier)) @name.reference.send
|
89
|
+
(argument_part
|
90
|
+
(arguments
|
91
|
+
(argument)*))?)?) @reference.call
|
92
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
; Definitions
|
2
|
+
|
3
|
+
; * modules and protocols
|
4
|
+
(call
|
5
|
+
target: (identifier) @ignore
|
6
|
+
(arguments (alias) @name.definition.module)
|
7
|
+
(#any-of? @ignore "defmodule" "defprotocol")) @definition.module
|
8
|
+
|
9
|
+
; * functions/macros
|
10
|
+
(call
|
11
|
+
target: (identifier) @ignore
|
12
|
+
(arguments
|
13
|
+
[
|
14
|
+
; zero-arity functions with no parentheses
|
15
|
+
(identifier) @name.definition.function
|
16
|
+
; regular function clause
|
17
|
+
(call target: (identifier) @name.definition.function)
|
18
|
+
; function clause with a guard clause
|
19
|
+
(binary_operator
|
20
|
+
left: (call target: (identifier) @name.definition.function)
|
21
|
+
operator: "when")
|
22
|
+
])
|
23
|
+
(#any-of? @ignore "def" "defp" "defdelegate" "defguard" "defguardp" "defmacro" "defmacrop" "defn" "defnp")) @definition.function
|
24
|
+
|
25
|
+
; References
|
26
|
+
|
27
|
+
; ignore calls to kernel/special-forms keywords
|
28
|
+
(call
|
29
|
+
target: (identifier) @ignore
|
30
|
+
(#any-of? @ignore "def" "defp" "defdelegate" "defguard" "defguardp" "defmacro" "defmacrop" "defn" "defnp" "defmodule" "defprotocol" "defimpl" "defstruct" "defexception" "defoverridable" "alias" "case" "cond" "else" "for" "if" "import" "quote" "raise" "receive" "require" "reraise" "super" "throw" "try" "unless" "unquote" "unquote_splicing" "use" "with"))
|
31
|
+
|
32
|
+
; ignore module attributes
|
33
|
+
(unary_operator
|
34
|
+
operator: "@"
|
35
|
+
operand: (call
|
36
|
+
target: (identifier) @ignore))
|
37
|
+
|
38
|
+
; * function call
|
39
|
+
(call
|
40
|
+
target: [
|
41
|
+
; local
|
42
|
+
(identifier) @name.reference.call
|
43
|
+
; remote
|
44
|
+
(dot
|
45
|
+
right: (identifier) @name.reference.call)
|
46
|
+
]) @reference.call
|
47
|
+
|
48
|
+
; * pipe into function call
|
49
|
+
(binary_operator
|
50
|
+
operator: "|>"
|
51
|
+
right: (identifier) @name.reference.call) @reference.call
|
52
|
+
|
53
|
+
; * modules
|
54
|
+
(alias) @name.reference.module @reference.module
|
@@ -0,0 +1,19 @@
|
|
1
|
+
(value_declaration (function_declaration_left (lower_case_identifier) @name.definition.function)) @definition.function
|
2
|
+
|
3
|
+
(function_call_expr (value_expr (value_qid) @name.reference.function)) @reference.function
|
4
|
+
(exposed_value (lower_case_identifier) @name.reference.function) @reference.function
|
5
|
+
(type_annotation ((lower_case_identifier) @name.reference.function) (colon)) @reference.function
|
6
|
+
|
7
|
+
(type_declaration ((upper_case_identifier) @name.definition.type) ) @definition.type
|
8
|
+
|
9
|
+
(type_ref (upper_case_qid (upper_case_identifier) @name.reference.type)) @reference.type
|
10
|
+
(exposed_type (upper_case_identifier) @name.reference.type) @reference.type
|
11
|
+
|
12
|
+
(type_declaration (union_variant (upper_case_identifier) @name.definition.union)) @definition.union
|
13
|
+
|
14
|
+
(value_expr (upper_case_qid (upper_case_identifier) @name.reference.union)) @reference.union
|
15
|
+
|
16
|
+
|
17
|
+
(module_declaration
|
18
|
+
(upper_case_qid (upper_case_identifier)) @name.definition.module
|
19
|
+
) @definition.module
|
@@ -0,0 +1,41 @@
|
|
1
|
+
; Modules
|
2
|
+
(module) @name.reference.module @reference.module
|
3
|
+
(import alias: (identifier) @name.reference.module) @reference.module
|
4
|
+
(remote_type_identifier
|
5
|
+
module: (identifier) @name.reference.module) @reference.module
|
6
|
+
((field_access
|
7
|
+
record: (identifier) @name.reference.module)
|
8
|
+
(#is-not? local)) @reference.module
|
9
|
+
|
10
|
+
; Functions
|
11
|
+
(function
|
12
|
+
name: (identifier) @name.definition.function) @definition.function
|
13
|
+
(external_function
|
14
|
+
name: (identifier) @name.definition.function) @definition.function
|
15
|
+
(unqualified_import (identifier) @name.reference.function) @reference.function
|
16
|
+
((function_call
|
17
|
+
function: (identifier) @name.reference.function) @reference.function
|
18
|
+
(#is-not? local))
|
19
|
+
((field_access
|
20
|
+
record: (identifier) @ignore
|
21
|
+
field: (label) @name.reference.function)
|
22
|
+
(#is-not? local)) @reference.function
|
23
|
+
((binary_expression
|
24
|
+
operator: "|>"
|
25
|
+
right: (identifier) @name.reference.function)
|
26
|
+
(#is-not? local)) @reference.function
|
27
|
+
|
28
|
+
; Types
|
29
|
+
(type_definition
|
30
|
+
(type_name
|
31
|
+
name: (type_identifier) @name.definition.type)) @definition.type
|
32
|
+
(type_definition
|
33
|
+
(data_constructors
|
34
|
+
(data_constructor
|
35
|
+
name: (constructor_name) @name.definition.constructor))) @definition.constructor
|
36
|
+
(external_type
|
37
|
+
(type_name
|
38
|
+
name: (type_identifier) @name.definition.type)) @definition.type
|
39
|
+
|
40
|
+
(type_identifier) @name.reference.type @reference.type
|
41
|
+
(constructor_name) @name.reference.constructor @reference.constructor
|
@@ -0,0 +1,42 @@
|
|
1
|
+
(
|
2
|
+
(comment)* @doc
|
3
|
+
.
|
4
|
+
(function_declaration
|
5
|
+
name: (identifier) @name.definition.function) @definition.function
|
6
|
+
(#strip! @doc "^//\\s*")
|
7
|
+
(#set-adjacent! @doc @definition.function)
|
8
|
+
)
|
9
|
+
|
10
|
+
(
|
11
|
+
(comment)* @doc
|
12
|
+
.
|
13
|
+
(method_declaration
|
14
|
+
name: (field_identifier) @name.definition.method) @definition.method
|
15
|
+
(#strip! @doc "^//\\s*")
|
16
|
+
(#set-adjacent! @doc @definition.method)
|
17
|
+
)
|
18
|
+
|
19
|
+
(call_expression
|
20
|
+
function: [
|
21
|
+
(identifier) @name.reference.call
|
22
|
+
(parenthesized_expression (identifier) @name.reference.call)
|
23
|
+
(selector_expression field: (field_identifier) @name.reference.call)
|
24
|
+
(parenthesized_expression (selector_expression field: (field_identifier) @name.reference.call))
|
25
|
+
]) @reference.call
|
26
|
+
|
27
|
+
(type_spec
|
28
|
+
name: (type_identifier) @name.definition.type) @definition.type
|
29
|
+
|
30
|
+
(type_identifier) @name.reference.type @reference.type
|
31
|
+
|
32
|
+
(package_clause "package" (package_identifier) @name.definition.module)
|
33
|
+
|
34
|
+
(type_declaration (type_spec name: (type_identifier) @name.definition.interface type: (interface_type)))
|
35
|
+
|
36
|
+
(type_declaration (type_spec name: (type_identifier) @name.definition.class type: (struct_type)))
|
37
|
+
|
38
|
+
(import_declaration (import_spec) @name.reference.module)
|
39
|
+
|
40
|
+
(var_declaration (var_spec name: (identifier) @name.definition.variable))
|
41
|
+
|
42
|
+
(const_declaration (const_spec name: (identifier) @name.definition.constant))
|
@@ -0,0 +1,20 @@
|
|
1
|
+
(class_declaration
|
2
|
+
name: (identifier) @name.definition.class) @definition.class
|
3
|
+
|
4
|
+
(method_declaration
|
5
|
+
name: (identifier) @name.definition.method) @definition.method
|
6
|
+
|
7
|
+
(method_invocation
|
8
|
+
name: (identifier) @name.reference.method
|
9
|
+
arguments: (argument_list) @reference.call)
|
10
|
+
|
11
|
+
(interface_declaration
|
12
|
+
name: (identifier) @name.definition.interface) @definition.interface
|
13
|
+
|
14
|
+
(type_list
|
15
|
+
(type_identifier) @name.reference.interface) @reference.implementation
|
16
|
+
|
17
|
+
(object_creation_expression
|
18
|
+
type: (type_identifier) @name.reference.class) @reference.class
|
19
|
+
|
20
|
+
(superclass (type_identifier) @name.reference.class) @reference.class
|
@@ -0,0 +1,88 @@
|
|
1
|
+
(
|
2
|
+
(comment)* @doc
|
3
|
+
.
|
4
|
+
(method_definition
|
5
|
+
name: (property_identifier) @name.definition.method) @definition.method
|
6
|
+
(#not-eq? @name.definition.method "constructor")
|
7
|
+
(#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
|
8
|
+
(#select-adjacent! @doc @definition.method)
|
9
|
+
)
|
10
|
+
|
11
|
+
(
|
12
|
+
(comment)* @doc
|
13
|
+
.
|
14
|
+
[
|
15
|
+
(class
|
16
|
+
name: (_) @name.definition.class)
|
17
|
+
(class_declaration
|
18
|
+
name: (_) @name.definition.class)
|
19
|
+
] @definition.class
|
20
|
+
(#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
|
21
|
+
(#select-adjacent! @doc @definition.class)
|
22
|
+
)
|
23
|
+
|
24
|
+
(
|
25
|
+
(comment)* @doc
|
26
|
+
.
|
27
|
+
[
|
28
|
+
(function_expression
|
29
|
+
name: (identifier) @name.definition.function)
|
30
|
+
(function_declaration
|
31
|
+
name: (identifier) @name.definition.function)
|
32
|
+
(generator_function
|
33
|
+
name: (identifier) @name.definition.function)
|
34
|
+
(generator_function_declaration
|
35
|
+
name: (identifier) @name.definition.function)
|
36
|
+
] @definition.function
|
37
|
+
(#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
|
38
|
+
(#select-adjacent! @doc @definition.function)
|
39
|
+
)
|
40
|
+
|
41
|
+
(
|
42
|
+
(comment)* @doc
|
43
|
+
.
|
44
|
+
(lexical_declaration
|
45
|
+
(variable_declarator
|
46
|
+
name: (identifier) @name.definition.function
|
47
|
+
value: [(arrow_function) (function_expression)]) @definition.function)
|
48
|
+
(#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
|
49
|
+
(#select-adjacent! @doc @definition.function)
|
50
|
+
)
|
51
|
+
|
52
|
+
(
|
53
|
+
(comment)* @doc
|
54
|
+
.
|
55
|
+
(variable_declaration
|
56
|
+
(variable_declarator
|
57
|
+
name: (identifier) @name.definition.function
|
58
|
+
value: [(arrow_function) (function_expression)]) @definition.function)
|
59
|
+
(#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
|
60
|
+
(#select-adjacent! @doc @definition.function)
|
61
|
+
)
|
62
|
+
|
63
|
+
(assignment_expression
|
64
|
+
left: [
|
65
|
+
(identifier) @name.definition.function
|
66
|
+
(member_expression
|
67
|
+
property: (property_identifier) @name.definition.function)
|
68
|
+
]
|
69
|
+
right: [(arrow_function) (function_expression)]
|
70
|
+
) @definition.function
|
71
|
+
|
72
|
+
(pair
|
73
|
+
key: (property_identifier) @name.definition.function
|
74
|
+
value: [(arrow_function) (function_expression)]) @definition.function
|
75
|
+
|
76
|
+
(
|
77
|
+
(call_expression
|
78
|
+
function: (identifier) @name.reference.call) @reference.call
|
79
|
+
(#not-match? @name.reference.call "^(require)$")
|
80
|
+
)
|
81
|
+
|
82
|
+
(call_expression
|
83
|
+
function: (member_expression
|
84
|
+
property: (property_identifier) @name.reference.call)
|
85
|
+
arguments: (_) @reference.call)
|
86
|
+
|
87
|
+
(new_expression
|
88
|
+
constructor: (_) @name.reference.class) @reference.class
|
@@ -0,0 +1,34 @@
|
|
1
|
+
(function_declaration
|
2
|
+
name: [
|
3
|
+
(identifier) @name.definition.function
|
4
|
+
(dot_index_expression
|
5
|
+
field: (identifier) @name.definition.function)
|
6
|
+
]) @definition.function
|
7
|
+
|
8
|
+
(function_declaration
|
9
|
+
name: (method_index_expression
|
10
|
+
method: (identifier) @name.definition.method)) @definition.method
|
11
|
+
|
12
|
+
(assignment_statement
|
13
|
+
(variable_list .
|
14
|
+
name: [
|
15
|
+
(identifier) @name.definition.function
|
16
|
+
(dot_index_expression
|
17
|
+
field: (identifier) @name.definition.function)
|
18
|
+
])
|
19
|
+
(expression_list .
|
20
|
+
value: (function_definition))) @definition.function
|
21
|
+
|
22
|
+
(table_constructor
|
23
|
+
(field
|
24
|
+
name: (identifier) @name.definition.function
|
25
|
+
value: (function_definition))) @definition.function
|
26
|
+
|
27
|
+
(function_call
|
28
|
+
name: [
|
29
|
+
(identifier) @name.reference.call
|
30
|
+
(dot_index_expression
|
31
|
+
field: (identifier) @name.reference.call)
|
32
|
+
(method_index_expression
|
33
|
+
method: (identifier) @name.reference.method)
|
34
|
+
]) @reference.call
|