GrepAI Supported Languages
This skill covers the programming languages supported by GrepAI for indexing and call graph analysis.
When to Use This Skill
- Checking if your language is supported
- Configuring language-specific settings
- Understanding trace capabilities per language
- Troubleshooting language-related issues
Supported Languages Overview
GrepAI supports indexing for all text-based files, but has enhanced support for specific programming languages.
Full Support (Index + Trace)
| Language |
Extensions |
Index |
Trace |
| Go |
.go |
โ
|
โ
|
| JavaScript |
.js, .jsx |
โ
|
โ
|
| TypeScript |
.ts, .tsx |
โ
|
โ
|
| Python |
.py |
โ
|
โ
|
| PHP |
.php |
โ
|
โ
|
| C |
.c, .h |
โ
|
โ
|
| C++ |
.cpp, .hpp, .cc, .cxx, .hh |
โ
|
โ
|
| Rust |
.rs |
โ
|
โ
|
| Zig |
.zig |
โ
|
โ
|
| C# |
.cs |
โ
|
โ
|
| Java |
.java |
โ
|
โ
|
| Pascal/Delphi |
.pas, .dpr |
โ
|
โ
|
Index Only (No Trace)
| Language |
Extensions |
Index |
Trace |
| Ruby |
.rb |
โ
|
โ |
| Swift |
.swift |
โ
|
โ |
| Kotlin |
.kt, .kts |
โ
|
โ |
| Scala |
.scala |
โ
|
โ |
| Lua |
.lua |
โ
|
โ |
| Shell |
.sh, .bash, .zsh |
โ
|
โ |
| SQL |
.sql |
โ
|
โ |
| HTML |
.html, .htm |
โ
|
โ |
| CSS |
.css, .scss, .less |
โ
|
โ |
| Markdown |
.md, .mdx |
โ
|
โ |
| YAML |
.yaml, .yml |
โ
|
โ |
| JSON |
.json |
โ
|
โ |
| TOML |
.toml |
โ
|
โ |
| XML |
.xml |
โ
|
โ |
Language Configuration
Enabling/Disabling Languages for Trace
trace:
enabled_languages:
- .go
- .js
- .ts
- .jsx
- .tsx
- .py
- .php
- .rs
- .c
- .cpp
- .cs
- .java
Excluding Certain Extensions
trace:
enabled_languages:
- .go
exclude_patterns:
- "*_test.go"
- "*.spec.ts"
Language-Specific Tips
Go
trace:
enabled_languages:
- .go
exclude_patterns:
- "*_test.go"
- "mock_*.go"
- "*_mock.go"
Trace accuracy: Excellent. Go's explicit syntax makes tracing very reliable.
JavaScript/TypeScript
trace:
enabled_languages:
- .js
- .jsx
- .ts
- .tsx
exclude_patterns:
- "*.test.js"
- "*.spec.ts"
- "*.d.ts"
Trace accuracy: Good. Some dynamic patterns may be missed.
Python
trace:
enabled_languages:
- .py
exclude_patterns:
- "test_*.py"
- "*_test.py"
- "conftest.py"
Trace accuracy: Good. Dynamic imports and decorators may be missed.
C/C++
trace:
enabled_languages:
- .c
- .h
- .cpp
- .hpp
- .cc
- .cxx
exclude_patterns:
- "*_test.cpp"
Trace accuracy: Good. Macros and templates may affect accuracy.
Rust
trace:
enabled_languages:
- .rs
exclude_patterns:
- "**/tests/**"
- "**/benches/**"
Trace accuracy: Excellent. Rust's explicit syntax aids accurate tracing.
PHP
trace:
enabled_languages:
- .php
exclude_patterns:
- "*Test.php"
- "**/tests/**"
Trace accuracy: Good. Magic methods may not be fully traced.
Java
trace:
enabled_languages:
- .java
exclude_patterns:
- "*Test.java"
- "**/test/**"
Trace accuracy: Good. Reflection-based calls may be missed.
C#
trace:
enabled_languages:
- .cs
exclude_patterns:
- "*Tests.cs"
- "**/Tests/**"
Trace accuracy: Good. Delegates and events may be partially traced.
Multi-Language Projects
For projects with multiple languages:
trace:
enabled_languages:
- .go
- .ts
- .tsx
- .sql
exclude_patterns:
- "*_test.go"
- "*.spec.ts"
Index vs Trace Explained
Index (Semantic Search)
- Works on any text file
- Code is chunked and embedded
- Enables semantic search
- No language-specific parsing required
Trace (Call Graphs)
- Requires language-specific parsing
- Extracts function definitions and calls
- Builds caller/callee relationships
- Uses regex (fast) or tree-sitter (precise)
Trace Modes by Language
| Language |
Fast Mode |
Precise Mode |
| Go |
โ
|
โ
|
| JavaScript |
โ
|
โ
|
| TypeScript |
โ
|
โ
|
| Python |
โ
|
โ
|
| PHP |
โ
|
โ
|
| C/C++ |
โ
|
โ
|
| Rust |
โ
|
โ
|
| Zig |
โ
|
โ
|
| C# |
โ
|
โ
|
| Java |
โ
|
โ
|
| Pascal |
โ
|
โ ๏ธ Limited |
Adding Custom Extensions
If you have non-standard extensions, they'll be indexed but not traced:
ignore:
- "*.generated.go"
File Type Detection
GrepAI uses file extensions for detection. It does NOT use:
- Shebangs (
#!/usr/bin/env python)
- File content analysis
- .editorconfig
Unsupported Languages (Index Works, No Trace)
These languages can be indexed for semantic search but don't have trace support:
- Ruby
- Swift
- Kotlin
- Scala
- Elixir
- Clojure
- Haskell
- OCaml
- F#
- Erlang
- R
- Julia
- Perl
- Groovy
Workaround: Use semantic search to find code, then manually trace.
Best Practices
- Enable only needed languages: Faster trace building
- Exclude test files: Cleaner trace results
- Use precise mode for accuracy: When trace results seem incomplete
- Match your tech stack: Configure based on your actual languages
Checking Language Support
grepai status
Common Issues
โ Problem: Files not being indexed
โ
Solution: Check file isn't in ignore patterns
โ Problem: Trace missing for language
โ
Solution: Ensure language is in enabled_languages
โ Problem: Wrong language detected
โ
Solution: GrepAI uses extensions only; rename files if needed
Output Format
Language support summary:
๐ GrepAI Language Support
Full Support (Index + Trace):
- Go (.go)
- JavaScript (.js, .jsx)
- TypeScript (.ts, .tsx)
- Python (.py)
- PHP (.php)
- C/C++ (.c, .cpp, .h, .hpp)
- Rust (.rs)
- Zig (.zig)
- C# (.cs)
- Java (.java)
- Pascal (.pas, .dpr)
Index Only (No Trace):
- Ruby, Swift, Kotlin, Scala
- Shell scripts, SQL, HTML, CSS
- Config files (YAML, JSON, TOML)
- Documentation (Markdown)
Your config enables trace for:
- .go, .js, .ts, .py