Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>FuncLensNew to Visual Studio Code? Get it now.
FuncLens

FuncLens

yulong

|
2 installs
| (0) | Free
Lightweight, non-intrusive VS Code extension for function-level code review, refactoring, and test generation.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

FuncLens

AI 驱动的函数级代码审查、重构与测试生成助手

FuncLens 是一款轻量级、非侵入式的 VS Code 扩展,旨在将 AI 能力无缝集成到日常编码工作流中。它为每个函数提供一键式的 CodeLens 操作,支持代码审查、重构建议和单元测试生成。

✨ 核心功能

  1. 🚀 智能辅助 (AI Powered)

    • 代码审查 (Review): 深度分析函数逻辑,发现潜在 Bug 和代码异味,以行内评论形式展示。
    • 重构建议 (Refactor): 提供代码优化和重构方案,支持一键对比查看差异 (Diff View)。
    • 生成单测 (Gen UT): 根据函数逻辑自动生成单元测试代码。
  2. ⚡️ 便捷触发

    • CodeLens: 函数/方法上方常驻快捷按钮,无需离开键盘即可触发。
    • 右键菜单: 全局支持,选中文本后通过 "FuncLens" 子菜单触发。
  3. 🛠️ 高度可配置

    • 自定义动作 (Custom Actions): 支持配置任意 Shell 脚本或 Python 脚本,扩展无限可能。
    • 实时反馈协议: 脚本可以通过标准输出实时更新 UI 状态并自动打开生成的文件。
    • 变量插值: 支持丰富的上下文变量(如文件路径、函数名、工作区路径等)。

⚙️ 配置指南

在 .vscode/settings.json 或用户设置中进行配置。

1. 基础设置

配置项 说明 默认值
funclens.mode 执行模式:qwen-sdk (内置 SDK) 或 cli (自定义脚本)。 cli
33: funclens.agentCommand 核心 AI 引擎的调用命令或可执行文件路径。 -
funclens.timeout 命令执行的超时时间 (毫秒)。 30000

2. 界面可见性

控制编辑器中 CodeLens 按钮的显示。

配置项 说明 默认值
funclens.showReviewAction 是否显示 "Review" 按钮 true
funclens.showRefactorAction 是否显示 "Refactor" 按钮 true
funclens.showTestAction 是否显示 "Gen UT" 按钮 true

🔥 自定义动作 (Custom Actions)

这是 FuncLens 最强大的功能之一。你可以定义自己的脚本指令,让它们像原生功能一样显示在代码上方。

配置示例

"funclens.customActions": [
    {
        "title": "Echo Info",
        "command": "echo \"Processing {name} in {file}\"",
        "executionMode": "terminal"
    },
    {
        "title": "Run Python Analysis",
        "command": "python3 ${workspaceFolder}/scripts/analyze.py --file \"{file}\"",
        "executionMode": "process",
        "afterExecution": "openFile"
    }
]

配置项详解

字段 类型 说明
title string CodeLens 显示的标题(自动添加齿轮图标)。
command string 要执行的 Shell 命令。支持变量插值。
executionMode string terminal: 在 VS Code 集成终端中运行(可见)。
process: 后台运行(支持高级反馈协议)。
afterExecution string none: 结束后无动作。
openFile: 如果脚本输出了文件路径,提示用户打开。

支持的变量插值

在 command 字符串中可以使用以下变量:

  • VS Code 标准变量:

    • ${workspaceFolder}: 当前工作区根目录的绝对路径。
  • FuncLens 上下文变量:

    • {file}: 当前文件的绝对路径。
    • {name}: 当前函数/方法的名称。
    • {line}: 函数开始行号 (1-based)。
    • {startLine}: 同 {line}。
    • {endLine}: 函数结束行号 (1-based)。
    • {selection}: 选中的代码文本。
    • {block}: 包含选区的完整代码块文本。

📡 高级脚本交互协议

当 executionMode 设置为 process 时,您的脚本可以通过标准输出 (stdout) 与 VS Code UI 进行实时交互。

1. 实时更新状态 (::status::)

让用户知道脚本正在做什么,而不是一直显示枯燥的 "Runing..."。

Python 示例:

print("::status::正在连接数据库...", flush=True)
# ...
print("::status::正在生成报表...", flush=True)

2. 上报制品 (::artifact::)

脚本运行结束后,自动通知用户打开生成的文件。

Python 示例:

# 告诉插件生成了一个文件
print(f"::artifact::/path/to/report.html", flush=True)

FuncLens 会在右下角弹出通知:"Custom Action Completed. Generated 1 artifacts. Open them?"


📖 使用教程

  1. 环境准备: 确保您的机器上安装了必要的运行时(如 Node.js, Python 等),并配置好 funclens.agentCommand。
  2. 触发审查: 点击函数上方的 Review 按钮,AI 的建议会以评论的形式直接挂载在代码行上。
  3. 应用修改:
    • 对于 Review 评论,您可以点击 "Apply Fix"(如果提供)。
    • 对于 Refactor,插件会打开内联差异视图 (Inline Diff),您可以选择 Accept 或 Reject。
  4. 运行自定义脚本: 点击自定义的 CodeLens,观察状态变化,并在完成后一键打开生成的结果文件。

⌨️ 快捷键与命令

  • FuncLens: Review Code: 触发审查
  • FuncLens: Refactor Code: 触发重构
  • FuncLens: Generate Tests: 生成测试
  • FuncLens: Accept Changes: 接受差异 (仅在 Diff 模式下有效)
  • FuncLens: Reject Changes: 拒绝差异 (仅在 Diff 模式下有效)

Happy Coding with FuncLens!

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft