Grepai Languages

yoanbernabeu/grepai-skills/skills/advanced/grepai-languages

作者 yoanbernabeu382d40261c0d41109c6e11872574ba0be9b064d0無授權條款收錄於 2026年10月9日更新於 2026年10月9日

Supported programming languages in GrepAI. Use this skill to understand which languages can be indexed and traced.

AI 產生的概覽

介紹 GrepAI 可索引與追蹤的程式語言及設定範例的參考指南。

功能
此技能說明 GrepAI 支援哪些程式語言進行索引與呼叫圖追蹤,列出完整支援以及僅支援索引的語言。它提供啟用或排除語言與副檔名的設定片段、各語言的個別提示與疑難排解說明。它也解釋索引與追蹤的差異,並列出不支援的語言。
適用情境
當需要確認某語言是否受支援、設定特定語言的追蹤設定,或排解 GrepAI 中與語言相關的索引與追蹤問題時使用。
執行需求
無需指令碼或工具,僅為說明性參考。假定使用者熟悉 GrepAI 的設定檔,如 .grepai/config.yaml。

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)

LanguageExtensionsIndexTrace
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)

LanguageExtensionsIndexTrace
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

yaml
# .grepai/config.yamltrace:  enabled_languages:    - .go    - .js    - .ts    - .jsx    - .tsx    - .py    - .php    - .rs    - .c    - .cpp    - .cs    - .java

Excluding Certain Extensions

yaml
trace:  enabled_languages:    - .go    # Exclude JavaScript intentionally    # - .js
  exclude_patterns:    - "*_test.go"    - "*.spec.ts"

Language-Specific Tips

Go

yaml
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

yaml
trace:  enabled_languages:    - .js    - .jsx    - .ts    - .tsx  exclude_patterns:    - "*.test.js"    - "*.spec.ts"    - "*.d.ts"  # Type declarations

Trace accuracy: Good. Some dynamic patterns may be missed.

Python

yaml
trace:  enabled_languages:    - .py  exclude_patterns:    - "test_*.py"    - "*_test.py"    - "conftest.py"

Trace accuracy: Good. Dynamic imports and decorators may be missed.

C/C++

yaml
trace:  enabled_languages:    - .c    - .h    - .cpp    - .hpp    - .cc    - .cxx  exclude_patterns:    - "*_test.cpp"

Trace accuracy: Good. Macros and templates may affect accuracy.

Rust

yaml
trace:  enabled_languages:    - .rs  exclude_patterns:    - "**/tests/**"    - "**/benches/**"

Trace accuracy: Excellent. Rust's explicit syntax aids accurate tracing.

PHP

yaml
trace:  enabled_languages:    - .php  exclude_patterns:    - "*Test.php"    - "**/tests/**"

Trace accuracy: Good. Magic methods may not be fully traced.

Java

yaml
trace:  enabled_languages:    - .java  exclude_patterns:    - "*Test.java"    - "**/test/**"

Trace accuracy: Good. Reflection-based calls may be missed.

C#

yaml
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:

yaml
trace:  enabled_languages:    # Backend (Go)    - .go    # Frontend (TypeScript)    - .ts    - .tsx    # Shared (SQL, etc.)    - .sql  # Index only
  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

LanguageFast ModePrecise 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:

yaml
# Custom extension files will be indexedignore:  # Only add patterns for files you DON'T want indexed  - "*.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

  1. Enable only needed languages: Faster trace building
  2. Exclude test files: Cleaner trace results
  3. Use precise mode for accuracy: When trace results seem incomplete
  4. Match your tech stack: Configure based on your actual languages

Checking Language Support

bash
# Check what's being indexedgrepai status
# Will show file counts by type

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

來源與署名

來源:yoanbernabeu/grepai-skills位於skills/advanced/grepai-languages提交382d402

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架