grepai-languages について
grepai-languagesは、GrepAIのインデックス作成と呼び出し分析を設定する開発者向けのリファレンススキルです。追跡対応言語とインデックスのみのファイル形式を区別し、拡張子による検出と設定方法を説明します。
主な機能
- 01インデックス可能なテキスト形式の一覧
- 02完全対応と言語別のインデックスのみ対応の区別
- 03追跡対象言語の設定方法
- 04高速モードと高精度モードの説明
- 05拡張子に基づくファイル検出の説明
活用シーン
- 01プロジェクト言語の呼び出し追跡対応を確認
- 02多言語プロジェクトの追跡拡張子を設定
- 03インデックス漏れや追跡結果不足の調査
- 04追跡モードと除外パターンの選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ yoanbernabeu/ grepai-skills --skill grepai-languagesインストール後、Claude Code で/grepai-languagesを入力して読み込まれたか確認します。
詳細
GrepAI 対応言語
このスキルでは、GrepAI がインデックス作成と呼び出しグラフ分析に対応しているプログラミング言語について説明します。
このスキルを使用する場面
- 使用している言語が対応しているか確認する
- 言語固有の設定を行う
- 言語ごとのトレース機能について理解する
- 言語関連の問題をトラブルシューティングする
対応言語の概要
GrepAI はすべてのテキストベースのファイルのインデックス作成に対応していますが、特定のプログラミング言語については機能が強化されています。
フルサポート(インデックス作成+トレース)
| 言語 | 拡張子 | インデックス作成 | トレース |
|---|---|---|---|
| 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 | ✅ | ✅ |
インデックス作成のみ(トレースなし)
| 言語 | 拡張子 | インデックス作成 | トレース |
|---|---|---|---|
| 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 | ✅ | ❌ |
言語の設定
トレース対象言語の有効化/無効化
# .grepai/config.yaml
trace:
enabled_languages:
- .go
- .js
- .ts
- .jsx
- .tsx
- .py
- .php
- .rs
- .c
- .cpp
- .cs
- .java
特定の拡張子を除外する
trace:
enabled_languages:
- .go
# Exclude JavaScript intentionally
# - .js
exclude_patterns:
- "*_test.go"
- "*.spec.ts"
言語別のヒント
Go
trace:
enabled_languages:
- .go
exclude_patterns:
- "*_test.go"
- "mock_*.go"
- "*_mock.go"
トレースの精度: 非常に高いです。Go の構文は明示的なため、非常に信頼性の高いトレースが可能です。
JavaScript/TypeScript
trace:
enabled_languages:
- .js
- .jsx
- .ts
- .tsx
exclude_patterns:
- "*.test.js"
- "*.spec.ts"
- "*.d.ts" # Type declarations
トレースの精度: 高いです。一部の動的なパターンは検出できない場合があります。
Python
trace:
enabled_languages:
- .py
exclude_patterns:
- "test_*.py"
- "*_test.py"
- "conftest.py"
トレースの精度: 高いです。動的インポートやデコレーターは検出できない場合があります。
C/C++
trace:
enabled_languages:
- .c
- .h
- .cpp
- .hpp
- .cc
- .cxx
exclude_patterns:
- "*_test.cpp"
トレースの精度: 高いです。マクロやテンプレートが精度に影響する場合があります。
Rust
trace:
enabled_languages:
- .rs
exclude_patterns:
- "**/tests/**"
- "**/benches/**"
トレースの精度: 非常に高いです。Rust の明示的な構文は、正確なトレースに役立ちます。
PHP
trace:
enabled_languages:
- .php
exclude_patterns:
- "*Test.php"
- "**/tests/**"
トレースの精度: 高いです。マジックメソッドは完全にはトレースされない場合があります。
Java
trace:
enabled_languages:
- .java
exclude_patterns:
- "*Test.java"
- "**/test/**"
トレースの精度: 高いです。リフレクションに基づく呼び出しは検出できない場合があります。
C#
trace:
enabled_languages:
- .cs
exclude_patterns:
- "*Tests.cs"
- "**/Tests/**"
トレースの精度: 高いです。デリゲートやイベントは部分的にしかトレースされない場合があります。
複数言語のプロジェクト
複数の言語を使用するプロジェクトの場合:
trace:
enabled_languages:
# Backend (Go)
- .go
# Frontend (TypeScript)
- .ts
- .tsx
# Shared (SQL, etc.)
- .sql # Index only
exclude_patterns:
- "*_test.go"
- "*.spec.ts"
インデックス作成とトレースの違い
インデックス作成(セマンティック検索)
- 任意のテキストファイルで動作します
- コードをチャンクに分割して埋め込みます
- セマンティック検索が可能になります
- 言語固有の解析は必要ありません
トレース(呼び出しグラフ)
- 言語固有の解析が必要です
- 関数の定義と呼び出しを抽出します
- 呼び出し元と呼び出し先の関係を構築します
- 正規表現(高速)または tree-sitter(高精度)を使用します
言語別のトレースモード
| 言語 | 高速モード | 高精度モード |
|---|---|---|
| Go | ✅ | ✅ |
| JavaScript | ✅ | ✅ |
| TypeScript | ✅ | ✅ |
| Python | ✅ | ✅ |
| PHP | ✅ | ✅ |
| C/C++ | ✅ | ✅ |
| Rust | ✅ | ✅ |
| Zig | ✅ | ✅ |
| C# | ✅ | ✅ |
| Java | ✅ | ✅ |
| Pascal | ✅ | ⚠️ 制限あり |
カスタム拡張子の追加
標準以外の拡張子を使用している場合、インデックスは作成されますが、トレースは行われません:
# Custom extension files will be indexed
ignore:
# Only add patterns for files you DON'T want indexed
- "*.generated.go"
ファイル形式の検出
GrepAI は拡張子を使用してファイル形式を検出します。以下は使用しません:
- シバン(
#!/usr/bin/env python) - ファイル内容の分析
- .editorconfig
非対応言語(インデックス作成は可能、トレースには非対応)
以下の言語はセマンティック検索用にインデックスを作成できますが、トレースには対応していません:
- Ruby
- Swift
- Kotlin
- Scala
- Elixir
- Clojure
- Haskell
- OCaml
- F#
- Erlang
- R
- Julia
- Perl
- Groovy
回避策: セマンティック検索でコードを見つけてから、手動でトレースしてください。
ベストプラクティス
- 必要な言語のみを有効にする: トレースの構築が速くなります
- テストファイルを除外する: トレース結果がより明確になります
- 精度を高めるには高精度モードを使用する: トレース結果が不完全に見える場合に使用します
- 技術スタックに合わせる: 実際に使用している言語に基づいて設定します
言語サポートの確認
# Check what's being indexed
grepai status
# Will show file counts by type
よくある問題
❌ 問題: ファイルがインデックスに登録されない
✅ 解決策: ファイルが除外パターンに含まれていないか確認します
❌ 問題: 特定の言語のトレースがない
✅ 解決策: 言語が enabled_languages に含まれていることを確認します
❌ 問題: 言語が誤って検出される
✅ 解決策: GrepAI は拡張子のみを使用します。必要に応じてファイル名を変更してください
出力形式
言語サポートの概要:
📚 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