语言支持

wescode 通过 CKG(代码知识图谱)和 tree-sitter 解析器提供深度的多语言支持。不同语言的支持深度取决于 CKG 的解析能力和语言特性。

支持级别

wescode 将语言支持分为三个级别:

级别能力语言
完整支持CKG 全量分析 + CSE 约束 + 深度重构Go, TypeScript/JavaScript
标准支持CKG 基础分析 + 重构 + 测试生成Python, Java, Rust
基础支持语法高亮 + 通用 AI 辅助C/C++, C#, Ruby, PHP 等

Go

Go 是 wescode 支持最深入的语言,拥有完整的 CKG 分析能力。

CKG 能力

特有功能

# 查看接口的所有实现
/ckg implementations io.Reader

# 查看函数的完整调用链
/ckg callers HandleLogin --depth 3

# 包依赖分析
/ckg deps internal/service/ --direction both

# 检测循环依赖
/ckg cycles

Go 特有的智能辅助

Go 代码示例

在 Chat 面板中的 Go 特化功能:

# 生成接口 Mock
/mock generate UserRepository

# 分析并发安全性
/analyze concurrent internal/cache/

# 生成 Go struct 标签
/generate tags User --json --db

TypeScript/JavaScript

CKG 能力

特有功能

# 分析 React 组件依赖
/ckg component-tree App

# 查看类型定义和使用
/ckg type-flow UserProps

# 检测未使用的导出
/ckg unused-exports src/utils/

TypeScript 智能辅助

框架支持

框架支持能力
React组件分析、Hook 生成、状态追踪
VueSFC 解析、组合式 API 支持
Next.js路由分析、SSR/SSG 识别
Express/Koa路由映射、中间件分析
NestJS装饰器解析、依赖注入分析

Python

CKG 能力

特有功能

# 分析类继承关系
/ckg class-hierarchy BaseHandler

# 查看装饰器影响
/ckg decorators @login_required

# 虚拟环境分析
/analyze venv

Python 智能辅助

框架支持

框架支持能力
Django模型分析、视图路由、ORM 查询
FastAPI路由分析、Pydantic 模型
Flask蓝图结构、路由映射
SQLAlchemy模型关系、查询优化

Java

CKG 能力

特有功能

# 分析 Spring Bean 依赖
/ckg beans UserService

# 查看注解影响范围
/ckg annotations @Transactional

# 分析 Maven/Gradle 依赖
/analyze dependencies

Java 智能辅助

框架支持

框架支持能力
Spring BootBean 分析、配置追踪、AOP 切面
MyBatisSQL 映射、Mapper 分析
Hibernate/JPA实体关系、查询分析

Rust

CKG 能力

特有功能

# 分析 trait 实现
/ckg implementations Display

# 分析所有权转移
/analyze ownership handle_request

# Crate 依赖检查
/analyze deps --security

Rust 智能辅助

其他语言

C/C++

基础支持,包含:

C#

基础支持,包含:

Ruby

基础支持,包含:

PHP

基础支持,包含:

Swift/Kotlin

基础支持,包含:

多语言项目

跨语言分析

对于包含多种语言的项目(如 Go 后端 + TypeScript 前端),wescode 支持:

配置多语言项目

# .wescode/languages.yaml
languages:
  # 主语言(影响 CKG 优先级)
  primary: "go"

  # 辅助语言
  secondary:
    - "typescript"
    - "python"

  # 语言特定配置
  go:
    build-tags: ["integration"]
    test-flags: ["-race", "-count=1"]

  typescript:
    tsconfig: "tsconfig.json"
    test-runner: "vitest"

  # 排除目录
  exclude:
    - "vendor/"
    - "node_modules/"
    - "dist/"

索引性能

不同语言的 CKG 索引性能参考:

语言10K 文件索引时间增量更新内存占用
Go~30s~200ms~500MB
TypeScript~45s~300ms~600MB
Python~40s~250ms~450MB
Java~50s~350ms~700MB
Rust~35s~200ms~550MB

以上数据为参考值,实际性能取决于项目规模和硬件配置。

常见问题

Q: 如何查看当前项目的语言识别结果?

A: 在状态栏点击语言指示器,或运行 /ckg status 查看索引状态和识别的语言分布。

Q: 某种语言的功能不工作?

A: 检查该语言的 tree-sitter 解析器是否正常加载。可以在开发者工具中查看日志,或运行 /ckg diagnose 进行诊断。

Q: 如何为不支持的语言添加基础支持?

A: wescode 基于 VSCode 扩展生态,可以安装对应语言的 LSP 扩展来获得基础的智能感知。AI 辅助功能可通过 Chat 面板使用,不受语言限制。