Skip to content

Supported Languages

Tenets ships with first-class analyzers for a broad set of ecosystems. Each analyzer extracts structural signals (definitions, imports, dependencies) that feed ranking.

Language / TechAnalyzer ClassExtensionsNotes
PythonPythonAnalyzer.pyAST parsing, imports, class/function graph
JavaScript / TypeScript*JavaScriptAnalyzer.js, .jsx, .ts, .tsxLightweight regex/heuristic (TypeScript treated as JS for now)
JavaJavaAnalyzer.javaPackage & import extraction
GoGoAnalyzer.goImport graph, function signatures
C#CSharpAnalyzer.csNamespace & using directives (great for Unity scripts)
C / C++CppAnalyzer.c, .h, .cpp, .hppInclude graph detection
RustRustAnalyzer.rsModule/use extraction
ScalaScalaAnalyzer.scalaObject/class/trait discovery
KotlinKotlinAnalyzer.kt, .ktsPackage & import extraction
SwiftSwiftAnalyzer.swiftImport/use lines
PHPPhpAnalyzer.phpNamespace/use detection
RubyRubyAnalyzer.rbClass/module defs
DartDartAnalyzer.dartImport and class/function capture
GDScript (Godot)GDScriptAnalyzer.gdSignals + extends parsing
HTMLHTMLAnalyzer.html, .htmLink/script/style references
CSSCSSAnalyzer.css@import and rule summarization
Generic TextGenericAnalyzer* (fallback)Used when no specific analyzer matches

*TypeScript currently leverages the JavaScript analyzer (roadmap: richer TS-specific parsing).

Detection Rules

File extension matching selects the analyzer. Unsupported files fall back to the generic analyzer supplying minimal term frequency and path heuristics.

Adding a New Language

  1. Subclass LanguageAnalyzer in tenets/core/analysis/implementations
  2. Implement match(path) and analyze(content)
  3. Register in the analyzer registry (if dynamic) or import to ensure discovery
  4. Add tests under tests/core/analysis/implementations
  5. Update this page

Roadmap

Planned enhancements:

  • Deeper TypeScript semantic model
  • SQL schema/introspection analyzer
  • Proto / gRPC IDL support
  • Framework-aware weighting (Django, Rails, Spring) optional modules

Got a priority? Open an issue or PR.