Skip to content

extend language coverage with 15 additional languages and markup formats #1533

Description

@mochizzan

Context

CodeGraph currently supports 20 languages through its native Rust parsing kernel:

  • TypeScript, JavaScript/TSX/JSX, Java, Python, Go, C, C++, Rust, C#, Ruby, PHP, Swift, Kotlin, Scala, Dart, R, Lua, Luau

Additional languages/markup formats (Svelte, Liquid, Pascal/Delphi) are available via the Tree-sitter/WASM path.

While this coverage is solid for mainstream web, mobile, and backend stacks, significant gaps remain in:

  • Functional & JVM-ecosystem languages
  • Infrastructure-as-Code
  • Smart contracts
  • Widely-used config/markup formats in modern monorepos

These languages are currently either completely ignored by the graph or fall back to a generic path with no meaningful symbols or edges.


Proposal: 15 New Languages/Formats

# Language/Format Category Priority Rationale
1 Elixir Functional / BEAM Popular for real-time backends (Phoenix); currently not covered
2 Erlang Functional / BEAM Natural pairing with Elixir; often coexists in umbrella projects
3 Haskell Functional Widely used in internal compiler/tooling codebases
4 OCaml Functional Used in infra-critical tools (parts of Rust/JS tooling ecosystem)
5 Clojure Functional / JVM JVM ecosystem gap despite existing Java/Kotlin/Scala support
6 Groovy JVM Extremely common in Gradle build scripts; direct impact on dependency-graph resolution
7 Objective-C Mobile (iOS legacy) Many legacy iOS codebases still mix Swift and Objective-C
8 Zig Systems Growing rapidly as a C alternative
9 Perl Scripting / Legacy Still widely used in legacy systems & DevOps scripting
10 Julia Scientific computing Gap in data-science/scientific ecosystem (complements existing R support)
11 HCL (Terraform) Infrastructure-as-Code Critical for DevOps/infra repos; currently not parsed structurally
12 Solidity Smart Contract Growing Web3/blockchain ecosystem; no graph representation for contract calls/inheritance
13 GraphQL SDL Schema / API Enables query-to-resolver resolution; highly relevant to the getImpactRadius feature
14 YAML Config / Markup Widely used for CI/CD (GitHub Actions, Kubernetes); parsing job/step structure aids context building
15 HTML Markup Foundation for many frameworks; important for cross-referencing with JS/TS components

Why This Combination

  • Functional/JVM languages (1–6) — Fills a gap for functional and JVM-ecosystem developers who are currently completely unserved despite Java/Kotlin/Scala support.
  • Systems/legacy (7–9) — Addresses mixed legacy-modern codebases (iOS, C-alternatives, legacy scripting).
  • Infra & Web3 (10–12) — A fast-growing category where almost no graph-based tool currently provides good structural queries.
  • Schema & markup (13–15) — Not classic programming languages, but critical for cross-service linking (one of CodeGraph’s flagship features), especially GraphQL SDL for getImpactRadius.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions