Language Support

July 21, 2026 · View on GitHub

Code-Graph-RAG uses Tree-sitter for language-agnostic AST parsing with a unified graph schema across all languages.

Support Matrix

LanguageStatusExtensionsFunctionsClasses/StructsModulesPackage DetectionAdditional Features
CFully Supported.cFunctions, structs, unions, enums, preprocessor includes
C#Fully Supported.cs-Namespaces (block and file-scoped), classes/structs/records/interfaces/enums, generics, inheritance/interfaces/overrides, typed call resolution with overloads, using directives
C++Fully Supported.cpp, .h, .hpp, .cc, .cxx, .hxx, .hh, .ixx, .cppm, .ccmConstructors, destructors, operator overloading, templates, lambdas, C++20 modules, namespaces, preprocessor macros
DartFully Supported.dart-Classes, mixins, extensions, enhanced enums, factory/named constructors, Flutter widgets, package/relative/dart: imports, part directives, pubspec dependencies
GoFully Supported.go-Receiver methods with cross-file binding, structs, interfaces, type declarations, function-local types
JavaFully Supported.java-Generics, annotations, modern features (records/sealed classes), concurrency, reflection
JavaScriptFully Supported.js, .jsx, .mjs, .cjs-ES6 modules, CommonJS, prototype methods, object methods, arrow functions
LuaFully Supported.lua--Local/global functions, metatables, closures, coroutines
PHPFully Supported.php-Classes, interfaces, traits, enums, namespaces, PHP 8 attributes
PythonFully Supported.pyType inference, decorators, nested functions
RustFully Supported.rsimpl blocks, associated functions, macro_rules! macros
TypeScript (TSX)Fully Supported.tsx-All TypeScript features plus JSX elements and components
TypeScriptFully Supported.ts, .mts, .cts-Interfaces, type aliases, enums, namespaces, ES6/CommonJS modules
ScalaIn Development.scala, .sc-Case classes, objects

Language-Agnostic Design

All languages share a unified graph schema, meaning queries work the same way regardless of language. You can query across languages in the same knowledge graph when analysing polyglot repositories.

Adding New Languages

Code-Graph-RAG makes it easy to add support for any language that has a Tree-sitter grammar. See the Adding Languages guide.

!!! tip While you can add languages yourself, we recommend waiting for official full support for optimal parsing quality and comprehensive feature coverage. Submit a language request if you need a specific language supported.