diff --git a/internal/cbm/lang_specs.c b/internal/cbm/lang_specs.c index 92c69c3c2..74254f036 100644 --- a/internal/cbm/lang_specs.c +++ b/internal/cbm/lang_specs.c @@ -168,11 +168,11 @@ static const char *empty_types[] = {NULL}; // ==================== GO ==================== static const char *go_func_types[] = {"function_declaration", "method_declaration", "method_elem", NULL}; -static const char *go_class_types[] = {"type_spec", "type_alias", NULL}; +static const char *go_class_types[] = {"type_spec", "type_alias", "type_declaration", NULL}; static const char *go_field_types[] = {"field_declaration", NULL}; static const char *go_module_types[] = {"source_file", NULL}; static const char *go_call_types[] = {"call_expression", NULL}; -static const char *go_import_types[] = {"import_declaration", NULL}; +static const char *go_import_types[] = {"import_declaration", "import", NULL}; static const char *go_branch_types[] = {"if_statement", "for_statement", "switch_expression", @@ -233,8 +233,8 @@ static const char *ts_decorator_types[] = {"decorator", NULL}; // ==================== RUST ==================== static const char *rust_func_types[] = {"function_item", "function_signature_item", "closure_expression", NULL}; -static const char *rust_class_types[] = {"struct_item", "enum_item", "union_item", - "trait_item", "type_item", NULL}; +static const char *rust_class_types[] = {"struct_item", "enum_item", "union_item", "trait_item", + "type_item", "impl_item", NULL}; static const char *rust_field_types[] = {"field_declaration", NULL}; static const char *rust_module_types[] = {"source_file", "mod_item", NULL}; static const char *rust_call_types[] = {"call_expression", "macro_invocation", NULL}; @@ -253,14 +253,16 @@ static const char *rust_assign_types[] = {"assignment_expression", "compound_ass static const char *rust_decorator_types[] = {"attribute_item", NULL}; // ==================== JAVA ==================== -static const char *java_func_types[] = {"method_declaration", "constructor_declaration", NULL}; -static const char *java_class_types[] = {"class_declaration", "interface_declaration", - "enum_declaration", "annotation_type_declaration", - "record_declaration", NULL}; +static const char *java_func_types[] = {"method_declaration", "constructor_declaration", + "lambda_expression", NULL}; +static const char *java_class_types[] = {"class_declaration", "interface_declaration", + "enum_declaration", "annotation_type_declaration", + "record_declaration", "module_declaration", + "package_declaration", NULL}; static const char *java_field_types[] = {"field_declaration", NULL}; static const char *java_module_types[] = {"program", NULL}; static const char *java_call_types[] = {"method_invocation", NULL}; -static const char *java_import_types[] = {"import_declaration", NULL}; +static const char *java_import_types[] = {"import_declaration", "extends", "import", NULL}; static const char *java_branch_types[] = { "if_statement", "for_statement", "enhanced_for_statement", "while_statement", "switch_expression", "switch_block_statement_group", @@ -275,7 +277,7 @@ static const char *cpp_func_types[] = {"function_definition", "declaration", "field_declaration", "template_declaration", "lambda_expression", NULL}; static const char *cpp_class_types[] = {"class_specifier", "struct_specifier", "union_specifier", - "enum_specifier", NULL}; + "enum_specifier", "type_definition", NULL}; static const char *cpp_field_types[] = {"field_declaration", NULL}; static const char *cpp_module_types[] = {"translation_unit", "namespace_definition", "linkage_specification", "declaration", NULL}; @@ -316,6 +318,8 @@ static const char *php_func_types[] = {"function_static_declaration", "anonymous "method_declaration", NULL}; static const char *php_class_types[] = {"trait_declaration", "enum_declaration", "interface_declaration", "class_declaration", NULL}; +static const char *php_import_types[] = {"extends", "include", "namespace_use_declaration", + "require", "use_declaration", NULL}; static const char *php_module_types[] = {"program", NULL}; static const char *php_call_types[] = {"member_call_expression", "scoped_call_expression", "function_call_expression", @@ -339,13 +343,16 @@ static const char *lua_var_types[] = {"variable_declaration", NULL}; static const char *lua_assign_types[] = {"assignment_statement", NULL}; // ==================== SCALA ==================== -static const char *scala_func_types[] = {"function_definition", "function_declaration", NULL}; +static const char *scala_func_types[] = {"function_definition", "function_declaration", + "lambda_expression", NULL}; static const char *scala_class_types[] = {"class_definition", "object_definition", - "trait_definition", NULL}; + "trait_definition", "enum_definition", + "type_definition", NULL}; static const char *scala_module_types[] = {"compilation_unit", NULL}; static const char *scala_call_types[] = {"call_expression", "generic_function", "field_expression", "infix_expression", NULL}; -static const char *scala_import_types[] = {"import_declaration", NULL}; +static const char *scala_import_types[] = {"import_declaration", "extends", "import", + "using_directive", NULL}; static const char *scala_branch_types[] = { "if_expression", "for_expression", "while_expression", "match_expression", "case_clause", "try_expression", "catch_clause", NULL}; @@ -358,7 +365,7 @@ static const char *scala_throw_types[] = {"throw_expression", NULL}; static const char *kotlin_func_types[] = {"function_declaration", "secondary_constructor", "anonymous_function", NULL}; static const char *kotlin_class_types[] = {"class_declaration", "object_declaration", - "companion_object", NULL}; + "companion_object", "type_alias", NULL}; static const char *kotlin_module_types[] = {"source_file", NULL}; static const char *kotlin_call_types[] = {"call_expression", "navigation_expression", NULL}; static const char *kotlin_import_types[] = {"import", NULL}; @@ -384,7 +391,7 @@ static const char *ruby_assign_types[] = {"assignment", "operator_assignment", N // ==================== C ==================== static const char *c_func_types[] = {"function_definition", NULL}; static const char *c_class_types[] = {"struct_specifier", "enum_specifier", "union_specifier", - NULL}; + "type_definition", NULL}; static const char *c_field_types[] = {"field_declaration", NULL}; static const char *c_module_types[] = {"translation_unit", NULL}; static const char *c_call_types[] = {"call_expression", NULL}; @@ -409,7 +416,8 @@ static const char *bash_branch_types[] = {"if_statement", "while_statement", " static const char *bash_var_types[] = {"variable_assignment", NULL}; // ==================== ZIG ==================== -static const char *zig_func_types[] = {"function_declaration", "test_declaration", NULL}; +static const char *zig_func_types[] = {"function_declaration", "test_declaration", + "function_signature", NULL}; static const char *zig_class_types[] = {"struct_declaration", "enum_declaration", "union_declaration", NULL}; static const char *zig_field_types[] = {"container_field", NULL}; @@ -422,7 +430,7 @@ static const char *zig_var_types[] = {"variable_declaration", NULL}; static const char *zig_assign_types[] = {"assignment_expression", NULL}; // ==================== ELIXIR ==================== -static const char *elixir_func_types[] = {"call", NULL}; +static const char *elixir_func_types[] = {"call", "anonymous_function", NULL}; static const char *elixir_module_types[] = {"source", NULL}; static const char *elixir_call_types[] = {"call", "dot", "binary_operator", NULL}; static const char *elixir_import_types[] = {"call", NULL}; @@ -434,42 +442,51 @@ static const char *haskell_func_types[] = {"function", "signature", NULL}; static const char *haskell_class_types[] = {"class", "data_type", "newtype", NULL}; static const char *haskell_module_types[] = {"haskell", NULL}; static const char *haskell_call_types[] = {"infix", "apply", NULL}; -static const char *haskell_import_types[] = {"import", NULL}; +static const char *haskell_import_types[] = {"import", "instance", NULL}; static const char *haskell_branch_types[] = {"match", "guards", "if", "case", "do", "boolean", NULL}; static const char *haskell_var_types[] = {"function", NULL}; // ==================== OCAML ==================== -static const char *ocaml_func_types[] = {"value_definition", NULL}; -static const char *ocaml_class_types[] = {"type_definition", "class_definition", - "module_definition", NULL}; +static const char *ocaml_func_types[] = {"value_definition", "constructor_declaration", + "method_definition", NULL}; +static const char *ocaml_class_types[] = {"type_definition", "class_definition", + "module_definition", "exception_definition", + "record_declaration", NULL}; static const char *ocaml_module_types[] = {"compilation_unit", NULL}; -static const char *ocaml_call_types[] = {"application_expression", "infix_expression", NULL}; -static const char *ocaml_import_types[] = {"open_module", NULL}; +static const char *ocaml_call_types[] = {"application_expression", "infix_expression", + "method_invocation", "module_application", + "new_expression", NULL}; +static const char *ocaml_import_types[] = {"open_module", "include", NULL}; static const char *ocaml_branch_types[] = {"match_expression", "if_expression", "match_case", NULL}; static const char *ocaml_var_types[] = {"value_definition", NULL}; // ==================== OBJECTIVE-C ==================== -static const char *objc_func_types[] = {"function_definition", "method_definition", NULL}; -static const char *objc_class_types[] = {"class_interface", "class_implementation", - "protocol_declaration", NULL}; +static const char *objc_func_types[] = {"function_definition", "method_definition", + "method_declaration", NULL}; +static const char *objc_class_types[] = {"class_interface", "class_implementation", + "protocol_declaration", "class_declaration", + "enum_specifier", "struct_declaration", + "struct_specifier", "type_definition", + "union_specifier", NULL}; static const char *objc_field_types[] = {"property_declaration", NULL}; static const char *objc_module_types[] = {"translation_unit", NULL}; static const char *objc_call_types[] = {"call_expression", "message_expression", NULL}; -static const char *objc_import_types[] = {"preproc_import", NULL}; +static const char *objc_import_types[] = {"preproc_import", "preproc_include", NULL}; static const char *objc_branch_types[] = {"if_statement", "for_statement", "while_statement", "switch_statement", NULL}; static const char *objc_var_types[] = {"declaration", NULL}; static const char *objc_assign_types[] = {"assignment_expression", NULL}; // ==================== SWIFT ==================== -static const char *swift_func_types[] = {"function_declaration", NULL}; +static const char *swift_func_types[] = {"function_declaration", "macro_declaration", NULL}; static const char *swift_class_types[] = {"class_declaration", "protocol_declaration", "struct_declaration", "enum_declaration", NULL}; static const char *swift_field_types[] = {"property_declaration", NULL}; static const char *swift_module_types[] = {"source_file", NULL}; -static const char *swift_call_types[] = {"call_expression", "constructor_expression", NULL}; -static const char *swift_import_types[] = {"import_declaration", NULL}; +static const char *swift_call_types[] = {"call_expression", "constructor_expression", + "macro_invocation", "navigation_expression", NULL}; +static const char *swift_import_types[] = {"import_declaration", "import", NULL}; static const char *swift_branch_types[] = {"if_statement", "guard_statement", "for_statement", "while_statement", "switch_statement", NULL}; static const char *swift_var_types[] = {"property_declaration", NULL}; @@ -478,13 +495,14 @@ static const char *swift_throw_types[] = {"throw_statement", NULL}; static const char *swift_decorator_types[] = {"attribute", NULL}; // ==================== DART ==================== -static const char *dart_func_types[] = {"function_signature", "method_signature", NULL}; +static const char *dart_func_types[] = {"function_signature", "method_signature", + "lambda_expression", NULL}; static const char *dart_class_types[] = {"class_definition", "enum_declaration", - "mixin_declaration", NULL}; + "mixin_declaration", "type_alias", NULL}; static const char *dart_field_types[] = {"declaration", NULL}; static const char *dart_module_types[] = {"program", NULL}; -static const char *dart_call_types[] = {"selector", NULL}; -static const char *dart_import_types[] = {"import_or_export", NULL}; +static const char *dart_call_types[] = {"selector", "new_expression", NULL}; +static const char *dart_import_types[] = {"import_or_export", "extends", "import", NULL}; static const char *dart_branch_types[] = {"if_statement", "for_statement", "while_statement", "switch_statement", NULL}; static const char *dart_var_types[] = {"declaration", NULL}; @@ -498,18 +516,18 @@ static const char *perl_module_types[] = {"source_file", NULL}; static const char *perl_call_types[] = {"ambiguous_function_call_expression", "function_call_expression", "func1op_call_expression", NULL}; -static const char *perl_import_types[] = {"use_statement", "require_statement", NULL}; +static const char *perl_import_types[] = {"use_statement", "require_statement", "require", NULL}; static const char *perl_branch_types[] = {"if_statement", "unless_statement", "for_statement", "foreach_statement", "while_statement", NULL}; static const char *perl_var_types[] = {"variable_declaration", "expression_statement", NULL}; static const char *perl_assign_types[] = {"assignment_expression", NULL}; // ==================== GROOVY ==================== -static const char *groovy_func_types[] = {"function_definition", NULL}; +static const char *groovy_func_types[] = {"function_definition", "function_declaration", NULL}; static const char *groovy_class_types[] = {"class_definition", NULL}; static const char *groovy_module_types[] = {"source_file", NULL}; static const char *groovy_call_types[] = {"function_call", "juxt_function_call", NULL}; -static const char *groovy_import_types[] = {"groovy_import", NULL}; +static const char *groovy_import_types[] = {"groovy_import", "extends", "import", NULL}; static const char *groovy_branch_types[] = {"if_statement", "for_statement", "while_statement", "switch_statement", NULL}; static const char *groovy_var_types[] = {"declaration", NULL}; @@ -519,9 +537,10 @@ static const char *groovy_decorator_types[] = {"annotation", NULL}; // ==================== ERLANG ==================== static const char *erlang_func_types[] = {"function_clause", NULL}; +static const char *erlang_class_types[] = {"type_alias", NULL}; static const char *erlang_module_types[] = {"source_file", NULL}; static const char *erlang_call_types[] = {"call", NULL}; -static const char *erlang_import_types[] = {"module_attribute", NULL}; +static const char *erlang_import_types[] = {"module_attribute", "import", "include", NULL}; static const char *erlang_branch_types[] = {"if_expression", "case_expression", "receive_expression", NULL}; static const char *erlang_var_types[] = {"pp_define", "record_decl", NULL}; @@ -540,6 +559,7 @@ static const char *r_var_types[] = {"binary_operator", NULL}; static const char *html_module_types[] = {"document", NULL}; // ==================== CSS ==================== +static const char *css_call_types[] = {"call_expression", NULL}; static const char *css_module_types[] = {"stylesheet", NULL}; static const char *css_import_types[] = {"import_statement", NULL}; @@ -547,7 +567,8 @@ static const char *css_import_types[] = {"import_statement", NULL}; static const char *scss_func_types[] = {"mixin_statement", "function_statement", NULL}; static const char *scss_module_types[] = {"stylesheet", NULL}; static const char *scss_call_types[] = {"call_expression", NULL}; -static const char *scss_import_types[] = {"import_statement", "use_statement", NULL}; +static const char *scss_import_types[] = {"import_statement", "use_statement", "include_statement", + NULL}; static const char *scss_branch_types[] = {"if_statement", NULL}; static const char *scss_var_types[] = {"declaration", NULL}; @@ -567,10 +588,11 @@ static const char *hcl_call_types[] = {"function_call", NULL}; static const char *hcl_var_types[] = {"attribute", NULL}; // ==================== SQL ==================== -static const char *sql_func_types[] = {"create_function", NULL}; +static const char *sql_func_types[] = {"create_function", "function_declaration", NULL}; static const char *sql_field_types[] = {"column_definition", NULL}; +static const char *sql_class_types[] = {"custom_type", NULL}; static const char *sql_module_types[] = {"program", NULL}; -static const char *sql_call_types[] = {"function_call", "invocation", NULL}; +static const char *sql_call_types[] = {"function_call", "invocation", "command", NULL}; static const char *sql_branch_types[] = {"if_statement", "case_expression", NULL}; static const char *sql_var_types[] = {"create_table", "create_view", NULL}; @@ -610,7 +632,7 @@ static const char *fsharp_func_types[] = {"function_declaration", "value_declara static const char *fsharp_class_types[] = {"type_definition", "exception_definition", NULL}; static const char *fsharp_module_types[] = {"file", NULL}; static const char *fsharp_call_types[] = {"application_expression", "dot_expression", NULL}; -static const char *fsharp_import_types[] = {"import_decl", "open_expression", NULL}; +static const char *fsharp_import_types[] = {"import_decl", "open_expression", "instance", NULL}; static const char *fsharp_branch_types[] = {"if_expression", "for_expression", "while_expression", "match_expression", "elif_expression", NULL}; @@ -618,10 +640,12 @@ static const char *fsharp_var_types[] = {"value_declaration", NULL}; // ==================== JULIA ==================== static const char *julia_func_types[] = {"function_definition", "short_function_definition", NULL}; -static const char *julia_class_types[] = {"struct_definition", "abstract_definition", NULL}; +static const char *julia_class_types[] = {"struct_definition", "abstract_definition", + "primitive_definition", NULL}; static const char *julia_module_types[] = {"source_file", NULL}; static const char *julia_call_types[] = {"call_expression", "broadcast_call_expression", NULL}; -static const char *julia_import_types[] = {"import_statement", "using_statement", NULL}; +static const char *julia_import_types[] = {"import_statement", "using_statement", + "export_statement", "import", NULL}; static const char *julia_branch_types[] = {"if_statement", "for_statement", "while_statement", "try_statement", NULL}; static const char *julia_var_types[] = {"const_statement", "assignment", NULL}; @@ -629,9 +653,11 @@ static const char *julia_assign_types[] = {"assignment", "compound_assignment_ex static const char *julia_throw_types[] = {"throw_statement", NULL}; // ==================== VIM SCRIPT ==================== -static const char *vim_func_types[] = {"function_definition", NULL}; +static const char *vim_func_types[] = {"function_definition", "function_declaration", + "lambda_expression", NULL}; +static const char *vim_import_types[] = {"include", NULL}; static const char *vim_module_types[] = {"script_file", NULL}; -static const char *vim_call_types[] = {"call_expression", NULL}; +static const char *vim_call_types[] = {"call_expression", "call", "command", NULL}; static const char *vim_branch_types[] = {"if_statement", "for_statement", "while_statement", "try_statement", NULL}; static const char *vim_var_types[] = {"let_statement", NULL}; @@ -645,23 +671,27 @@ static const char *nix_var_types[] = {"binding", NULL}; // ==================== COMMON LISP ==================== static const char *commonlisp_func_types[] = {"defun", NULL}; +static const char *commonlisp_import_types[] = {"with_clause", NULL}; static const char *commonlisp_module_types[] = {"source", NULL}; static const char *commonlisp_call_types[] = {"list_lit", NULL}; // ==================== ELM ==================== static const char *elm_func_types[] = {"value_declaration", "function_declaration", NULL}; -static const char *elm_class_types[] = {"type_declaration", "type_alias_declaration", NULL}; +static const char *elm_class_types[] = {"type_declaration", "type_alias_declaration", + "module_declaration", NULL}; static const char *elm_module_types[] = {"file", NULL}; -static const char *elm_call_types[] = {"function_call", NULL}; +static const char *elm_call_types[] = {"function_call", "function_call_expr", NULL}; static const char *elm_import_types[] = {"import", NULL}; static const char *elm_branch_types[] = {"case_of_expr", "if_else_expr", NULL}; // ==================== FORTRAN ==================== -static const char *fortran_func_types[] = {"function", "subroutine", NULL}; -static const char *fortran_class_types[] = {"derived_type_definition", NULL}; +static const char *fortran_func_types[] = {"function", "subroutine", "function_statement", NULL}; +static const char *fortran_class_types[] = {"derived_type_definition", "enum_statement", NULL}; static const char *fortran_module_types[] = {"translation_unit", NULL}; -static const char *fortran_call_types[] = {"call_expression", "keyword_argument", NULL}; -static const char *fortran_import_types[] = {"use_statement", "include_statement", NULL}; +static const char *fortran_call_types[] = {"call_expression", "keyword_argument", "call", NULL}; +static const char *fortran_import_types[] = {"use_statement", "include_statement", "extends", + "import", "import_statement", "include", + "open_statement", "preproc_include", NULL}; static const char *fortran_branch_types[] = {"if_statement", "do_loop_statement", "where_statement", "select_case_statement", NULL}; static const char *fortran_var_types[] = {"variable_declaration", NULL}; @@ -672,6 +702,7 @@ static const char *fortran_assign_types[] = {"assignment_statement", NULL}; // ==================== COBOL ==================== static const char *cobol_func_types[] = {"program_definition", NULL}; +static const char *cobol_import_types[] = {"open_statement", "use_statement", "with_clause", NULL}; static const char *cobol_module_types[] = {"source_file", NULL}; static const char *cobol_call_types[] = {"call_statement", NULL}; static const char *cobol_branch_types[] = {"if_statement", "evaluate_statement", @@ -679,11 +710,16 @@ static const char *cobol_branch_types[] = {"if_statement", "evaluate_statement", static const char *cobol_var_types[] = {"data_description_entry", NULL}; // ==================== VERILOG ==================== -static const char *verilog_func_types[] = {"function_declaration", "task_declaration", NULL}; -static const char *verilog_class_types[] = {"module_declaration", "class_declaration", - "interface_declaration", NULL}; +static const char *verilog_func_types[] = {"function_declaration", "task_declaration", + "function_body_declaration", "function_statement", NULL}; +static const char *verilog_class_types[] = {"module_declaration", "class_declaration", + "interface_declaration", "package_declaration", + "type_declaration", NULL}; +static const char *verilog_import_types[] = {"extends", "import", "package_import_declaration", + NULL}; static const char *verilog_module_types[] = {"source_file", NULL}; -static const char *verilog_call_types[] = {"system_tf_call", "subroutine_call", NULL}; +static const char *verilog_call_types[] = {"system_tf_call", "subroutine_call", + "function_subroutine_call", "method_call", NULL}; static const char *verilog_branch_types[] = {"conditional_statement", "case_statement", "loop_statement", NULL}; static const char *verilog_var_types[] = {"net_declaration", "data_declaration", NULL}; @@ -724,13 +760,11 @@ static const char *protobuf_field_types[] = {"field", "map_field", "oneof_field" static const char *protobuf_import_types[] = {"import", NULL}; // ==================== GRAPHQL ==================== -static const char *graphql_class_types[] = {"object_type_definition", - "input_object_type_definition", - "enum_type_definition", - "interface_type_definition", - "union_type_definition", - "scalar_type_definition", - NULL}; +static const char *graphql_class_types[] = { + "object_type_definition", "input_object_type_definition", + "enum_type_definition", "interface_type_definition", + "union_type_definition", "scalar_type_definition", + "type_definition", NULL}; static const char *graphql_module_types[] = {"document", NULL}; static const char *graphql_field_types[] = {"field_definition", "input_value_definition", NULL}; @@ -745,7 +779,7 @@ static const char *svelte_branch_types[] = {"if_statement", "each_statement", "a // ==================== MESON ==================== static const char *meson_func_types[] = {"function_expression", NULL}; static const char *meson_module_types[] = {"source_file", NULL}; -static const char *meson_call_types[] = {"function_expression", NULL}; +static const char *meson_call_types[] = {"function_expression", "command", NULL}; static const char *meson_branch_types[] = {"if_statement", "foreach_statement", NULL}; static const char *meson_var_types[] = {"assignment_statement", NULL}; @@ -758,7 +792,7 @@ static const char *ini_class_types[] = {"section", NULL}; static const char *ini_var_types[] = {"setting", NULL}; // ==================== MATLAB ==================== -static const char *matlab_func_types[] = {"function_definition", NULL}; +static const char *matlab_func_types[] = {"function_definition", "function_signature", NULL}; static const char *matlab_class_types[] = {"class_definition", NULL}; static const char *matlab_module_types[] = {"source_file", NULL}; static const char *matlab_call_types[] = {"function_call", "command", NULL}; @@ -770,8 +804,8 @@ static const char *matlab_var_types[] = {"assignment", NULL}; static const char *lean_func_types[] = {"def", "theorem", "instance", "abbrev", NULL}; static const char *lean_class_types[] = {"structure", "class_inductive", "inductive", NULL}; static const char *lean_module_types[] = {"module", NULL}; -static const char *lean_call_types[] = {"apply", NULL}; -static const char *lean_import_types[] = {"import", NULL}; +static const char *lean_call_types[] = {"apply", "command", NULL}; +static const char *lean_import_types[] = {"import", "extends", "instance", NULL}; static const char *lean_branch_types[] = {"if", "match", "do", NULL}; // ==================== FORM ==================== @@ -785,10 +819,10 @@ static const char *form_assign_types[] = {"substitution_statement", NULL}; // ==================== MAGMA ==================== static const char *magma_func_types[] = {"function_definition", "procedure_definition", - "intrinsic_definition", NULL}; + "intrinsic_definition", "anonymous_function", NULL}; static const char *magma_module_types[] = {"source_file", NULL}; static const char *magma_call_types[] = {"call_expression", NULL}; -static const char *magma_import_types[] = {"load_statement", NULL}; +static const char *magma_import_types[] = {"load_statement", "require", "require_statement", NULL}; static const char *magma_branch_types[] = {"if_statement", "for_statement", "while_statement", "repeat_statement", "case_statement", NULL}; static const char *magma_var_types[] = {"assignment_statement", NULL}; @@ -808,12 +842,18 @@ static const char *fsharp_env_funcs[] = {"Environment.GetEnvironmentVariable", N // ==================== D ==================== static const char *d_func_types[] = {"function_declaration", "constructor", "destructor", NULL}; -static const char *d_class_types[] = {"class_declaration", "struct_declaration", - "interface_declaration", "union_declaration", - "enum_declaration", NULL}; +static const char *d_class_types[] = {"class_declaration", + "struct_declaration", + "interface_declaration", + "union_declaration", + "enum_declaration", + "module_declaration", + "module_def", + NULL}; static const char *d_field_types[] = {"variable_declaration", NULL}; -static const char *d_call_types[] = {"call_expression", "function_call_expression", NULL}; -static const char *d_import_types[] = {"import_declaration", NULL}; +static const char *d_call_types[] = {"call_expression", "function_call_expression", + "new_expression", NULL}; +static const char *d_import_types[] = {"import_declaration", "import", NULL}; static const char *d_branch_types[] = {"if_statement", "for_statement", "foreach_statement", "while_statement", "do_statement", "switch_statement", "try_statement", "catch_statement", NULL}; @@ -831,12 +871,17 @@ static const char *llvm_var_types[] = {"local_var", "global_var", NULL}; static const char *solidity_func_types[] = {"function_definition", "constructor_definition", "modifier_definition", "fallback_receive_definition", NULL}; -static const char *solidity_class_types[] = {"contract_declaration", "interface_declaration", - "library_declaration", "struct_declaration", - "enum_declaration", NULL}; +static const char *solidity_class_types[] = {"contract_declaration", + "interface_declaration", + "library_declaration", + "struct_declaration", + "enum_declaration", + "type_alias", + NULL}; static const char *solidity_field_types[] = {"state_variable_declaration", "struct_member", NULL}; -static const char *solidity_call_types[] = {"call_expression", NULL}; -static const char *solidity_import_types[] = {"import_directive", NULL}; +static const char *solidity_call_types[] = {"call_expression", "call", "new_expression", NULL}; +static const char *solidity_import_types[] = {"import_directive", "import", "using_directive", + NULL}; static const char *solidity_branch_types[] = {"if_statement", "for_statement", "while_statement", "do_while_statement", "try_statement", NULL}; @@ -860,7 +905,8 @@ static const char *gdscript_field_types[] = {"variable_statement", "export_varia "onready_variable_statement", "signal_statement", NULL}; static const char *gdscript_call_types[] = {"call", "attribute_call", "base_call", NULL}; -static const char *gdscript_import_types[] = {"extends_statement", "class_name_statement", NULL}; +static const char *gdscript_import_types[] = {"extends_statement", "class_name_statement", + "extends", NULL}; static const char *gdscript_branch_types[] = {"if_statement", "for_statement", "while_statement", "match_statement", NULL}; static const char *gdscript_var_types[] = {"variable_statement", "const_statement", NULL}; @@ -878,7 +924,8 @@ static const char *gleam_var_types[] = {"let", "constant", NULL}; static const char *gleam_assign_types[] = {"let_assert", NULL}; static const char *gleam_module_types[] = {"source_file", NULL}; static const char *powershell_func_types[] = {"function_statement", NULL}; -static const char *powershell_class_types[] = {"class_statement", "enum_statement", NULL}; +static const char *powershell_class_types[] = {"class_statement", "enum_statement", "type_spec", + NULL}; static const char *powershell_call_types[] = {"invokation_expression", "command", NULL}; static const char *powershell_import_types[] = {"using_statement", NULL}; static const char *powershell_branch_types[] = { @@ -906,11 +953,16 @@ static const char *nim_func_types[] = { "proc_declaration", "func_declaration", "method_declaration", "iterator_declaration", "template_declaration", "macro_declaration", "converter_declaration", NULL}; static const char *nim_class_types[] = {"type_declaration", "object_declaration", - "enum_declaration", NULL}; + "enum_declaration", "concept_declaration", NULL}; static const char *nim_field_types[] = {"field_declaration", NULL}; -static const char *nim_call_types[] = {"call", NULL}; -static const char *nim_import_types[] = {"import_statement", "import_from_statement", - "include_statement", "export_statement", NULL}; +static const char *nim_call_types[] = {"call", "dot_generic_call", NULL}; +static const char *nim_import_types[] = {"import_statement", + "import_from_statement", + "include_statement", + "export_statement", + "import", + "include", + NULL}; static const char *nim_branch_types[] = {"if_statement", "for", "while", "case", "try", "except_clause", "when", NULL}; static const char *nim_var_types[] = {"var_section", "let_section", "const_section", NULL}; @@ -934,7 +986,7 @@ static const char *fish_branch_types[] = {"if_statement", "switch_statement", "w static const char *fish_var_types[] = {"variable", NULL}; static const char *fish_module_types[] = {"program", NULL}; static const char *awk_func_types[] = {"func_def", "rule", NULL}; -static const char *awk_call_types[] = {"func_call", NULL}; +static const char *awk_call_types[] = {"func_call", "command", NULL}; static const char *awk_branch_types[] = {"if_statement", "for_statement", "for_in_statement", @@ -946,7 +998,7 @@ static const char *awk_var_types[] = {"identifier", NULL}; static const char *awk_assign_types[] = {"assignment_exp", "update_exp", NULL}; static const char *awk_module_types[] = {"program", NULL}; static const char *zsh_func_types[] = {"function_definition", NULL}; -static const char *zsh_call_types[] = {"command", NULL}; +static const char *zsh_call_types[] = {"command", "call_expression", NULL}; static const char *zsh_branch_types[] = {"if_statement", "case_statement", "while_statement", "for_statement", NULL}; static const char *zsh_var_types[] = {"variable_name", NULL}; @@ -959,10 +1011,12 @@ static const char *tcl_branch_types[] = {"if", "while", "foreach", "try", "catch static const char *tcl_var_types[] = {"variable_substitution", NULL}; static const char *tcl_module_types[] = {"source_file", NULL}; static const char *ada_func_types[] = {"subprogram_declaration", "subprogram_body", - "entry_declaration", NULL}; -static const char *ada_class_types[] = {"type_declaration", "full_type_declaration", - "package_declaration", "protected_type_declaration", - "task_type_declaration", NULL}; + "entry_declaration", "expression_function_declaration", + NULL}; +static const char *ada_class_types[] = { + "type_declaration", "full_type_declaration", "package_declaration", + "protected_type_declaration", "task_type_declaration", "component_declaration", + "object_declaration", "record_type_definition", NULL}; static const char *ada_field_types[] = {"component_declaration", NULL}; static const char *ada_call_types[] = {"function_call", "procedure_call_statement", NULL}; static const char *ada_import_types[] = {"with_clause", "use_clause", NULL}; @@ -980,7 +1034,7 @@ static const char *ada_module_types[] = {"compilation", NULL}; static const char *agda_func_types[] = {"function", NULL}; static const char *agda_class_types[] = {"data", "record", NULL}; static const char *agda_call_types[] = {"module_application", NULL}; -static const char *agda_import_types[] = {"import", "open", NULL}; +static const char *agda_import_types[] = {"import", "open", "import_directive", "instance", NULL}; static const char *agda_branch_types[] = {"lambda", "match", "do", NULL}; static const char *agda_var_types[] = {"typed_binding", NULL}; static const char *agda_module_types[] = {"source_file", NULL}; @@ -991,10 +1045,10 @@ static const char *racket_module_types[] = {"program", NULL}; static const char *odin_func_types[] = {"procedure_declaration", "overloaded_procedure_declaration", NULL}; static const char *odin_class_types[] = {"struct_declaration", "enum_declaration", - "union_declaration", NULL}; + "union_declaration", "package_declaration", NULL}; static const char *odin_field_types[] = {"field_declaration", NULL}; -static const char *odin_call_types[] = {"call_expression", NULL}; -static const char *odin_import_types[] = {"import_declaration", NULL}; +static const char *odin_call_types[] = {"call_expression", "selector_call_expression", NULL}; +static const char *odin_import_types[] = {"import_declaration", "import", "using_statement", NULL}; static const char *odin_branch_types[] = {"if_statement", "for_statement", "switch_statement", "when_statement", NULL}; static const char *odin_var_types[] = {"variable_declaration", "const_declaration", NULL}; @@ -1002,33 +1056,36 @@ static const char *odin_assign_types[] = {"assignment_statement", NULL}; static const char *odin_module_types[] = {"source_file", NULL}; static const char *rescript_func_types[] = {"function", NULL}; static const char *rescript_call_types[] = {"call_expression", NULL}; -static const char *rescript_import_types[] = {"open_statement", "include_statement", NULL}; +static const char *rescript_import_types[] = {"open_statement", "include_statement", "include", + NULL}; static const char *rescript_branch_types[] = {"if_expression", "switch_expression", "try_expression", NULL}; static const char *rescript_var_types[] = {"let_binding", NULL}; static const char *rescript_assign_types[] = {"let_declaration", "mutation_expression", NULL}; static const char *rescript_throw_types[] = {"exception_declaration", NULL}; static const char *rescript_decorator_types[] = {"decorator", NULL}; +static const char *rescript_class_types[] = {"module_declaration", "type_declaration", NULL}; static const char *rescript_module_types[] = {"source_file", NULL}; static const char *purescript_func_types[] = {"function", NULL}; static const char *purescript_class_types[] = {"class_declaration", "data", "newtype", "type_alias", NULL}; static const char *purescript_call_types[] = {"exp_apply", NULL}; -static const char *purescript_import_types[] = {"import", NULL}; +static const char *purescript_import_types[] = {"import", "import_item", "instance", NULL}; static const char *purescript_branch_types[] = {"exp_if", "exp_case", "exp_do", NULL}; static const char *purescript_var_types[] = {"signature", NULL}; static const char *purescript_module_types[] = {"module", NULL}; static const char *nickel_func_types[] = {"fun", NULL}; static const char *nickel_call_types[] = {"infix_expr", NULL}; -static const char *nickel_import_types[] = {"import", NULL}; +static const char *nickel_import_types[] = {"import", "include", NULL}; static const char *nickel_branch_types[] = {"if", "match", NULL}; static const char *nickel_var_types[] = {"let", NULL}; static const char *nickel_module_types[] = {"source_file", NULL}; static const char *crystal_func_types[] = {"method_def", "abstract_method_def", NULL}; static const char *crystal_class_types[] = {"class_def", "struct_def", "module_def", - "enum_def", "annotation_def", NULL}; + "enum_def", "annotation_def", "type_declaration", + NULL}; static const char *crystal_field_types[] = {"instance_var", "class_var", NULL}; -static const char *crystal_call_types[] = {"call", NULL}; +static const char *crystal_call_types[] = {"call", "command", "implicit_object_call", NULL}; static const char *crystal_import_types[] = {"require", NULL}; static const char *crystal_branch_types[] = {"if", "unless", "case", "while", "until", "begin_block", "rescue_block", NULL}; @@ -1036,9 +1093,10 @@ static const char *crystal_var_types[] = {"assign", "multi_assign", NULL}; static const char *crystal_assign_types[] = {"assign", "operator_assign", NULL}; static const char *crystal_decorator_types[] = {"annotation", NULL}; static const char *crystal_module_types[] = {"program", NULL}; -static const char *teal_func_types[] = {"function_statement", "anon_function", NULL}; +static const char *teal_func_types[] = {"function_statement", "anon_function", "function_signature", + NULL}; static const char *teal_class_types[] = {"record_declaration", "interface_declaration", - "enum_declaration", NULL}; + "enum_declaration", "type_declaration", NULL}; static const char *teal_call_types[] = {"function_call", NULL}; static const char *teal_branch_types[] = {"if_statement", "while_statement", "repeat_statement", "for_statement", @@ -1055,14 +1113,10 @@ static const char *hare_branch_types[] = {"if_statement", "for_statement", "swit static const char *hare_var_types[] = {"let_declaration", "const_declaration", NULL}; static const char *hare_assign_types[] = {"assignment_expression", NULL}; static const char *hare_module_types[] = {"source_file", NULL}; -static const char *pony_func_types[] = {"fun", "be", "new", NULL}; -static const char *pony_class_types[] = {"actor_definition", - "class_definition", - "struct_definition", - "trait_definition", - "interface_definition", - "primitive_definition", - NULL}; +static const char *pony_func_types[] = {"fun", "be", "new", "lambda_expression", NULL}; +static const char *pony_class_types[] = { + "actor_definition", "class_definition", "struct_definition", "trait_definition", + "interface_definition", "primitive_definition", "type_alias", NULL}; static const char *pony_call_types[] = {"call_expression", NULL}; static const char *pony_import_types[] = {"use_statement", NULL}; static const char *pony_branch_types[] = {"if_statement", @@ -1084,7 +1138,8 @@ static const char *luau_var_types[] = {"variable_declaration", NULL}; static const char *luau_assign_types[] = {"assignment_statement", NULL}; static const char *luau_module_types[] = {"program", NULL}; static const char *janet_module_types[] = {"source", NULL}; -static const char *sway_func_types[] = {"function_item", NULL}; +static const char *sway_func_types[] = {"function_item", "closure_expression", + "function_signature_item", NULL}; static const char *sway_class_types[] = {"struct_item", "enum_item", "trait_item", "impl_item", "abi_item", NULL}; static const char *sway_call_types[] = {"call_expression", "abi_call_expression", NULL}; @@ -1109,20 +1164,35 @@ static const char *just_import_types[] = {"import", NULL}; static const char *just_branch_types[] = {"if_expression", NULL}; static const char *just_assign_types[] = {"assignment", NULL}; static const char *just_module_types[] = {"source_file", NULL}; +static const char *gotemplate_call_types[] = {"function_call", "method_call", NULL}; static const char *gotemplate_module_types[] = {"template", NULL}; +static const char *templ_func_types[] = {"function_declaration", "method_declaration", + "method_elem", NULL}; +static const char *templ_class_types[] = {"component_declaration", "type_alias", "type_declaration", + "type_spec", NULL}; +static const char *templ_call_types[] = {"call_expression", NULL}; +static const char *templ_import_types[] = {"import", "import_declaration", NULL}; static const char *templ_module_types[] = {"source_file", NULL}; +static const char *liquid_import_types[] = {"include", "include_statement", NULL}; static const char *liquid_module_types[] = {"template", NULL}; static const char *jinja2_module_types[] = {"source_file", NULL}; -static const char *prisma_class_types[] = {"model_declaration", "enum_declaration", - "type_declaration", "generator_declaration", - "datasource_declaration", NULL}; +static const char *prisma_class_types[] = {"model_declaration", + "enum_declaration", + "type_declaration", + "generator_declaration", + "datasource_declaration", + "view_declaration", + NULL}; static const char *prisma_field_types[] = {"column_declaration", NULL}; +static const char *prisma_call_types[] = {"call_expression", NULL}; static const char *prisma_module_types[] = {"program", NULL}; static const char *hyprlang_module_types[] = {"source_file", NULL}; static const char *dotenv_module_types[] = {"source_file", NULL}; +static const char *diff_call_types[] = {"command", NULL}; static const char *diff_module_types[] = {"source", NULL}; static const char *wgsl_func_types[] = {"function_declaration", NULL}; -static const char *wgsl_class_types[] = {"struct_declaration", NULL}; +static const char *wgsl_class_types[] = {"struct_declaration", "type_alias_declaration", + "type_declaration", NULL}; static const char *wgsl_call_types[] = {"type_constructor_or_function_call_expression", NULL}; static const char *wgsl_import_types[] = {"enable_directive", NULL}; static const char *wgsl_branch_types[] = {"if_statement", "switch_statement", "for_statement", @@ -1140,96 +1210,137 @@ static const char *jsonnet_var_types[] = {"local_bind", NULL}; static const char *jsonnet_module_types[] = {"document", NULL}; static const char *ron_module_types[] = {"source_file", NULL}; static const char *thrift_func_types[] = {"function_definition", "service_definition", NULL}; -static const char *thrift_class_types[] = {"struct_definition", "union_definition", - "enum_definition", "exception_definition", NULL}; +static const char *thrift_class_types[] = { + "struct_definition", "union_definition", "enum_definition", "exception_definition", + "interaction_definition", "package_declaration", "service_definition", NULL}; static const char *thrift_field_types[] = {"field", NULL}; -static const char *thrift_import_types[] = {"include_statement", NULL}; +static const char *thrift_import_types[] = {"include_statement", "extends", "include", + "namespace_declaration", NULL}; static const char *thrift_var_types[] = {"const_definition", NULL}; static const char *thrift_module_types[] = {"document", NULL}; static const char *capnp_func_types[] = {"method", NULL}; -static const char *capnp_class_types[] = {"struct", "enum", "interface", NULL}; +static const char *capnp_class_types[] = {"struct", "enum", "interface", "custom_type", + "type_definition", NULL}; static const char *capnp_field_types[] = {"field", NULL}; -static const char *capnp_import_types[] = {"import", NULL}; +static const char *capnp_import_types[] = {"import", "extends", "using_directive", NULL}; static const char *capnp_var_types[] = {"const", NULL}; static const char *capnp_module_types[] = {"source", NULL}; static const char *properties_var_types[] = {"property", NULL}; static const char *properties_module_types[] = {"source_file", NULL}; static const char *sshconfig_module_types[] = {"source_file", NULL}; +static const char *bibtex_call_types[] = {"command", NULL}; static const char *bibtex_module_types[] = {"document", NULL}; static const char *starlark_func_types[] = {"function_definition", "lambda", NULL}; static const char *starlark_call_types[] = {"call", NULL}; static const char *starlark_branch_types[] = {"if_statement", "for_statement", NULL}; static const char *starlark_var_types[] = {"identifier", NULL}; static const char *starlark_assign_types[] = {"assignment", "augmented_assignment", NULL}; +static const char *starlark_import_types[] = {"with_clause", NULL}; static const char *starlark_module_types[] = {"module", NULL}; -static const char *bicep_func_types[] = {"user_defined_function", NULL}; -static const char *bicep_class_types[] = {"resource_declaration", "type_declaration", NULL}; -static const char *bicep_import_types[] = {"import_statement", "module_declaration", NULL}; +static const char *bicep_func_types[] = {"user_defined_function", "lambda_expression", NULL}; +static const char *bicep_class_types[] = {"resource_declaration", "type_declaration", + "module_declaration", NULL}; +static const char *bicep_import_types[] = {"import_statement", "module_declaration", "import", + "using_statement", NULL}; static const char *bicep_var_types[] = {"variable_declaration", "parameter_declaration", "output_declaration", NULL}; +static const char *bicep_call_types[] = {"call_expression", NULL}; static const char *bicep_module_types[] = {"program", NULL}; static const char *csv_module_types[] = {"document", NULL}; static const char *requirements_module_types[] = {"file", NULL}; -static const char *hlsl_func_types[] = {"function_definition", NULL}; -static const char *hlsl_class_types[] = {"class_specifier", "struct_specifier", NULL}; -static const char *hlsl_call_types[] = {"call_expression", NULL}; -static const char *hlsl_import_types[] = {"preproc_include", NULL}; +static const char *hlsl_func_types[] = {"function_definition", "lambda_expression", NULL}; +static const char *hlsl_class_types[] = {"class_specifier", + "struct_specifier", + "enum_specifier", + "module_declaration", + "type_definition", + "union_specifier", + NULL}; +static const char *hlsl_call_types[] = {"call_expression", "new_expression", NULL}; +static const char *hlsl_import_types[] = {"preproc_include", "import", "import_declaration", NULL}; static const char *hlsl_branch_types[] = {"if_statement", "for_statement", "while_statement", "do_statement", "switch_statement", NULL}; static const char *hlsl_var_types[] = {"declaration", NULL}; static const char *hlsl_assign_types[] = {"assignment_expression", NULL}; static const char *hlsl_module_types[] = {"translation_unit", NULL}; -static const char *vhdl_class_types[] = {"entity_declaration", "architecture_definition", - "component_declaration", NULL}; -static const char *vhdl_call_types[] = {"function_call", "procedure_call_statement", NULL}; +static const char *vhdl_class_types[] = { + "entity_declaration", "architecture_definition", "component_declaration", + "interface_declaration", "package_declaration", "protected_type_declaration", + "record_type_definition", "type_declaration", NULL}; +static const char *vhdl_call_types[] = {"function_call", "procedure_call_statement", + "component_instantiation_statement", NULL}; static const char *vhdl_import_types[] = {"library_clause", "use_clause", NULL}; static const char *vhdl_branch_types[] = {"if_statement", "case_statement", "loop_statement", NULL}; static const char *vhdl_var_types[] = {"variable_declaration", "signal_declaration", "constant_declaration", NULL}; static const char *vhdl_assign_types[] = {"variable_assignment", "signal_assignment", NULL}; +static const char *vhdl_func_types[] = {"subprogram_declaration", NULL}; static const char *vhdl_module_types[] = {"design_file", NULL}; -static const char *systemverilog_func_types[] = {"function_declaration", "task_declaration", NULL}; -static const char *systemverilog_class_types[] = {"class_declaration", "module_declaration", - "interface_declaration", NULL}; -static const char *systemverilog_call_types[] = {"function_subroutine_call", "system_tf_call", +static const char *systemverilog_func_types[] = {"function_declaration", "task_declaration", + "function_body_declaration", "function_statement", NULL}; -static const char *systemverilog_import_types[] = {"package_import_declaration", NULL}; +static const char *systemverilog_class_types[] = {"class_declaration", + "module_declaration", + "interface_declaration", + "library_declaration", + "package_declaration", + "type_declaration", + NULL}; +static const char *systemverilog_call_types[] = {"function_subroutine_call", "system_tf_call", + "method_call", NULL}; +static const char *systemverilog_import_types[] = { + "package_import_declaration", "extends", "import", "include", + "include_statement", "instance", "use_clause", NULL}; static const char *systemverilog_branch_types[] = {"case_statement", "if", NULL}; static const char *systemverilog_var_types[] = {"parameter", "localparam", NULL}; static const char *systemverilog_module_types[] = {"source_file", NULL}; +static const char *devicetree_call_types[] = {"call_expression", NULL}; +static const char *devicetree_import_types[] = {"dtsi_include", "preproc_include", NULL}; static const char *devicetree_module_types[] = {"document", NULL}; +static const char *linkerscript_call_types[] = {"call_expression", NULL}; static const char *linkerscript_module_types[] = {"source_file", NULL}; static const char *gn_call_types[] = {"call_expression", NULL}; -static const char *gn_import_types[] = {"import_statement", NULL}; +static const char *gn_import_types[] = {"import_statement", "import", NULL}; static const char *gn_branch_types[] = {"if_statement", "foreach_statement", NULL}; static const char *gn_assign_types[] = {"assignment_statement", NULL}; static const char *gn_module_types[] = {"source_file", NULL}; -static const char *kconfig_class_types[] = {"config", "menuconfig", "choice", NULL}; +static const char *kconfig_class_types[] = {"config", "menuconfig", "choice", "type_definition", + NULL}; static const char *kconfig_import_types[] = {"source", NULL}; static const char *kconfig_branch_types[] = {"if", NULL}; static const char *kconfig_module_types[] = {"source", NULL}; -static const char *bitbake_func_types[] = {"function_definition", NULL}; +static const char *bitbake_func_types[] = {"function_definition", "python_function_definition", + "recipe", NULL}; static const char *bitbake_var_types[] = {"variable_assignment", NULL}; +static const char *bitbake_call_types[] = {"call", NULL}; +static const char *bitbake_import_types[] = { + "export_statement", "import", "import_from_statement", + "import_statement", "include", "include_directive", + "require", "with_clause", NULL}; static const char *bitbake_module_types[] = {"source_file", NULL}; static const char *smali_func_types[] = {"method_definition", NULL}; static const char *smali_class_types[] = {"class_definition", NULL}; static const char *smali_field_types[] = {"field_definition", NULL}; static const char *smali_import_types[] = {"super_directive", "implements_directive", NULL}; static const char *smali_module_types[] = {"source_file", NULL}; +static const char *tablegen_import_types[] = {"include", "include_directive", NULL}; static const char *tablegen_module_types[] = {"source_file", NULL}; static const char *ispc_func_types[] = {"function_definition", NULL}; -static const char *ispc_class_types[] = {"struct_specifier", NULL}; -static const char *ispc_call_types[] = {"call_expression", NULL}; +static const char *ispc_class_types[] = {"struct_specifier", "enum_specifier", "type_definition", + "union_specifier", NULL}; +static const char *ispc_call_types[] = {"call_expression", "new_expression", NULL}; static const char *ispc_branch_types[] = {"if_statement", "switch_statement", "while_statement", NULL}; static const char *ispc_var_types[] = {"declaration", NULL}; static const char *ispc_assign_types[] = {"assignment_expression", NULL}; +static const char *ispc_import_types[] = {"preproc_include", NULL}; static const char *ispc_module_types[] = {"translation_unit", NULL}; -static const char *cairo_func_types[] = {"function_definition", NULL}; -static const char *cairo_class_types[] = {"struct_definition", "enum_item", "trait_item", - "impl_item", NULL}; -static const char *cairo_call_types[] = {"call_expression", NULL}; -static const char *cairo_import_types[] = {"use_declaration", NULL}; +static const char *cairo_func_types[] = {"function_definition", "function_signature", NULL}; +static const char *cairo_class_types[] = { + "struct_definition", "enum_item", "trait_item", "impl_item", + "struct_item", "type_definition", NULL}; +static const char *cairo_call_types[] = {"call_expression", "call", NULL}; +static const char *cairo_import_types[] = {"use_declaration", "import", "import_statement", NULL}; static const char *cairo_branch_types[] = {"if_expression", "match_expression", "loop_expression", NULL}; static const char *cairo_var_types[] = {"let_declaration", "const_item", NULL}; @@ -1244,24 +1355,32 @@ static const char *move_branch_types[] = {"if_expression", "while_expression", " static const char *move_var_types[] = {"let", "const", NULL}; static const char *move_assign_types[] = {"assignment_expression", NULL}; static const char *move_module_types[] = {"source_file", NULL}; -static const char *squirrel_func_types[] = {"function_declaration", "anonymous_function", NULL}; -static const char *squirrel_class_types[] = {"class_declaration", NULL}; +static const char *squirrel_func_types[] = {"function_declaration", "anonymous_function", + "lambda_expression", NULL}; +static const char *squirrel_class_types[] = {"class_declaration", "enum_declaration", NULL}; static const char *squirrel_call_types[] = {"call_expression", NULL}; static const char *squirrel_branch_types[] = {"if_statement", "switch_statement", "while_statement", NULL}; static const char *squirrel_var_types[] = {"local_declaration", NULL}; static const char *squirrel_assign_types[] = {"assignment_expression", NULL}; +static const char *squirrel_import_types[] = {"extends", NULL}; static const char *squirrel_module_types[] = {"source_file", NULL}; +static const char *func_func_types[] = {"function_definition", NULL}; +static const char *func_call_types[] = {"method_call", NULL}; +static const char *func_import_types[] = {"include_directive", NULL}; static const char *func_module_types[] = {"source_file", NULL}; static const char *regex_module_types[] = {"pattern", NULL}; static const char *jsdoc_module_types[] = {"document", NULL}; static const char *rst_module_types[] = {"document", NULL}; +static const char *beancount_import_types[] = {"include", NULL}; static const char *beancount_module_types[] = {"file", NULL}; static const char *mermaid_module_types[] = {"source_file", NULL}; static const char *puppet_func_types[] = {"function_declaration", "lambda", NULL}; -static const char *puppet_class_types[] = {"class_definition", "node_definition", NULL}; +static const char *puppet_class_types[] = {"class_definition", "node_definition", + "resource_declaration", "type_declaration", NULL}; static const char *puppet_call_types[] = {"function_call", "resource_declaration", NULL}; -static const char *puppet_import_types[] = {"include_statement", "require_statement", NULL}; +static const char *puppet_import_types[] = {"include_statement", "require_statement", "include", + "require", NULL}; static const char *puppet_branch_types[] = {"if_statement", "unless_statement", "case_statement", NULL}; static const char *puppet_var_types[] = {"variable", NULL}; @@ -1270,6 +1389,17 @@ static const char *puppet_module_types[] = {"source_file", NULL}; static const char *po_module_types[] = {"source_file", NULL}; static const char *gitattributes_module_types[] = {"source", NULL}; static const char *gitignore_module_types[] = {"document", NULL}; +static const char *slang_func_types[] = {"function_definition", "lambda_expression", NULL}; +static const char *slang_class_types[] = {"class_specifier", + "enum_specifier", + "module_declaration", + "struct_specifier", + "type_definition", + "union_specifier", + NULL}; +static const char *slang_call_types[] = {"call_expression", "new_expression", NULL}; +static const char *slang_import_types[] = {"import", "import_declaration", "import_statement", + "preproc_include", NULL}; static const char *slang_module_types[] = {"source_file", NULL}; static const char *llvm_module_types[] = {"source_file", NULL}; static const char *smithy_func_types[] = {"operation_statement", "service_statement", @@ -1282,20 +1412,23 @@ static const char *smithy_module_types[] = {"source_file", NULL}; static const char *wit_func_types[] = {"func_item", "resource_method", NULL}; static const char *wit_class_types[] = {"record_item", "resource_item", NULL}; static const char *wit_field_types[] = {"record_field", NULL}; -static const char *wit_import_types[] = {"import_item", "toplevel_use_item", NULL}; +static const char *wit_import_types[] = { + "import_item", "toplevel_use_item", "export_item", "import", "include", "include_item", NULL}; static const char *wit_module_types[] = {"source_file", NULL}; static const char *tlaplus_func_types[] = {"operator_definition", "function_definition", NULL}; -static const char *tlaplus_call_types[] = {"function_evaluation", NULL}; +static const char *tlaplus_call_types[] = {"function_evaluation", "call", NULL}; static const char *tlaplus_import_types[] = {"extends", "instance", NULL}; static const char *tlaplus_branch_types[] = {"if_then_else", "case", NULL}; static const char *tlaplus_var_types[] = {"variable_declaration", NULL}; static const char *tlaplus_module_types[] = {"source_file", NULL}; static const char *pkl_func_types[] = {"classMethod", "objectMethod", NULL}; static const char *pkl_class_types[] = {"clazz", NULL}; -static const char *pkl_import_types[] = {"importClause", "extendsOrAmendsClause", NULL}; +static const char *pkl_import_types[] = {"importClause", "extendsOrAmendsClause", "extends", + "import", NULL}; static const char *pkl_var_types[] = {"classProperty", "objectProperty", NULL}; static const char *pkl_module_types[] = {"module", NULL}; static const char *gomod_var_types[] = {"require_directive", "replace_directive", NULL}; +static const char *gomod_import_types[] = {"require", NULL}; static const char *gomod_module_types[] = {"source_file", NULL}; static const char *apex_func_types[] = {"method_declaration", "constructor_declaration", "trigger_declaration", NULL}; @@ -1311,10 +1444,15 @@ static const char *apex_var_types[] = {"local_variable_declaration", NULL}; static const char *apex_assign_types[] = {"assignment_expression", NULL}; static const char *apex_throw_types[] = {"throw_statement", NULL}; static const char *apex_decorator_types[] = {"annotation", NULL}; +static const char *apex_import_types[] = {"extends", "with_clause", NULL}; static const char *apex_module_types[] = {"parser_output", NULL}; +static const char *soql_import_types[] = {"with_clause", NULL}; static const char *soql_module_types[] = {"source_file", NULL}; +static const char *sosl_import_types[] = {"with_clause", NULL}; static const char *sosl_module_types[] = {"source_file", NULL}; +static const char *make_func_types[] = {"recipe", NULL}; +static const char *make_import_types[] = {"include", "include_directive", NULL}; // ==================== SPEC TABLE ==================== static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { @@ -1378,9 +1516,9 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_PHP [CBM_LANG_PHP] = {CBM_LANG_PHP, php_func_types, php_class_types, empty_types, php_module_types, - php_call_types, empty_types, empty_types, php_branch_types, php_var_types, - php_assign_types, php_throw_types, NULL, php_decorator_types, php_env_funcs, - NULL, tree_sitter_php_only}, + php_call_types, php_import_types, empty_types, php_branch_types, + php_var_types, php_assign_types, php_throw_types, NULL, php_decorator_types, + php_env_funcs, NULL, tree_sitter_php_only}, // CBM_LANG_LUA [CBM_LANG_LUA] = {CBM_LANG_LUA, lua_func_types, empty_types, empty_types, lua_module_types, @@ -1477,7 +1615,7 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { tree_sitter_groovy}, // CBM_LANG_ERLANG - [CBM_LANG_ERLANG] = {CBM_LANG_ERLANG, erlang_func_types, empty_types, empty_types, + [CBM_LANG_ERLANG] = {CBM_LANG_ERLANG, erlang_func_types, erlang_class_types, empty_types, erlang_module_types, erlang_call_types, erlang_import_types, empty_types, erlang_branch_types, erlang_var_types, erlang_assign_types, erlang_throw_types, NULL, empty_types, NULL, NULL, tree_sitter_erlang}, @@ -1494,7 +1632,7 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_CSS [CBM_LANG_CSS] = {CBM_LANG_CSS, empty_types, empty_types, empty_types, css_module_types, - empty_types, css_import_types, empty_types, empty_types, empty_types, + css_call_types, css_import_types, empty_types, empty_types, empty_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_css}, // CBM_LANG_SCSS @@ -1519,9 +1657,10 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_hcl}, // CBM_LANG_SQL - [CBM_LANG_SQL] = {CBM_LANG_SQL, sql_func_types, empty_types, sql_field_types, sql_module_types, - sql_call_types, empty_types, empty_types, sql_branch_types, sql_var_types, - empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_sql}, + [CBM_LANG_SQL] = {CBM_LANG_SQL, sql_func_types, sql_class_types, sql_field_types, + sql_module_types, sql_call_types, empty_types, empty_types, sql_branch_types, + sql_var_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, + tree_sitter_sql}, // CBM_LANG_DOCKERFILE [CBM_LANG_DOCKERFILE] = {CBM_LANG_DOCKERFILE, empty_types, empty_types, empty_types, @@ -1549,7 +1688,7 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_VIMSCRIPT [CBM_LANG_VIMSCRIPT] = {CBM_LANG_VIMSCRIPT, vim_func_types, empty_types, empty_types, - vim_module_types, vim_call_types, empty_types, empty_types, + vim_module_types, vim_call_types, vim_import_types, empty_types, vim_branch_types, vim_var_types, vim_var_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_vim}, @@ -1561,9 +1700,10 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_COMMONLISP [CBM_LANG_COMMONLISP] = {CBM_LANG_COMMONLISP, commonlisp_func_types, empty_types, empty_types, - commonlisp_module_types, commonlisp_call_types, empty_types, - empty_types, empty_types, empty_types, empty_types, empty_types, NULL, - empty_types, NULL, NULL, tree_sitter_commonlisp}, + commonlisp_module_types, commonlisp_call_types, + commonlisp_import_types, empty_types, empty_types, empty_types, + empty_types, empty_types, NULL, empty_types, NULL, NULL, + tree_sitter_commonlisp}, // CBM_LANG_ELM [CBM_LANG_ELM] = {CBM_LANG_ELM, elm_func_types, elm_class_types, empty_types, elm_module_types, @@ -1585,15 +1725,16 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_COBOL [CBM_LANG_COBOL] = {CBM_LANG_COBOL, cobol_func_types, empty_types, empty_types, - cobol_module_types, cobol_call_types, empty_types, empty_types, + cobol_module_types, cobol_call_types, cobol_import_types, empty_types, cobol_branch_types, cobol_var_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_COBOL}, // CBM_LANG_VERILOG [CBM_LANG_VERILOG] = {CBM_LANG_VERILOG, verilog_func_types, verilog_class_types, empty_types, - verilog_module_types, verilog_call_types, empty_types, empty_types, - verilog_branch_types, verilog_var_types, verilog_assign_types, - empty_types, NULL, empty_types, NULL, NULL, tree_sitter_verilog}, + verilog_module_types, verilog_call_types, verilog_import_types, + empty_types, verilog_branch_types, verilog_var_types, + verilog_assign_types, empty_types, NULL, empty_types, NULL, NULL, + tree_sitter_verilog}, // CBM_LANG_EMACSLISP [CBM_LANG_EMACSLISP] = {CBM_LANG_EMACSLISP, elisp_func_types, empty_types, empty_types, @@ -1624,9 +1765,10 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { NULL, empty_types, NULL, NULL, tree_sitter_make}, // CBM_LANG_CMAKE - [CBM_LANG_CMAKE] = {CBM_LANG_CMAKE, empty_types, empty_types, empty_types, cmake_module_types, - cmake_call_types, empty_types, empty_types, empty_types, empty_types, - empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_cmake}, + [CBM_LANG_CMAKE] = {CBM_LANG_CMAKE, make_func_types, empty_types, empty_types, + cmake_module_types, cmake_call_types, make_import_types, empty_types, + empty_types, empty_types, empty_types, empty_types, NULL, empty_types, NULL, + NULL, tree_sitter_cmake}, // CBM_LANG_PROTOBUF [CBM_LANG_PROTOBUF] = {CBM_LANG_PROTOBUF, empty_types, protobuf_class_types, @@ -1809,10 +1951,10 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { empty_types, NULL, NULL, tree_sitter_odin}, // CBM_LANG_RESCRIPT - [CBM_LANG_RESCRIPT] = {CBM_LANG_RESCRIPT, rescript_func_types, empty_types, empty_types, - rescript_module_types, rescript_call_types, rescript_import_types, - empty_types, rescript_branch_types, rescript_var_types, - rescript_assign_types, rescript_throw_types, NULL, + [CBM_LANG_RESCRIPT] = {CBM_LANG_RESCRIPT, rescript_func_types, rescript_class_types, + empty_types, rescript_module_types, rescript_call_types, + rescript_import_types, empty_types, rescript_branch_types, + rescript_var_types, rescript_assign_types, rescript_throw_types, NULL, rescript_decorator_types, NULL, NULL, tree_sitter_rescript}, // CBM_LANG_PURESCRIPT @@ -1900,20 +2042,21 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_GOTEMPLATE [CBM_LANG_GOTEMPLATE] = {CBM_LANG_GOTEMPLATE, empty_types, empty_types, empty_types, - gotemplate_module_types, empty_types, empty_types, empty_types, - empty_types, empty_types, empty_types, empty_types, NULL, empty_types, - NULL, NULL, tree_sitter_gotmpl}, + gotemplate_module_types, gotemplate_call_types, empty_types, + empty_types, empty_types, empty_types, empty_types, empty_types, NULL, + empty_types, NULL, NULL, tree_sitter_gotmpl}, // CBM_LANG_TEMPL - [CBM_LANG_TEMPL] = {CBM_LANG_TEMPL, empty_types, empty_types, empty_types, templ_module_types, - empty_types, empty_types, empty_types, empty_types, empty_types, - empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_templ}, + [CBM_LANG_TEMPL] = {CBM_LANG_TEMPL, templ_func_types, templ_class_types, empty_types, + templ_module_types, templ_call_types, templ_import_types, empty_types, + empty_types, empty_types, empty_types, empty_types, NULL, empty_types, NULL, + NULL, tree_sitter_templ}, // CBM_LANG_LIQUID [CBM_LANG_LIQUID] = {CBM_LANG_LIQUID, empty_types, empty_types, empty_types, - liquid_module_types, empty_types, empty_types, empty_types, empty_types, - empty_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, - tree_sitter_liquid}, + liquid_module_types, empty_types, liquid_import_types, empty_types, + empty_types, empty_types, empty_types, empty_types, NULL, empty_types, + NULL, NULL, tree_sitter_liquid}, // CBM_LANG_JINJA2 [CBM_LANG_JINJA2] = {CBM_LANG_JINJA2, empty_types, empty_types, empty_types, @@ -1923,9 +2066,9 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_PRISMA [CBM_LANG_PRISMA] = {CBM_LANG_PRISMA, empty_types, prisma_class_types, prisma_field_types, - prisma_module_types, empty_types, empty_types, empty_types, empty_types, - empty_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, - tree_sitter_prisma}, + prisma_module_types, prisma_call_types, empty_types, empty_types, + empty_types, empty_types, empty_types, empty_types, NULL, empty_types, + NULL, NULL, tree_sitter_prisma}, // CBM_LANG_HYPRLANG [CBM_LANG_HYPRLANG] = {CBM_LANG_HYPRLANG, empty_types, empty_types, empty_types, @@ -1941,8 +2084,8 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_DIFF [CBM_LANG_DIFF] = {CBM_LANG_DIFF, empty_types, empty_types, empty_types, diff_module_types, - empty_types, empty_types, empty_types, empty_types, empty_types, empty_types, - empty_types, NULL, empty_types, NULL, NULL, tree_sitter_diff}, + diff_call_types, empty_types, empty_types, empty_types, empty_types, + empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_diff}, // CBM_LANG_WGSL [CBM_LANG_WGSL] = {CBM_LANG_WGSL, wgsl_func_types, wgsl_class_types, empty_types, @@ -1997,19 +2140,20 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_BIBTEX [CBM_LANG_BIBTEX] = {CBM_LANG_BIBTEX, empty_types, empty_types, empty_types, - bibtex_module_types, empty_types, empty_types, empty_types, empty_types, - empty_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, - tree_sitter_bibtex}, + bibtex_module_types, bibtex_call_types, empty_types, empty_types, + empty_types, empty_types, empty_types, empty_types, NULL, empty_types, + NULL, NULL, tree_sitter_bibtex}, // CBM_LANG_STARLARK [CBM_LANG_STARLARK] = {CBM_LANG_STARLARK, starlark_func_types, empty_types, empty_types, - starlark_module_types, starlark_call_types, empty_types, empty_types, - starlark_branch_types, starlark_var_types, starlark_assign_types, - empty_types, NULL, empty_types, NULL, NULL, tree_sitter_starlark}, + starlark_module_types, starlark_call_types, starlark_import_types, + empty_types, starlark_branch_types, starlark_var_types, + starlark_assign_types, empty_types, NULL, empty_types, NULL, NULL, + tree_sitter_starlark}, // CBM_LANG_BICEP [CBM_LANG_BICEP] = {CBM_LANG_BICEP, bicep_func_types, bicep_class_types, empty_types, - bicep_module_types, empty_types, bicep_import_types, empty_types, + bicep_module_types, bicep_call_types, bicep_import_types, empty_types, empty_types, bicep_var_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_bicep}, @@ -2031,10 +2175,10 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { empty_types, NULL, NULL, tree_sitter_hlsl}, // CBM_LANG_VHDL - [CBM_LANG_VHDL] = {CBM_LANG_VHDL, empty_types, vhdl_class_types, empty_types, vhdl_module_types, - vhdl_call_types, vhdl_import_types, empty_types, vhdl_branch_types, - vhdl_var_types, vhdl_assign_types, empty_types, NULL, empty_types, NULL, - NULL, tree_sitter_vhdl}, + [CBM_LANG_VHDL] = {CBM_LANG_VHDL, vhdl_func_types, vhdl_class_types, empty_types, + vhdl_module_types, vhdl_call_types, vhdl_import_types, empty_types, + vhdl_branch_types, vhdl_var_types, vhdl_assign_types, empty_types, NULL, + empty_types, NULL, NULL, tree_sitter_vhdl}, // CBM_LANG_SYSTEMVERILOG [CBM_LANG_SYSTEMVERILOG] = {CBM_LANG_SYSTEMVERILOG, systemverilog_func_types, @@ -2046,15 +2190,16 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_DEVICETREE [CBM_LANG_DEVICETREE] = {CBM_LANG_DEVICETREE, empty_types, empty_types, empty_types, - devicetree_module_types, empty_types, empty_types, empty_types, - empty_types, empty_types, empty_types, empty_types, NULL, empty_types, - NULL, NULL, tree_sitter_devicetree}, + devicetree_module_types, devicetree_call_types, + devicetree_import_types, empty_types, empty_types, empty_types, + empty_types, empty_types, NULL, empty_types, NULL, NULL, + tree_sitter_devicetree}, // CBM_LANG_LINKERSCRIPT [CBM_LANG_LINKERSCRIPT] = {CBM_LANG_LINKERSCRIPT, empty_types, empty_types, empty_types, - linkerscript_module_types, empty_types, empty_types, empty_types, - empty_types, empty_types, empty_types, empty_types, NULL, - empty_types, NULL, NULL, tree_sitter_linkerscript}, + linkerscript_module_types, linkerscript_call_types, empty_types, + empty_types, empty_types, empty_types, empty_types, empty_types, + NULL, empty_types, NULL, NULL, tree_sitter_linkerscript}, // CBM_LANG_GN [CBM_LANG_GN] = {CBM_LANG_GN, empty_types, empty_types, empty_types, gn_module_types, @@ -2069,9 +2214,9 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_BITBAKE [CBM_LANG_BITBAKE] = {CBM_LANG_BITBAKE, bitbake_func_types, empty_types, empty_types, - bitbake_module_types, empty_types, empty_types, empty_types, empty_types, - bitbake_var_types, empty_types, empty_types, NULL, empty_types, NULL, - NULL, tree_sitter_bitbake}, + bitbake_module_types, bitbake_call_types, bitbake_import_types, + empty_types, empty_types, bitbake_var_types, empty_types, empty_types, + NULL, empty_types, NULL, NULL, tree_sitter_bitbake}, // CBM_LANG_SMALI [CBM_LANG_SMALI] = {CBM_LANG_SMALI, smali_func_types, smali_class_types, smali_field_types, @@ -2081,13 +2226,13 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_TABLEGEN [CBM_LANG_TABLEGEN] = {CBM_LANG_TABLEGEN, empty_types, empty_types, empty_types, - tablegen_module_types, empty_types, empty_types, empty_types, + tablegen_module_types, empty_types, tablegen_import_types, empty_types, empty_types, empty_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_tablegen}, // CBM_LANG_ISPC [CBM_LANG_ISPC] = {CBM_LANG_ISPC, ispc_func_types, ispc_class_types, empty_types, - ispc_module_types, ispc_call_types, empty_types, empty_types, + ispc_module_types, ispc_call_types, ispc_import_types, empty_types, ispc_branch_types, ispc_var_types, ispc_assign_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_ispc}, @@ -2105,15 +2250,15 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_SQUIRREL [CBM_LANG_SQUIRREL] = {CBM_LANG_SQUIRREL, squirrel_func_types, squirrel_class_types, - empty_types, squirrel_module_types, squirrel_call_types, empty_types, - empty_types, squirrel_branch_types, squirrel_var_types, - squirrel_assign_types, empty_types, NULL, empty_types, NULL, NULL, - tree_sitter_squirrel}, + empty_types, squirrel_module_types, squirrel_call_types, + squirrel_import_types, empty_types, squirrel_branch_types, + squirrel_var_types, squirrel_assign_types, empty_types, NULL, + empty_types, NULL, NULL, tree_sitter_squirrel}, // CBM_LANG_FUNC - [CBM_LANG_FUNC] = {CBM_LANG_FUNC, empty_types, empty_types, empty_types, func_module_types, - empty_types, empty_types, empty_types, empty_types, empty_types, empty_types, - empty_types, NULL, empty_types, NULL, NULL, tree_sitter_func}, + [CBM_LANG_FUNC] = {CBM_LANG_FUNC, func_func_types, empty_types, empty_types, func_module_types, + func_call_types, func_import_types, empty_types, empty_types, empty_types, + empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_func}, // CBM_LANG_REGEX [CBM_LANG_REGEX] = {CBM_LANG_REGEX, empty_types, empty_types, empty_types, regex_module_types, @@ -2132,9 +2277,9 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_BEANCOUNT [CBM_LANG_BEANCOUNT] = {CBM_LANG_BEANCOUNT, empty_types, empty_types, empty_types, - beancount_module_types, empty_types, empty_types, empty_types, - empty_types, empty_types, empty_types, empty_types, NULL, empty_types, - NULL, NULL, tree_sitter_beancount}, + beancount_module_types, empty_types, beancount_import_types, + empty_types, empty_types, empty_types, empty_types, empty_types, NULL, + empty_types, NULL, NULL, tree_sitter_beancount}, // CBM_LANG_MERMAID [CBM_LANG_MERMAID] = {CBM_LANG_MERMAID, empty_types, empty_types, empty_types, @@ -2166,9 +2311,10 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { NULL, NULL, tree_sitter_gitignore}, // CBM_LANG_SLANG - [CBM_LANG_SLANG] = {CBM_LANG_SLANG, empty_types, empty_types, empty_types, slang_module_types, - empty_types, empty_types, empty_types, empty_types, empty_types, - empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_slang}, + [CBM_LANG_SLANG] = {CBM_LANG_SLANG, slang_func_types, slang_class_types, empty_types, + slang_module_types, slang_call_types, slang_import_types, empty_types, + empty_types, empty_types, empty_types, empty_types, NULL, empty_types, NULL, + NULL, tree_sitter_slang}, // CBM_LANG_LLVM_IR [CBM_LANG_LLVM_IR] = {CBM_LANG_LLVM_IR, llvm_func_types, empty_types, empty_types, @@ -2201,24 +2347,24 @@ static const CBMLangSpec lang_specs[CBM_LANG_COUNT] = { // CBM_LANG_GOMOD [CBM_LANG_GOMOD] = {CBM_LANG_GOMOD, empty_types, empty_types, empty_types, gomod_module_types, - empty_types, empty_types, empty_types, empty_types, gomod_var_types, + empty_types, gomod_import_types, empty_types, empty_types, gomod_var_types, empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_gomod}, // CBM_LANG_APEX [CBM_LANG_APEX] = {CBM_LANG_APEX, apex_func_types, apex_class_types, apex_field_types, - apex_module_types, apex_call_types, empty_types, empty_types, + apex_module_types, apex_call_types, apex_import_types, empty_types, apex_branch_types, apex_var_types, apex_assign_types, apex_throw_types, NULL, apex_decorator_types, NULL, NULL, tree_sitter_apex}, // CBM_LANG_SOQL [CBM_LANG_SOQL] = {CBM_LANG_SOQL, empty_types, empty_types, empty_types, soql_module_types, - empty_types, empty_types, empty_types, empty_types, empty_types, empty_types, - empty_types, NULL, empty_types, NULL, NULL, tree_sitter_soql}, + empty_types, soql_import_types, empty_types, empty_types, empty_types, + empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_soql}, // CBM_LANG_SOSL [CBM_LANG_SOSL] = {CBM_LANG_SOSL, empty_types, empty_types, empty_types, sosl_module_types, - empty_types, empty_types, empty_types, empty_types, empty_types, empty_types, - empty_types, NULL, empty_types, NULL, NULL, tree_sitter_sosl}, + empty_types, sosl_import_types, empty_types, empty_types, empty_types, + empty_types, empty_types, NULL, empty_types, NULL, NULL, tree_sitter_sosl}, // CBM_LANG_KUSTOMIZE — reuses YAML grammar; semantic extraction via cbm_extract_k8s() [CBM_LANG_KUSTOMIZE] = {CBM_LANG_KUSTOMIZE, empty_types, empty_types, empty_types,