Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>AI Suggestion TrackerNew to Visual Studio Code? Get it now.
AI Suggestion Tracker

AI Suggestion Tracker

zhaopin-ai-maker

| (0) | Free
自动标记AI生成的代码建议
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

vscode-ai-code-marker

一个用于“统计与可视化 AI 生成代码”的 VS Code 扩展。以“侧车文件 + 装饰”的方式标识 AI 代码,不污染源码,适配 Cursor/VS Code 的日常开发习惯。

AI 代码的定义(口径)

  • 以“最后修改者”为口径:当某一行的最后一次修改行为判定为 AI 生成时,这一行即被定义为 AI 代码。
  • 存量代码不追溯;仅对新增或变更的代码行进行判定与标记。

工作方式概览

  • 标记数据存储在侧车文件 .ai-tracker/markers.json 中,编辑器内通过彩色标签装饰展示,不写入源码。
  • 在接受补全、粘贴、键入等事件中,基于启发式与负样本过滤,实时为新增行打标或为被人工修改的行去标。
  • 标记随文档编辑偏移而移动(插入/删除),不会因移动/格式化而失真。

打标与去标规则(完整版)

以下说明涵盖“判定来源(AI/人工)”“何时打标/去标”“何时仅做平移”与“永不处理”的完整口径。

判定来源(AI/人工)

  • 以下操作一律判定为“人工”,不打标(或仅做去标/平移):

    • 连续敲键输入的小段文字(正常手打)
    • 回车/缩进(只产生换行或空白)
    • 粘贴(剪贴板来的内容)
    • 撤销/重做(Ctrl+Z / Ctrl+Y)
    • 行移动(剪切后粘贴、上下移动行)
    • 格式化/整理导入/统一缩进等代码样式调整
    • 删除/新增空行
    • 仅增删空格或 Tab
  • 只要不属于上面这些“人工”场景,且出现了“突然冒出的一大段或多行内容”,就视为 AI 插入并打标;尤其是距离上一次敲键已经过了一会儿(例如 > 1s)时。

  • 补充说明:如果你在“已打标的行”里改了非空白字符,这一行会被去标(因为最后修改者变成了你)。

打标(新增 AI 行)

  • tab按键接受AI代码
  • Agent模式下接受AI代码

去标(移除 AI 标记)

  • 单行编辑:
    • 删除/插入/替换若包含任一“非空白字符”,去掉该行标记;
    • 若仅为空白(空格/Tab),不去标。
  • 跨行编辑:
    • 从起始行“行尾”开始跨行删除(多为合并换行),起始行视为未改动,不去标;
    • 中间完整删除的行:若本行原本有标记,随行被删自然移除;
    • 结束行:如果删除到结束行“行首”,不去标;若删除了结束行的“前缀内容”且包含非空白,则去标结束行。
  • 单行“替换为纯空白”:不去标(等价为空白编辑)。

仅做平移(不打标/不去标)

  • 撤销/重做(Undo/Redo):仅根据内容变更做行号平移,不进行打标与去标判定。
  • 删除/新增“纯空行”:下方标记整体上移/下移,标记本身不变化。
  • 行移动:识别为移动,标记随文本移动。

永不处理(直接忽略)

  • 侧车文件目录 .ai-tracker/ 内的所有文件;
  • 不在当前活动编辑器的文档(避免异步涟漪影响)。

标记平移(Operational Transform)

  • 插入包含 N 个换行:所有“在变更行号之后”的标记行号 +N;
  • 跨行删除(startLine→endLine):所有“在 endLine 及之后”的标记行号 −(endLine − startLine);
  • 单行内编辑:行号不变;
  • 删除空行(上方/下方):仅产生 ±1 的行号偏移,不改变是否打标的属性。

典型场景举例

  • 接受多行 AI 补全:

    • 该变更事件内插入的每一行均会被打标。
  • 接受单行 AI 补全:

    • 该行被打标
  • 在已打标行尾增加空格:

    • 原行标记保留
  • 在已打标行末回车生成空行/缩进:

    • 原行标记保留;新行不打标
  • 在已打标行中间改动字符/替换内容:

    • 该行标记移除(视为人工修改)。
  • 选中“已打标行的行尾到下一行”的区间做删除:

    • 仅移除下一行及之后被删行的标记;起始行内容未改动,保留标记。
  • 删除已打标行本身:

    • 该行标记随文本删除自然消失;下方标记按行数上移。
  • 在多行 AI 代码块中删除中间若干行:

    • 被删行的标记移除;块内后续行标记按删除行数上移;块外不受影响。
  • 从已打标行尾开始,选中至多行并删除:

    • 起始行内容未被删,起始行标记保留;被删的后续行标记移除;其后的标记上移。
  • 行移动(向上/向下移动若干行):

    • 删除该行及移动经过的行的AI标记。
  • 格式化/组织导入/统一缩进:

    • 识别为仅空白或结构性调整,不新增/删除标记。
  • 快捷键重命名变量/方法名:

    • 使用该变量/方法的代码行均删除标记
  • 快捷键重命名文件:

    • 类定义行及使用类名行代码AI标记删除
    • 其余行标记不变
  • 快捷键提取方法/变量:

    • 方法/变量行AI标记删除
  • 查找替换(Find/Replace、正则替换、跨文件替换):

    • 替换行删除AI标记
  • 多光标/列编辑/矩形选择批量改动:

    • 操作代码行删除AI标记
  • 代码动作/Quick Fix:

    • 根据开发工具的提示项选择产生的代码变更删除AI标记
  • 扩展/脚手架/代码生成器改写:

    • cursor中右键源代码操作生成的代码(Generate Getter/toString/implements/hashCode/constructors)-删除AI标记
    • cursor源代码操作-Sort member 产生的变更视为人工操作,删除AI标记
    • Spring Generate、mybatis;插件生成的代码不应该有AI标记(不可能覆盖所有组件,待实现)
  • 代码撤销/重做:

    • 涉及的代码行删除AI标记
  • 合并冲突解决:

    • 涉及的代码行删除AI标记(待验证)
  • Git/外部工具回写文件(rebase/patch/hook/脚本格式化):

    • 涉及的代码行删除AI标记(待验证)

安装与使用

  1. 安装依赖
npm install
  1. 编译
npm run compile
  1. 运行测试(可选)
npm run test
  1. 在 VS Code/Cursor 中调试运行该扩展

配置项(可选)


统计与产出

  • 侧车文件 .ai-tracker/markers.json 为统计数据源,配合 MR/PR Diff 可得 AI 占比等指标。
  • 标记可人工纠偏(选区去标/加标后续可扩展为命令)。

说明

  • 本扩展在 Cursor/VS Code 环境中工作良好;不依赖 Tab 拦截。
  • 打标逻辑采用启发式与负样本过滤结合,追求“低误判 + 不干扰开发”。
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft