Skip to content
This repository was archived by the owner on Jun 16, 2026. It is now read-only.
This repository was archived by the owner on Jun 16, 2026. It is now read-only.

[upstream-sync] feat(splitter): add Elm tree-sitter language support (upstream #1955) #170

Description

@github-actions

Upstream Change Summary

Type: new-feature
Difficulty: Easy
Recommendation: Adopt

Upstream added syntax-aware tree-sitter splitting for Elm (.elm files) via tree-sitter-elm 5.9.0. The PR wires up the parser to RecursiveSplitter, adds detect_code_language assertion for .elm extension, and adds round-trip tests. This follows the same pattern as the already-tracked Svelte/Vue/Julia additions (issue #165).

Upstream References

Relevant Upstream Files / Areas

  • rust/ops_text/ — tree-sitter language wiring and splitter implementation

Maps to recoco: crates/recoco-splitters/

Recoco Considerations

  • Feature gate: Must be gated under function-split (or an Elm-specific sub-gate if granularity is desired) consistent with recoco's feature-gating architecture.
  • Dependency: tree-sitter-elm 5.9.0 targets tree-sitter ^0.25.10. Verify recoco's pinned tree-sitter version is compatible before adding the dep.
  • No Python code to port — the upstream change is entirely in rust/ops_text/.
  • Related: This is additive and follows the same pattern as the Svelte/Vue/Julia additions tracked in issue [upstream-sync] feat(splitters): add Svelte, Vue, and Julia tree-sitter language support (upstream #1937, #1942) #165. It can be implemented in the same PR/pass as those.

Integration Notes

Straightforward adoption. Add tree-sitter-elm to crates/recoco-splitters/Cargo.toml (feature-gated), register the language in the splitter language table, and add the same tests (detect_code_language + RecursiveSplitter round-trip) as the upstream PR. Should take under an hour once the Svelte/Vue/Julia work in #165 is landed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    claudeCreated or actioned by Claude AIupstream-syncIssues for syncing updates with our upstream (cocoindex-io/cocoindex)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions