mcpField
G
grepai-languages

grepai-languages

github.com/yoanbernabeu开发20714 次安装38 周前更新
代码仓库

关于 grepai-languages

grepai-languages 是 GrepAI 语言支持的参考技能,面向配置代码索引和调用关系分析的开发者。它区分仅支持索引的文件类型与同时支持追踪的语言,并说明扩展名配置和检测方式。

主要功能

  1. 01列出支持索引的文本文件类型
  2. 02区分完整支持与仅索引语言
  3. 03说明追踪语言配置方式
  4. 04介绍快速与精确追踪模式
  5. 05解释基于扩展名的文件检测

适用场景

  1. 01确认项目语言是否支持调用追踪
  2. 02为多语言项目配置追踪扩展名
  3. 03排查文件未索引或缺少追踪结果
  4. 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 使用文件扩展名进行检测。它不会使用:

  • Shebang(#!/usr/bin/env python)
  • 文件内容分析
  • .editorconfig

不支持的语言(可建立索引,不支持追踪)

以下语言可建立索引用于语义搜索,但不支持追踪:

  • Ruby
  • Swift
  • Kotlin
  • Scala
  • Elixir
  • Clojure
  • Haskell
  • OCaml
  • F#
  • Erlang
  • R
  • Julia
  • Perl
  • Groovy

替代方案: 使用语义搜索查找代码,然后手动追踪。

最佳实践

  1. 仅启用所需语言: 加快追踪构建速度
  2. 排除测试文件: 让追踪结果更简洁
  3. 使用精确模式以提高准确性: 追踪结果似乎不完整时
  4. 匹配你的技术栈: 根据实际使用的语言进行配置

检查语言支持

# 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

评论

支持 Markdown