Skip to content

Languages · 50 hand-written analyzers

Fifty languages. One index.

Every language below has its own analyzer writing into the same local graph — no generic fallback a language can drop onto. Open one to see the extensions it claims, the registry ids it answers to, the symbols it records and the relationship types it constructs.

50 analyzers · 53 registry ids · 14 relationship types · 47 authored depth records

The register.

One card per display family. The dot is the language’s own mark, the line under the name is the extensions the analyzer claims, and the count is how many of the 14 relationship types that analyzer can actually construct.

TypeScript.ts, .tsx, .mts, .cts14 of 14 relationship typesJavaScript.js, .cjs, .mjs, .jsx12 of 14 relationship typesPython.py, .pyw, .pyi11 of 14 relationship typesRust.rs14 of 14 relationship typesGo.go12 of 14 relationship typesJava.java10 of 14 relationship typesC++.cpp, .cc, .cxx, .c++, .hpp, .hxx, .ipp, .inl, .cu, .h11 of 14 relationship typesC.c, .h9 of 14 relationship typesC#.cs, .csx11 of 14 relationship typesRuby.rb10 of 14 relationship typesPHP.php, .phpt12 of 14 relationship typesSwift.swift11 of 14 relationship typesKotlin.kt, .kts11 of 14 relationship typesDart.dart13 of 14 relationship typesElixir.ex, .exs10 of 14 relationship typesClojure.clj, .cljs, .cljc, .edn11 of 14 relationship typesHaskell.hs, .lhs12 of 14 relationship typesScala.scala, .sc, .sbt11 of 14 relationship typesLua.lua10 of 14 relationship typesR.r11 of 14 relationship typesBash.sh, .bash, .zsh8 of 14 relationship typesSQL.sql10 of 14 relationship typesHTML.html, .htm, .xhtml, .hbs, .twig, .pug, .erb, .mustache, .ejs, .liquid, .njk, .jinja, .j214 of 14 relationship typesCSS.css, .sass, .less8 of 14 relationship typesSCSS / Sass.scss10 of 14 relationship typesJSON.json, .jsonc, .jsonl, .jsonlog9 of 14 relationship typesYAML.yml, .yaml8 of 14 relationship typesPowerShell.ps1, .psm1, .psd111 of 14 relationship typesGraphQL.graphql, .gql, .graphqls8 of 14 relationship typesHCL / Terraform.tf, .tfvars, .tofu, .hcl10 of 14 relationship typesErlang.erl, .hrl9 of 14 relationship typesF#.fs, .fsi, .fsx11 of 14 relationship typesGroovy.groovy, .gradle11 of 14 relationship typesVue.vue14 of 14 relationship typesSvelte.svelte14 of 14 relationship typesPerl.pod, .pl, .pm, .t, .perl11 of 14 relationship typesClean.icl, .dcl9 of 14 relationship typesZig.zig8 of 14 relationship typesObjective-C.m, .mm, .h11 of 14 relationship typesMarkdown.md, .markdown5 of 14 relationship typesTOML.toml4 of 14 relationship typesXML.xml, .xsd, .dtd, .svg, .xsl, .xslt, .rng9 of 14 relationship typesMake.mk, .mak, .Makefile8 of 14 relationship typesProtobuf.proto5 of 14 relationship typesNim.nim, .nims, .nimble12 of 14 relationship typesVisual Basic.vb11 of 14 relationship typesVBA.vba, .bas, .cls, .frm9 of 14 relationship typesJulia.jl11 of 14 relationship typesMATLAB.matlab, .m11 of 14 relationship typesSolidity.sol11 of 14 relationship types

What an analyzer can say.

Fourteen relationship types, and the number of analyzers that construct each one. A format with no invocation syntax produces no calls edge — that is a fact about the format, not a gap in the tool.

imports50
contains50
references50
uses48
exports48
calls46
overrides45
instantiates39
extends38
implements34
part_of24
mixes_in17
decorates15
renders12

Derived at build time from each analyzer module’s own emitted set. A bar shorter than 50 means the format itself does not carry that relationship.

Three alias ids.

A registry id does not have to be a language. Three ids resolve to a parent analyzer instead of adding a branch — same code path, same relationship vocabulary.

Alias route

TypeScript

The TypeScript analyzer also answers to “tsx”, resolved by the same tree-sitter grammar and the same emitted vocabulary.

typescript · tsx

Alias route

CSS

The CSS analyzer also answers to “sass”, resolved by the same tree-sitter grammar and the same emitted vocabulary.

css · sass

Alias route

HCL / Terraform

The HCL / Terraform analyzer also answers to “terraform”, resolved by the same tree-sitter grammar and the same emitted vocabulary.

hcl · terraform

Where this register comes from.

Extensions, registry ids and the recorded symbols are read from the table the engine’s own SUPPORTED_LANGUAGES registry generates; the relationship types are derived from the analyzer modules in src/ast rather than typed in beside them. If a card here disagrees with the code in front of you, that is a bug worth reporting.