Language support

Languages (61)

rgctl ships with 24 Tier-1 custom plugins (handler = "custom", verified by *-ast-coverage.json manifests) and 37 Tier-2 declarative query plugins (handler = "queries", powered by QueryLanguagePlugin and queries/tags.scm).

Architecture & contributor docs: Tier 1 language support · Tier 2 language support. Plugin crates live under crates/rgctl-lang-*.

Tier 1 — Custom AST Plugins (24)

Tier 1 requirements & Layer F checklist →

Dedicated LanguagePlugin implementations with grammar-verified *-ast-coverage.json manifests, call graphs, inheritance/MRO, CFG/PDG, taint rules, and hybrid CPG support.

LanguageExtensionsGrammarKindsHandledSkip
Bash.sh, .bashtree-sitter-bash@0.25.159752
C.c, .htree-sitter-c@0.24.21253788
C#.cstree-sitter-c-sharp@0.23.521555160
C++.cpp, .cc, .cxx, .hpp, .hh, .hxxtree-sitter-cpp@0.23.420658148
Dart.darttree-sitter-dart@0.2.022119202
Elixir.ex, .exstree-sitter-elixir@0.3.545639
ERB.erbtree-sitter-embedded-template@0.25.0844
Go.gotree-sitter-go@0.25.01074265
Groovy.groovy, .gradletree-sitter-groovy@0.1.21507080
HCL.hcl, .tf, .tfvarstree-sitter-hcl@1.1.064361
Java.javatree-sitter-java@0.23.51425686
JavaScript.js, .jsx, .mjstree-sitter-javascript@0.25.01145460
Kotlin.kt, .ktstree-sitter-kotlin-ng@1.1.01144371
Lua.luatree-sitter-lua@0.5.0471037
Markdown—tree-sitter-md@0.5.351645
PHP.phptree-sitter-php@0.24.215755102
Puppet.pptree-sitter-puppet@1.3.0584414
Python.py, .pywtree-sitter-python@0.25.01235568
Ruby.rbtree-sitter-ruby@0.23.11348747
Rust.rstree-sitter-rust@0.24.216356107
Scala.scala, .sctree-sitter-scala@0.26.317119152
SQL.sqltree-sitter-sql@0.0.25237516
Swift.swifttree-sitter-swift@0.7.418819169
TypeScript.ts, .tsxtree-sitter-typescript@0.23.217770107

Tier 1 handler legend

Tier 2 — Declarative Query Plugins (37)

How Tier 2 tags.scm queries work →

Driven by QueryLanguagePlugin (rgctl-lang-runtime) and precompiled queries/tags.scm files validated against the Tier-2 capture vocabulary (@definition.*, @reference.call, @reference.class, @reference.implementation, @import.path).

LanguageExtensionsGrammar CrateCapturesFunction / Class Kinds
Clojure.clj, .cljs, .cljctree-sitter-clojure6 captureslist_lit
CMake.cmaketree-sitter-cmake4 capturesfunction_def
CSS.csstree-sitter-css4 captureskeyframes_statement, rule_set
CUDA.cu, .cuhtree-sitter-cuda5 capturesfunction_definition, struct_specifier, class_specifier
D.dtree-sitter-d7 capturesfunction_declaration, class_declaration, struct_declaration
Elm.elmtree-sitter-elm7 capturesvalue_declaration, type_declaration
Emacs Lisp.eltree-sitter-elisp6 capturesfunction_definition
Erlang.erl, .hrltree-sitter-erlang6 capturesfun_decl, function_clause, record_decl
F#.fs, .fsi, .fsxtree-sitter-fsharp6 capturesfunction_or_value_defn, type_definition
Fortran.f90, .f95, .f03, .f08, .F90tree-sitter-fortran6 capturesfunction, subroutine, derived_type_definition
GDScript.gdtree-sitter-gdscript4 capturesfunction_definition, class_definition
Gleam.gleamtree-sitter-gleam6 capturesfunction, type_definition
GLSL.glsl, .vert, .frag, .comptree-sitter-glsl4 capturesfunction_definition, struct_specifier
GraphQL.graphql, .gqltree-sitter-graphql5 capturesoperation_definition, fragment_definition, object_type_definition
Haskell.hstree-sitter-haskell8 capturesfunction, class, data_type, newtype
HTML.html, .htmtree-sitter-html3 capturesscript_element, element
JSON.jsontree-sitter-json2 capturesobject
Julia.jltree-sitter-julia7 capturesfunction_definition, struct_definition
Makefile.mk, .maktree-sitter-make4 capturesrule
Nix.nixtree-sitter-nix3 capturesfunction_expression
Objective-C.m, .mmtree-sitter-objc5 capturesfunction_definition, method_definition, class_interface, class_implementation
OCaml.ml, .mlitree-sitter-ocaml6 capturesvalue_definition, class_definition
Odin.odintree-sitter-odin7 capturesprocedure_declaration, struct_declaration
PowerShell.ps1, .psm1tree-sitter-powershell4 capturesfunction_statement, class_statement
Prisma.prismatree-sitter-prisma4 capturesmodel_declaration, enum_declaration
Protocol Buffers.prototree-sitter-proto4 capturesrpc, message
R.r, .Rtree-sitter-r3 capturesfunction_definition
Racket.rkttree-sitter-racket6 captureslist
Scheme.scm, .sstree-sitter-scheme5 captureslist
Solidity.soltree-sitter-solidity4 capturesfunction_definition, contract_declaration
Starlark.star, .bzltree-sitter-starlark5 capturesfunction_definition
Svelte.sveltetree-sitter-svelte-ng3 capturesscript_element, element
TOML.tomltree-sitter-toml-ng3 capturestable
Verilog / SystemVerilog.v, .sv, .svhtree-sitter-verilog6 capturesfunction_declaration, task_declaration, class_declaration, module_declaration
VHDL.vhd, .vhdltree-sitter-vhdl6 capturessubprogram_definition, component_declaration
YAML.yaml, .ymltree-sitter-yaml2 captures—
Zig.zig, .zontree-sitter-zig8 capturesfunction_declaration, struct_declaration