Status key:
- Yes = supported and covered
- Partial = supported with intentional limitations
- No = not supported for that capability
| Language | Dependency graph | Symbol extraction | Go-to-definition | Find references | Chunking | SFC integration | PR impact mapping | Call compatibility | Native addon | Native parity tests |
|---|---|---|---|---|---|---|---|---|---|---|
| TypeScript | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| TSX | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| JavaScript | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Python | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| PHP | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Go | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Java | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| C | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| C++ | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| C# | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Kotlin | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Ruby | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Rust | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Swift | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Zig | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
| HTML | Yes | No | No | No | Yes | No | Yes | No | Yes | Yes |
| Astro | Yes | No | No | No | No | No | Yes | No | No | No |
| Handlebars | Yes | No | No | No | No | No | Yes | No | No | No |
| CSS | Yes | No | No | No | Yes | No | Yes | No | Yes | Yes |
| SCSS | Yes | No | No | No | Yes | No | Yes | No | Yes | Yes |
| Less | Yes | No | No | No | Yes | No | Yes | No | Yes | Yes |
| Markdown | Yes | No | No | No | No | No | Yes | No | No | No |
| MDX | Yes | No | No | No | No | No | Yes | No | No | No |
| reStructuredText | Yes | No | No | No | No | No | Yes | No | No | No |
| AsciiDoc | Yes | No | No | No | No | No | Yes | No | No | No |
| Vue | Yes | No | No | No | Yes | Yes | Yes | No | Yes | Yes |
| Svelte | Yes | No | No | No | Yes | Yes | Yes | No | Yes | Yes |
| SQL | Yes | Yes | Yes | Yes | Yes | No | Partial | No | Yes | Yes |
Notes:
- The native addon is the only Tree-sitter grammar backend for the listed source languages.
- Without native, Codegraph degrades to reduced graph-only and regex recovery mode; it does not switch to a JS grammar stack.
- Native parity tests cover source-language extraction and end-to-end semantics for
TypeScript,TSX,JavaScript,Python,PHP,Go,Java,C#,Rust,Kotlin,Swift,Zig,C,C++,Ruby, andSQL. Graph/specifier parity is covered forHTML,CSS,Less,SCSS,Vue, andSvelte. - JavaScript graphing has an AngularJS-only heuristic for
templateUrl, controller-name, and DI-token file/external edges. It only applies when a file explicitly usesangular.module(...); genericcontrollerortemplateUrlobjects are not treated as Angular. - Call compatibility hints compare changed callable arity with resolved callsites when parsing is high confidence. They are not type checking, overload resolution, trait dispatch, function-pointer analysis, macro expansion, or data-flow inference.
- Call compatibility skips same-file overload sets unless a future resolver can prove the exact overload target.
- JavaScript, TypeScript, TSX, and JSX call compatibility includes callable variable arrows with parenthesized parameters and single bare parameters such as
const helper = a => a. - Method-like declarations are indexed as function locals across supported source languages where the grammar exposes named methods or member functions. Body edits map to the method local, and parameter edits set method-level
signatureChangedwhen the method signature is in scope. - Receiver-aware method references cover JS/TS plus Java, C#, and Rust receiver forms that
gotocan verify, such as direct construction, typed locals, and Rust impl-backed locals. Method-level call compatibility remains JS/TS-only and is emitted only for verified receivers such asnew Service().run()andconst service = new Service(); service.run(). - Duplicate detection compares same-language units only. Source languages with parser context can contribute AST-shape evidence for renamed structural clones; graph-first and text-only formats continue to use chunk, text, and token fingerprint signals without claiming AST-shape duplicate parity.
SCSSuses the native addon for import/specifier extraction. Dependency graph resolution covers Sass partials for extensionless and explicit.scssspecifiers, including non-canonical extension casing. Native SCSS symbol queries remain intentionally skipped because symbol extraction is not a supported SCSS capability in either runtime path yet.HTML,CSS,Less,Vue, andSvelteare graph/chunking-focused today. Their unsupported navigation and symbol features are covered by explicitnot_foundparity tests.MarkdownandMDXare graph-first today. They use shared text extraction for document links and MDX static imports, and they intentionally do not claim semantic chunking, navigation, references, or native-addon parity yet.Astro,Handlebars,reStructuredText, andAsciiDocare also graph-first today. They use shared text extraction for local links and format-specific include/import syntax, and they intentionally do not claim semantic chunking, navigation, references, or native-addon parity yet.SQLis supported as a repository language, not a full database analyzer. It discovers.sqlfiles by default, chunks statements, extracts table/view/index/routine symbols, records common DDL/DML and CTE read/write facts, creates SQL-to-SQL object edges, and supports SQL-file go-to-definition and find-references.- SQL object edges are exact for unique object-name matches. Qualified-to-basename fallback is heuristic and only used when unambiguous; ambiguous basename guesses are skipped.
- SQL navigation resolves schema-qualified names plus object-level
alias.column,table.column, andschema.table.columnreferences to table/view definitions when the prefix is unambiguous. It does not resolve specific column definitions. - SQL explain targets use the same conservative rule: exact object names win, and unqualified basenames resolve only when unique. SQL does not infer a current schema from migrations, seeds, dumps, or fixtures.
- Application-code string literals are not globally linked to SQL objects. They only surface SQL facts through explicit review-context bridge rules.
- SQL indexing, graphing, and navigation are native-only and do not require the JS fallback package.
- C typedef reference recovery is limited to direct declaration use-site coverage. Macro-expanded or otherwise non-local typedef references are not claimed.
- C# alias-only
using Alias = Namespace.Type;navigation is limited when there is no companion namespace import. Graph extraction is covered, but alias-only member navigation is not claimed yet.
The status key describes project-name extraction only. File discovery and monorepo boundary handling are separate checks.
Status key:
- Yes = extracts a project name from metadata
- Partial = detects the project file, but the name falls back to the directory or filename
- No = not detected
| Ecosystem | Project files | Name extraction |
|---|---|---|
| Node.js | package.json, package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lockb, tsconfig.json, jsconfig.json, pnpm-workspace.yaml, lerna.json, nx.json, turbo.json |
Yes for package.json; workspace configs fall back to the directory name |
| Python | pyproject.toml, requirements.txt, requirements.in, Pipfile, Pipfile.lock, poetry.lock, setup.py, setup.cfg |
Yes for pyproject.toml, setup.cfg, and setup.py |
| Go | go.mod, go.sum, go.work |
Yes for go.mod |
| Rust | Cargo.toml, Cargo.lock, rust-toolchain, rust-toolchain.toml |
Yes for Cargo.toml |
| Java and Kotlin | pom.xml, mvnw, build.gradle, build.gradle.kts, settings.gradle, settings.gradle.kts, gradle.properties, gradlew |
Yes for pom.xml and settings.gradle |
| .NET | *.csproj, *.fsproj, *.vbproj, *.sln, Directory.Build.props, Directory.Build.targets, global.json |
Yes for project files |
| Ruby | Gemfile, Gemfile.lock, *.gemspec |
Yes for *.gemspec; Partial for Gemfile |
| PHP | composer.json, composer.lock |
Yes for composer.json |
| Swift | Package.swift, Package.resolved, *.xcodeproj, *.xcworkspace |
Yes for Package.swift |
| C and C++ | CMakeLists.txt, CMakePresets.json, CMakeUserPresets.json, Makefile, makefile, GNUmakefile, configure.ac, configure.in, meson.build, meson_options.txt, conanfile.txt, conanfile.py, vcpkg.json |
Yes for vcpkg.json; Partial for directory fallback cases |
| IDE | .idea |
Partial via directory fallback |
Monorepo and diagnostic behavior:
- Project file traversal stops at the nearest manifest boundary, so scoped scans do not inherit unrelated parent projects.
inspectandunresolveduse supported dependency manifests to suppress declared third-party packages from unresolved-import diagnostics.- Graph-only document and template link edges still appear in graph output. They are excluded from unresolved-import diagnostics by default, so source import health is not mixed with documentation link checking.