@mnemonik/shared 6.48.0 → 6.51.0
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.
- package/dist/ast/astChunker.d.ts +124 -0
- package/dist/ast/astChunker.d.ts.map +1 -0
- package/dist/ast/astChunker.js +559 -0
- package/dist/ast/astChunker.js.map +1 -0
- package/dist/ast/grammars.d.ts +170 -0
- package/dist/ast/grammars.d.ts.map +1 -0
- package/dist/ast/grammars.js +411 -0
- package/dist/ast/grammars.js.map +1 -0
- package/dist/codeScanner.d.ts +106 -0
- package/dist/codeScanner.d.ts.map +1 -1
- package/dist/codeScanner.js +552 -62
- package/dist/codeScanner.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/queries/bash.tags.scm +7 -0
- package/queries/groovy.tags.scm +15 -0
- package/queries/powershell.tags.scm +14 -0
- package/scripts/vendor-grammars.ts +317 -0
- package/src/ast/astChunker.ts +661 -0
- package/src/ast/grammars.ts +490 -0
- package/src/codeScanner.ts +577 -63
- package/src/index.ts +25 -0
- package/wasm/bash.tags.scm +7 -0
- package/wasm/bash.wasm +0 -0
- package/wasm/c-sharp.tags.scm +23 -0
- package/wasm/c-sharp.wasm +0 -0
- package/wasm/c.tags.scm +9 -0
- package/wasm/c.wasm +0 -0
- package/wasm/cpp.tags.scm +15 -0
- package/wasm/cpp.wasm +0 -0
- package/wasm/elixir.tags.scm +54 -0
- package/wasm/elixir.wasm +0 -0
- package/wasm/go.tags.scm +42 -0
- package/wasm/go.wasm +0 -0
- package/wasm/groovy.tags.scm +15 -0
- package/wasm/groovy.wasm +0 -0
- package/wasm/java.tags.scm +20 -0
- package/wasm/java.wasm +0 -0
- package/wasm/javascript.tags.scm +99 -0
- package/wasm/javascript.wasm +0 -0
- package/wasm/php.tags.scm +40 -0
- package/wasm/php.wasm +0 -0
- package/wasm/powershell.tags.scm +14 -0
- package/wasm/powershell.wasm +0 -0
- package/wasm/python.tags.scm +14 -0
- package/wasm/python.wasm +0 -0
- package/wasm/ruby.tags.scm +64 -0
- package/wasm/ruby.wasm +0 -0
- package/wasm/rust.tags.scm +60 -0
- package/wasm/rust.wasm +0 -0
- package/wasm/scala.tags.scm +66 -0
- package/wasm/scala.wasm +0 -0
- package/wasm/solidity.tags.scm +43 -0
- package/wasm/solidity.wasm +0 -0
- package/wasm/tsx.wasm +0 -0
- package/wasm/typescript.tags.scm +23 -0
- package/wasm/typescript.wasm +0 -0
package/src/index.ts
CHANGED
|
@@ -12,14 +12,39 @@ export {
|
|
|
12
12
|
MAX_SCANNED_FILE_BYTES,
|
|
13
13
|
AUTHORITY_FILE_MATCHERS,
|
|
14
14
|
BUILT_IN_IGNORE_DIRS,
|
|
15
|
+
DEFAULT_INCLUDE_EXTENSIONS,
|
|
16
|
+
languageForExtension,
|
|
15
17
|
makeIgnoreMatcher,
|
|
16
18
|
isGitBoundary,
|
|
17
19
|
FIXTURE_PATH_RE,
|
|
18
20
|
isFixturePath,
|
|
19
21
|
isSecretFile,
|
|
22
|
+
isAuthorityOnlyPath,
|
|
23
|
+
logAstCapabilityOnce,
|
|
20
24
|
type CodeChunk,
|
|
21
25
|
type ScanOptions,
|
|
22
26
|
} from './codeScanner.js';
|
|
27
|
+
export {
|
|
28
|
+
AST_LANGUAGE_IDS,
|
|
29
|
+
QUERY_CHAIN,
|
|
30
|
+
VENDORED_ARTIFACT_DIR,
|
|
31
|
+
astArtifactReport,
|
|
32
|
+
astCapabilityReport,
|
|
33
|
+
grammarArtifactBasename,
|
|
34
|
+
loadGrammar,
|
|
35
|
+
loadedGrammarIds,
|
|
36
|
+
resolveAstLanguage,
|
|
37
|
+
type AstLanguageId,
|
|
38
|
+
type GrammarBinding,
|
|
39
|
+
type GrammarLoad,
|
|
40
|
+
type GrammarUnavailableReason,
|
|
41
|
+
} from './ast/grammars.js';
|
|
42
|
+
export {
|
|
43
|
+
MAX_AST_PARSE_BYTES,
|
|
44
|
+
chunkWithAst,
|
|
45
|
+
type AstChunk,
|
|
46
|
+
type AstChunkResult,
|
|
47
|
+
} from './ast/astChunker.js';
|
|
23
48
|
export {
|
|
24
49
|
SECRET_PATTERNS,
|
|
25
50
|
SECRET_REDACTION_PLACEHOLDER,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
; Hand-written: tree-sitter-bash ships no queries/tags.scm.
|
|
2
|
+
;
|
|
3
|
+
; Node names verified by parsing a sample with the vendored bash.wasm rather than
|
|
4
|
+
; taken from documentation — `function_definition` carries its name in a `name`
|
|
5
|
+
; field typed `word`, covering both `foo() { }` and `function foo { }`.
|
|
6
|
+
(function_definition
|
|
7
|
+
name: (word) @name) @definition.function
|
package/wasm/bash.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
(class_declaration name: (identifier) @name) @definition.class
|
|
2
|
+
|
|
3
|
+
(class_declaration (base_list (_) @name)) @reference.class
|
|
4
|
+
|
|
5
|
+
(interface_declaration name: (identifier) @name) @definition.interface
|
|
6
|
+
|
|
7
|
+
(interface_declaration (base_list (_) @name)) @reference.interface
|
|
8
|
+
|
|
9
|
+
(method_declaration name: (identifier) @name) @definition.method
|
|
10
|
+
|
|
11
|
+
(object_creation_expression type: (identifier) @name) @reference.class
|
|
12
|
+
|
|
13
|
+
(type_parameter_constraints_clause (identifier) @name) @reference.class
|
|
14
|
+
|
|
15
|
+
(type_parameter_constraint (type type: (identifier) @name)) @reference.class
|
|
16
|
+
|
|
17
|
+
(variable_declaration type: (identifier) @name) @reference.class
|
|
18
|
+
|
|
19
|
+
(invocation_expression function: (member_access_expression name: (identifier) @name)) @reference.send
|
|
20
|
+
|
|
21
|
+
(namespace_declaration name: (identifier) @name) @definition.module
|
|
22
|
+
|
|
23
|
+
(namespace_declaration name: (identifier) @name) @module
|
|
Binary file
|
package/wasm/c.tags.scm
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
(struct_specifier name: (type_identifier) @name body:(_)) @definition.class
|
|
2
|
+
|
|
3
|
+
(declaration type: (union_specifier name: (type_identifier) @name)) @definition.class
|
|
4
|
+
|
|
5
|
+
(function_declarator declarator: (identifier) @name) @definition.function
|
|
6
|
+
|
|
7
|
+
(type_definition declarator: (type_identifier) @name) @definition.type
|
|
8
|
+
|
|
9
|
+
(enum_specifier name: (type_identifier) @name) @definition.type
|
package/wasm/c.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
(struct_specifier name: (type_identifier) @name body:(_)) @definition.class
|
|
2
|
+
|
|
3
|
+
(declaration type: (union_specifier name: (type_identifier) @name)) @definition.class
|
|
4
|
+
|
|
5
|
+
(function_declarator declarator: (identifier) @name) @definition.function
|
|
6
|
+
|
|
7
|
+
(function_declarator declarator: (field_identifier) @name) @definition.function
|
|
8
|
+
|
|
9
|
+
(function_declarator declarator: (qualified_identifier scope: (namespace_identifier) @local.scope name: (identifier) @name)) @definition.method
|
|
10
|
+
|
|
11
|
+
(type_definition declarator: (type_identifier) @name) @definition.type
|
|
12
|
+
|
|
13
|
+
(enum_specifier name: (type_identifier) @name) @definition.type
|
|
14
|
+
|
|
15
|
+
(class_specifier name: (type_identifier) @name) @definition.class
|
package/wasm/cpp.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
; Definitions
|
|
2
|
+
|
|
3
|
+
; * modules and protocols
|
|
4
|
+
(call
|
|
5
|
+
target: (identifier) @ignore
|
|
6
|
+
(arguments (alias) @name)
|
|
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
|
|
16
|
+
; regular function clause
|
|
17
|
+
(call target: (identifier) @name)
|
|
18
|
+
; function clause with a guard clause
|
|
19
|
+
(binary_operator
|
|
20
|
+
left: (call target: (identifier) @name)
|
|
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
|
|
43
|
+
; remote
|
|
44
|
+
(dot
|
|
45
|
+
right: (identifier) @name)
|
|
46
|
+
]) @reference.call
|
|
47
|
+
|
|
48
|
+
; * pipe into function call
|
|
49
|
+
(binary_operator
|
|
50
|
+
operator: "|>"
|
|
51
|
+
right: (identifier) @name) @reference.call
|
|
52
|
+
|
|
53
|
+
; * modules
|
|
54
|
+
(alias) @name @reference.module
|
package/wasm/elixir.wasm
ADDED
|
Binary file
|
package/wasm/go.tags.scm
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
(
|
|
2
|
+
(comment)* @doc
|
|
3
|
+
.
|
|
4
|
+
(function_declaration
|
|
5
|
+
name: (identifier) @name) @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
|
|
15
|
+
(#strip! @doc "^//\\s*")
|
|
16
|
+
(#set-adjacent! @doc @definition.method)
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
(call_expression
|
|
20
|
+
function: [
|
|
21
|
+
(identifier) @name
|
|
22
|
+
(parenthesized_expression (identifier) @name)
|
|
23
|
+
(selector_expression field: (field_identifier) @name)
|
|
24
|
+
(parenthesized_expression (selector_expression field: (field_identifier) @name))
|
|
25
|
+
]) @reference.call
|
|
26
|
+
|
|
27
|
+
(type_spec
|
|
28
|
+
name: (type_identifier) @name) @definition.type
|
|
29
|
+
|
|
30
|
+
(type_identifier) @name @reference.type
|
|
31
|
+
|
|
32
|
+
(package_clause "package" (package_identifier) @name)
|
|
33
|
+
|
|
34
|
+
(type_declaration (type_spec name: (type_identifier) @name type: (interface_type)))
|
|
35
|
+
|
|
36
|
+
(type_declaration (type_spec name: (type_identifier) @name type: (struct_type)))
|
|
37
|
+
|
|
38
|
+
(import_declaration (import_spec) @name)
|
|
39
|
+
|
|
40
|
+
(var_declaration (var_spec name: (identifier) @name))
|
|
41
|
+
|
|
42
|
+
(const_declaration (const_spec name: (identifier) @name))
|
package/wasm/go.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
; Hand-written: tree-sitter-groovy ships no queries/tags.scm.
|
|
2
|
+
;
|
|
3
|
+
; Node names verified against the vendored groovy.wasm. Groovy distinguishes a
|
|
4
|
+
; top-level `function_definition` from a `method_declaration` inside a
|
|
5
|
+
; `class_body`, and both name via an `identifier` field — so methods get
|
|
6
|
+
; definition.method and keep their own name, which is the defect this plan
|
|
7
|
+
; exists to fix for every language.
|
|
8
|
+
(class_declaration
|
|
9
|
+
name: (identifier) @name) @definition.class
|
|
10
|
+
|
|
11
|
+
(method_declaration
|
|
12
|
+
name: (identifier) @name) @definition.method
|
|
13
|
+
|
|
14
|
+
(function_definition
|
|
15
|
+
name: (identifier) @name) @definition.function
|
package/wasm/groovy.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
(class_declaration
|
|
2
|
+
name: (identifier) @name) @definition.class
|
|
3
|
+
|
|
4
|
+
(method_declaration
|
|
5
|
+
name: (identifier) @name) @definition.method
|
|
6
|
+
|
|
7
|
+
(method_invocation
|
|
8
|
+
name: (identifier) @name
|
|
9
|
+
arguments: (argument_list) @reference.call)
|
|
10
|
+
|
|
11
|
+
(interface_declaration
|
|
12
|
+
name: (identifier) @name) @definition.interface
|
|
13
|
+
|
|
14
|
+
(type_list
|
|
15
|
+
(type_identifier) @name) @reference.implementation
|
|
16
|
+
|
|
17
|
+
(object_creation_expression
|
|
18
|
+
type: (type_identifier) @name) @reference.class
|
|
19
|
+
|
|
20
|
+
(superclass (type_identifier) @name) @reference.class
|
package/wasm/java.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
(
|
|
2
|
+
(comment)* @doc
|
|
3
|
+
.
|
|
4
|
+
(method_definition
|
|
5
|
+
name: (property_identifier) @name) @definition.method
|
|
6
|
+
(#not-eq? @name "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)
|
|
17
|
+
(class_declaration
|
|
18
|
+
name: (_) @name)
|
|
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)
|
|
30
|
+
(function_declaration
|
|
31
|
+
name: (identifier) @name)
|
|
32
|
+
(generator_function
|
|
33
|
+
name: (identifier) @name)
|
|
34
|
+
(generator_function_declaration
|
|
35
|
+
name: (identifier) @name)
|
|
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
|
|
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
|
|
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
|
|
66
|
+
(member_expression
|
|
67
|
+
property: (property_identifier) @name)
|
|
68
|
+
]
|
|
69
|
+
right: [(arrow_function) (function_expression)]
|
|
70
|
+
) @definition.function
|
|
71
|
+
|
|
72
|
+
(pair
|
|
73
|
+
key: (property_identifier) @name
|
|
74
|
+
value: [(arrow_function) (function_expression)]) @definition.function
|
|
75
|
+
|
|
76
|
+
(
|
|
77
|
+
(call_expression
|
|
78
|
+
function: (identifier) @name) @reference.call
|
|
79
|
+
(#not-match? @name "^(require)$")
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
(call_expression
|
|
83
|
+
function: (member_expression
|
|
84
|
+
property: (property_identifier) @name)
|
|
85
|
+
arguments: (_) @reference.call)
|
|
86
|
+
|
|
87
|
+
(new_expression
|
|
88
|
+
constructor: (_) @name) @reference.class
|
|
89
|
+
|
|
90
|
+
(export_statement value: (assignment_expression left: (identifier) @name right: ([
|
|
91
|
+
(number)
|
|
92
|
+
(string)
|
|
93
|
+
(identifier)
|
|
94
|
+
(undefined)
|
|
95
|
+
(null)
|
|
96
|
+
(new_expression)
|
|
97
|
+
(binary_expression)
|
|
98
|
+
(call_expression)
|
|
99
|
+
]))) @definition.constant
|
|
Binary file
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
(namespace_definition
|
|
2
|
+
name: (namespace_name) @name) @definition.module
|
|
3
|
+
|
|
4
|
+
(interface_declaration
|
|
5
|
+
name: (name) @name) @definition.interface
|
|
6
|
+
|
|
7
|
+
(trait_declaration
|
|
8
|
+
name: (name) @name) @definition.interface
|
|
9
|
+
|
|
10
|
+
(class_declaration
|
|
11
|
+
name: (name) @name) @definition.class
|
|
12
|
+
|
|
13
|
+
(class_interface_clause [(name) (qualified_name)] @name) @reference.implementation
|
|
14
|
+
|
|
15
|
+
(property_declaration
|
|
16
|
+
(property_element (variable_name (name) @name))) @definition.field
|
|
17
|
+
|
|
18
|
+
(function_definition
|
|
19
|
+
name: (name) @name) @definition.function
|
|
20
|
+
|
|
21
|
+
(method_declaration
|
|
22
|
+
name: (name) @name) @definition.function
|
|
23
|
+
|
|
24
|
+
(object_creation_expression
|
|
25
|
+
[
|
|
26
|
+
(qualified_name (name) @name)
|
|
27
|
+
(variable_name (name) @name)
|
|
28
|
+
]) @reference.class
|
|
29
|
+
|
|
30
|
+
(function_call_expression
|
|
31
|
+
function: [
|
|
32
|
+
(qualified_name (name) @name)
|
|
33
|
+
(variable_name (name)) @name
|
|
34
|
+
]) @reference.call
|
|
35
|
+
|
|
36
|
+
(scoped_call_expression
|
|
37
|
+
name: (name) @name) @reference.call
|
|
38
|
+
|
|
39
|
+
(member_call_expression
|
|
40
|
+
name: (name) @name) @reference.call
|
package/wasm/php.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
; Hand-written: tree-sitter-powershell ships no queries/tags.scm.
|
|
2
|
+
;
|
|
3
|
+
; Node names verified against the vendored powershell.wasm. PowerShell names
|
|
4
|
+
; differ from every other grammar here: a function's name node is
|
|
5
|
+
; `function_name` (not `identifier`), a class's is `simple_name`, and methods are
|
|
6
|
+
; `class_method_definition`. Guessing these from another language's convention
|
|
7
|
+
; would have produced a query that compiles and matches nothing.
|
|
8
|
+
(function_statement
|
|
9
|
+
(function_name) @name) @definition.function
|
|
10
|
+
|
|
11
|
+
(class_statement
|
|
12
|
+
(simple_name) @name) @definition.class
|
|
13
|
+
|
|
14
|
+
(class_method_definition) @definition.method
|
|
Binary file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
(module (expression_statement (assignment left: (identifier) @name) @definition.constant))
|
|
2
|
+
|
|
3
|
+
(class_definition
|
|
4
|
+
name: (identifier) @name) @definition.class
|
|
5
|
+
|
|
6
|
+
(function_definition
|
|
7
|
+
name: (identifier) @name) @definition.function
|
|
8
|
+
|
|
9
|
+
(call
|
|
10
|
+
function: [
|
|
11
|
+
(identifier) @name
|
|
12
|
+
(attribute
|
|
13
|
+
attribute: (identifier) @name)
|
|
14
|
+
]) @reference.call
|
package/wasm/python.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
; Method definitions
|
|
2
|
+
|
|
3
|
+
(
|
|
4
|
+
(comment)* @doc
|
|
5
|
+
.
|
|
6
|
+
[
|
|
7
|
+
(method
|
|
8
|
+
name: (_) @name) @definition.method
|
|
9
|
+
(singleton_method
|
|
10
|
+
name: (_) @name) @definition.method
|
|
11
|
+
]
|
|
12
|
+
(#strip! @doc "^#\\s*")
|
|
13
|
+
(#select-adjacent! @doc @definition.method)
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
(alias
|
|
17
|
+
name: (_) @name) @definition.method
|
|
18
|
+
|
|
19
|
+
(setter
|
|
20
|
+
(identifier) @ignore)
|
|
21
|
+
|
|
22
|
+
; Class definitions
|
|
23
|
+
|
|
24
|
+
(
|
|
25
|
+
(comment)* @doc
|
|
26
|
+
.
|
|
27
|
+
[
|
|
28
|
+
(class
|
|
29
|
+
name: [
|
|
30
|
+
(constant) @name
|
|
31
|
+
(scope_resolution
|
|
32
|
+
name: (_) @name)
|
|
33
|
+
]) @definition.class
|
|
34
|
+
(singleton_class
|
|
35
|
+
value: [
|
|
36
|
+
(constant) @name
|
|
37
|
+
(scope_resolution
|
|
38
|
+
name: (_) @name)
|
|
39
|
+
]) @definition.class
|
|
40
|
+
]
|
|
41
|
+
(#strip! @doc "^#\\s*")
|
|
42
|
+
(#select-adjacent! @doc @definition.class)
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
; Module definitions
|
|
46
|
+
|
|
47
|
+
(
|
|
48
|
+
(module
|
|
49
|
+
name: [
|
|
50
|
+
(constant) @name
|
|
51
|
+
(scope_resolution
|
|
52
|
+
name: (_) @name)
|
|
53
|
+
]) @definition.module
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
; Calls
|
|
57
|
+
|
|
58
|
+
(call method: (identifier) @name) @reference.call
|
|
59
|
+
|
|
60
|
+
(
|
|
61
|
+
[(identifier) (constant)] @name @reference.call
|
|
62
|
+
(#is-not? local)
|
|
63
|
+
(#not-match? @name "^(lambda|load|require|require_relative|__FILE__|__LINE__)$")
|
|
64
|
+
)
|
package/wasm/ruby.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
; ADT definitions
|
|
2
|
+
|
|
3
|
+
(struct_item
|
|
4
|
+
name: (type_identifier) @name) @definition.class
|
|
5
|
+
|
|
6
|
+
(enum_item
|
|
7
|
+
name: (type_identifier) @name) @definition.class
|
|
8
|
+
|
|
9
|
+
(union_item
|
|
10
|
+
name: (type_identifier) @name) @definition.class
|
|
11
|
+
|
|
12
|
+
; type aliases
|
|
13
|
+
|
|
14
|
+
(type_item
|
|
15
|
+
name: (type_identifier) @name) @definition.class
|
|
16
|
+
|
|
17
|
+
; method definitions
|
|
18
|
+
|
|
19
|
+
(declaration_list
|
|
20
|
+
(function_item
|
|
21
|
+
name: (identifier) @name) @definition.method)
|
|
22
|
+
|
|
23
|
+
; function definitions
|
|
24
|
+
|
|
25
|
+
(function_item
|
|
26
|
+
name: (identifier) @name) @definition.function
|
|
27
|
+
|
|
28
|
+
; trait definitions
|
|
29
|
+
(trait_item
|
|
30
|
+
name: (type_identifier) @name) @definition.interface
|
|
31
|
+
|
|
32
|
+
; module definitions
|
|
33
|
+
(mod_item
|
|
34
|
+
name: (identifier) @name) @definition.module
|
|
35
|
+
|
|
36
|
+
; macro definitions
|
|
37
|
+
|
|
38
|
+
(macro_definition
|
|
39
|
+
name: (identifier) @name) @definition.macro
|
|
40
|
+
|
|
41
|
+
; references
|
|
42
|
+
|
|
43
|
+
(call_expression
|
|
44
|
+
function: (identifier) @name) @reference.call
|
|
45
|
+
|
|
46
|
+
(call_expression
|
|
47
|
+
function: (field_expression
|
|
48
|
+
field: (field_identifier) @name)) @reference.call
|
|
49
|
+
|
|
50
|
+
(macro_invocation
|
|
51
|
+
macro: (identifier) @name) @reference.call
|
|
52
|
+
|
|
53
|
+
; implementations
|
|
54
|
+
|
|
55
|
+
(impl_item
|
|
56
|
+
trait: (type_identifier) @name) @reference.implementation
|
|
57
|
+
|
|
58
|
+
(impl_item
|
|
59
|
+
type: (type_identifier) @name
|
|
60
|
+
!trait) @reference.implementation
|
package/wasm/rust.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
; Definitions
|
|
2
|
+
|
|
3
|
+
(package_clause
|
|
4
|
+
name: (package_identifier) @name) @definition.module
|
|
5
|
+
|
|
6
|
+
(trait_definition
|
|
7
|
+
name: (identifier) @name) @definition.interface
|
|
8
|
+
|
|
9
|
+
(enum_definition
|
|
10
|
+
name: (identifier) @name) @definition.enum
|
|
11
|
+
|
|
12
|
+
(simple_enum_case
|
|
13
|
+
name: (identifier) @name) @definition.class
|
|
14
|
+
|
|
15
|
+
(full_enum_case
|
|
16
|
+
name: (identifier) @name) @definition.class
|
|
17
|
+
|
|
18
|
+
(class_definition
|
|
19
|
+
name: (identifier) @name) @definition.class
|
|
20
|
+
|
|
21
|
+
(object_definition
|
|
22
|
+
name: (identifier) @name) @definition.object
|
|
23
|
+
|
|
24
|
+
(function_definition
|
|
25
|
+
name: (identifier) @name) @definition.function
|
|
26
|
+
|
|
27
|
+
(val_definition
|
|
28
|
+
pattern: (identifier) @name) @definition.variable
|
|
29
|
+
|
|
30
|
+
(given_definition
|
|
31
|
+
name: (identifier) @name) @definition.variable
|
|
32
|
+
|
|
33
|
+
(var_definition
|
|
34
|
+
pattern: (identifier) @name) @definition.variable
|
|
35
|
+
|
|
36
|
+
(val_declaration
|
|
37
|
+
name: (identifier) @name) @definition.variable
|
|
38
|
+
|
|
39
|
+
(var_declaration
|
|
40
|
+
name: (identifier) @name) @definition.variable
|
|
41
|
+
|
|
42
|
+
(type_definition
|
|
43
|
+
name: (type_identifier) @name) @definition.type
|
|
44
|
+
|
|
45
|
+
(class_parameter
|
|
46
|
+
name: (identifier) @name) @definition.property
|
|
47
|
+
|
|
48
|
+
; References
|
|
49
|
+
|
|
50
|
+
(call_expression
|
|
51
|
+
(identifier) @name) @reference.call
|
|
52
|
+
|
|
53
|
+
(instance_expression
|
|
54
|
+
(type_identifier) @name) @reference.interface
|
|
55
|
+
|
|
56
|
+
(instance_expression
|
|
57
|
+
(generic_type
|
|
58
|
+
(type_identifier) @name)) @reference.interface
|
|
59
|
+
|
|
60
|
+
(extends_clause
|
|
61
|
+
(type_identifier) @name) @reference.class
|
|
62
|
+
|
|
63
|
+
(extends_clause
|
|
64
|
+
(generic_type
|
|
65
|
+
(type_identifier) @name)) @reference.class
|
|
66
|
+
|
package/wasm/scala.wasm
ADDED
|
Binary file
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
;; Method and Function declarations
|
|
2
|
+
(contract_declaration (_
|
|
3
|
+
(function_definition
|
|
4
|
+
name: (identifier) @name) @definition.method))
|
|
5
|
+
|
|
6
|
+
(source_file
|
|
7
|
+
(function_definition
|
|
8
|
+
name: (identifier) @name) @definition.function)
|
|
9
|
+
|
|
10
|
+
;; Contract, struct, enum and interface declarations
|
|
11
|
+
(contract_declaration
|
|
12
|
+
name: (identifier) @name) @definition.class
|
|
13
|
+
|
|
14
|
+
(interface_declaration
|
|
15
|
+
name: (identifier) @name) @definition.interface
|
|
16
|
+
|
|
17
|
+
(library_declaration
|
|
18
|
+
name: (identifier) @name) @definition.interface
|
|
19
|
+
|
|
20
|
+
(struct_declaration name: (identifier) @name) @definition.class
|
|
21
|
+
(enum_declaration name: (identifier) @name) @definition.class
|
|
22
|
+
(event_definition name: (identifier) @name) @definition.class
|
|
23
|
+
|
|
24
|
+
;; Function calls
|
|
25
|
+
(call_expression (expression (identifier)) @name ) @reference.call
|
|
26
|
+
|
|
27
|
+
(call_expression
|
|
28
|
+
(expression (member_expression
|
|
29
|
+
property: (_) @name ))) @reference.call
|
|
30
|
+
|
|
31
|
+
;; Log emit
|
|
32
|
+
(emit_statement name: (_) @name) @reference.class
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
;; Inheritance
|
|
36
|
+
|
|
37
|
+
(inheritance_specifier
|
|
38
|
+
ancestor: (user_defined_type (_) @name . )) @reference.class
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
;; Imports ( note that unknown is not standardised )
|
|
42
|
+
(import_directive
|
|
43
|
+
import_name: (_) @name ) @reference.unknown
|
|
Binary file
|
package/wasm/tsx.wasm
ADDED
|
Binary file
|