Skip to content

vscode插件 - 统计AI代码行数

- 监听 -> 识别 -> 记录数据 -> 记录数据
  - 1.文档变更
  - 2.代码检测
    - 删除检查
    - 粘贴板检查
    - 空行检查
    - AI补全
    - AI生成
  - 1.文档变更
  - 1.文档变更
  - 1.文档变更



- UI展示(状态栏展示 -> 统计图表)

-
排除原因: 
  纯删除操作、
  检测到粘贴操作、  监测到变更和粘贴板是一致的
  纯空行变化 (只包含空白字符)
  行数低于阈值  修改一个字符、用户输入等不回超过两行

数据文件

js
path.join(this.storageUri.fsPath, 'environment.json'); //环境缓存文件
path.join(this.storageUri.fsPath, 'stats'); //存储目录
path.join(this.storageUri.fsPath, 'stats', `${year}-${month}`, `${date}.json`); //每日统计文件路径
path.join(this.storageUri.fsPath, 'user.json'); //用户信息
path.join(this.storageUri.fsPath, 'git-info-cache.json');
js


vscode.window.showInformationMessage('已清理超过7天的旧数据');
vscode.window.showErrorMessage(`清理旧数据失败: ${error}`);


const confirm = await vscode.window.showWarningMessage(
  '确定要清理所有统计数据吗?这将删除所有的AI代码统计记录,但不会影响您的登录状态。',
  '确定清理',
  '取消',
);
if (confirm === '确定清理') {}
vscode.window.createWebviewPanel('aiCodeStatsChart', title, vscode.ViewColumn.One, {
      enableScripts: true,
      retainContextWhenHidden: true,
    });
statsManager.getTodaySummary();
memoryCache

遇到问题

  • 如果 Copilot一行一行写入,会被行数低于阈值拦截,即使同一文件

上次更新时间:

最近更新