Skip to content

feat: add support for 15 new programming languages#1949

Merged
tusharmath merged 8 commits intotailcallhq:mainfrom
dariuszkowalski-com:feature-1883-phase-1-tree-sitter-support
Nov 24, 2025
Merged

feat: add support for 15 new programming languages#1949
tusharmath merged 8 commits intotailcallhq:mainfrom
dariuszkowalski-com:feature-1883-phase-1-tree-sitter-support

Conversation

@dariuszkowalski-com
Copy link
Copy Markdown
Contributor

@dariuszkowalski-com dariuszkowalski-com commented Nov 23, 2025

Resolves Phase 1 of #1883

Adds support for 15 new programming languages and configuration formats to expand ForgeCode's language coverage.

New Languages

  • C#, C, PHP, Swift, Kotlin, Dart, Bash, SQL, Ruby, PowerShell
  • YAML, TOML, HTML, JSON, Markdown

Impact

  • Increases total language support from 10 to 25 languages
  • Maintains full backward compatibility

Implement: #1883

dariuszkowalski-com and others added 7 commits November 23, 2025 14:16
- Add support for C#, C, Swift, Kotlin, Dart, Bash, SQL, Ruby, PowerShell, YAML, TOML, HTML, JSON, Markdown
- Add 15 new Tree-sitter grammar dependencies to workspace
- Extend extension() function to support multiple file extensions per language
- Create comprehensive test fixtures for all new languages (valid/invalid)
- Add 26 new test cases with 215 total tests passing (96% success rate)
- Maintain full backward compatibility with existing 10 languages
- Follow existing modular architecture and testing patterns

Closes: tailcallhq#1883 (Phase 1)

Co-Authored-By: ForgeCode <noreply@forgecode.dev>
- Replace tree-sitter-sql v0.0.2 (outdated) with tree-sitter-sequel v0.3.11
- Use DerekStride/tree-sitter-sql with active development (last update: Oct 2024)
- Fix SQL API to use LANGUAGE constant instead of language() function
- Simplify SQL test fixtures to work with new parser (basic CRUD operations)
- Update extension mapping tests to reflect SQL now works correctly
- Improve test coverage: 216/220 tests passing (98% success rate)

Resolves SQL validation issues and provides modern, actively maintained SQL parser.

Co-Authored-By: ForgeCode <noreply@forgecode.dev>
- Fix PHP API: Use tree_sitter_php::LANGUAGE_PHP constant instead of language()
- Fix Dart API: Confirm tree_sitter_dart::language() is correct
- Fix Markdown API: Replace tree-sitter-markdown with tree-sitter-md using LANGUAGE constant
- Update TOML: Use devgen-tree-sitter-toml but disable due to tree-sitter conflicts
- Update extension mapping tests to reflect new working languages
- Fix test fixtures: Simplify Markdown invalid test with obvious syntax errors
- Results: 219/220 tests passing (99.5% success rate)
- Working languages: 13/15 new languages (87% completion)

Resolves API compatibility issues for PHP, Dart, and Markdown. TOML requires
further dependency resolution work.

Co-Authored-By: ForgeCode <noreply@forgecode.dev>
- Remove test_unsupported_extension() function that was never used
- Clean up dead code warning
- Final state: 219/220 tests passing (99.5% success rate)

Co-Authored-By: ForgeCode <noreply@forgecode.dev>
- Replace grouped import with individual imports to fix clippy warnings
- Clean up redundant single component path imports

Co-Authored-By: ForgeCode <noreply@forgecode.dev>
- Replace devgen-tree-sitter-toml with tree-sitter-toml-ng (official tree-sitter-grammars)
- Use tree_sitter_toml_ng::LANGUAGE constant (compatible API)
- Update workspace and forge_services Cargo.toml dependencies
- Fix import conflicts using aliases (MD_LANGUAGE, PHP_LANGUAGE, SQL_LANGUAGE, TOML_LANGUAGE)
- Update extension mapping to enable TOML validation
- Update test comments to reflect all languages now working
- Results: 220/220 tests passing (100% success rate)
- Phase 1 complete: All 15 new languages now supported

Resolves final remaining language support issue from Phase 1 implementation.

Co-Authored-By: ForgeCode <noreply@forgecode.dev>
- Remove unused imports (tree_sitter_dart::language, tree_sitter_php::LANGUAGE_PHP)
- Clean up multiline comments to improve readability
- Ensure code is properly formatted after rebase with main

Co-Authored-By: ForgeCode <noreply@forgecode.dev>
@github-actions github-actions Bot added the type: feature Brand new functionality, features, pages, workflows, endpoints, etc. label Nov 23, 2025
@tusharmath tusharmath added the ci: build all targets Build release binaries for all target platforms in CI label Nov 23, 2025
@tusharmath tusharmath enabled auto-merge (squash) November 24, 2025 05:16
@tusharmath tusharmath merged commit 34cb74f into tailcallhq:main Nov 24, 2025
9 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: build all targets Build release binaries for all target platforms in CI type: feature Brand new functionality, features, pages, workflows, endpoints, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants