Skip to content

Supported Languages

RepoRelay uses tree-sitter for code parsing and a custom parser for Markdown.

LanguageParserExtracted Symbols
TypeScript / JavaScripttree-sitterFunctions, classes, interfaces, types, enums, methods, exports
Pythontree-sitterFunctions, classes, methods, decorators
Gotree-sitterFunctions, structs, interfaces, methods
Javatree-sitterClasses, interfaces, methods, enums
Kotlintree-sitterClasses, objects, functions, data classes
Rusttree-sitterFunctions, structs, enums, traits, impls
Ctree-sitterFunctions, structs, enums, typedefs
C++tree-sitterFunctions, classes, structs, namespaces
MarkdownCustomHeadings, code blocks, links

How Parsing Works

Each language has a dedicated extractor in src/parser/languages/. The unified tree-sitter pipeline:

  1. Loads the appropriate grammar for the file's language
  2. Parses the file into an AST
  3. Walks the AST using language-specific queries to extract symbols and imports
  4. Returns structured ParsedSymbol and ParsedImport objects

Unsupported file types (.json, .png, .lock, etc.) are silently skipped — they don't produce ref_files entries.

Released under the MIT License.