Docs / languages · Edit on GitHub

Languages

rgctl indexes source through language plugins. Tier metadata: languages.toml.

Contributors adding a language: tier-1-language-support.md.

Tiers

TierHandlerIndexingCFG / PDG / taint
Tier 1Custom LanguagePluginRich symbols + CallsFull when --with-cfg / taint enabled
Tier 2Generic tree-sitterFrom LanguageConfigLimited
Tier 3RegexPattern symbolsNone

Tier 1 (always in the release binary)

LanguageExtensionsNotes
Java.javaStrong golden coverage
Go.go
Rust.rs
Python.py, .pyw
JavaScript.js, .jsx, .mjs
TypeScript.ts, .tsx
C#.cs
C.c, .h
C++.cpp, .cc, .cxx, .hpp, …
rgctl discover . -l java,go,rust
rgctl discover . -e node_modules,target,.git

Config format plugins (JSON, YAML, TOML, properties, …) add structure nodes; they do not run CFG/PDG. See crates/rgctl-config-formats.

Markdown / docs: custom markup plugin rgctl-lang-markdown (tree-sitter-md). Not Tier 1, not generic Tier 2. See markdown-context.md. .md and .mdx are indexed by default when registered via rgctl-languages.

Konveyor Kantra migration rules: not a source-language plugin — evaluates the embedded Konveyor stable/java rule catalog against indexed Java (and source cache) after discover --with-kantra. Optional --kantra-target filters by konveyor.io/target. See User Guide §4 — Kantra and crates/rgctl-kantra/README.md.

Discover depth

FlagsUse
(default)Fast graph + metrics
--with-securitySecret scanning on config-like files
--with-cfgCFG/PDG for slice/inspect/cpg (slower on huge repos)
--with-taintDiscover-time taint (with CFG)
--with-kantraKonveyor rule eval + kantra_findings.json + KantraRule graph index
--export-migration-hintsMigration plan JSON
--with-dashboardOptional static UI assets

CLI tips

  • GQL / blast-radius use indexed node names (often bare method names in Java).
  • inspect SYMBOL is a function symbol only (no --class).
  • blast-radius supports --class / --file on collisions.
  • slice --function is the method/function name, not the class.

See User Guide §4.