You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式匹配:优化VSCode脚本查找代码,实现全场景匹配

VSCode脚本全场景匹配优化方案

核心优化方向

  • 通配符+正则复合匹配:放弃单一通配符规则,结合正则表达式覆盖更多边缘场景,比如带特殊字符的文件名、多扩展名脚本、嵌套层级不固定的目录
  • 精准排除无关项:过滤node_modules、.git、dist这类无需扫描的目录/文件,既提升效率又避免误匹配
  • 可扩展规则集:支持自定义脚本类型列表,适配不同技术栈的脚本文件(如.js/.ts/.py/sh/bat等)

优化后的扫描代码示例

const vscode = require('vscode');
const glob = require('glob');

function scanAllScripts() {
    const workspaceRoots = vscode.workspace.workspaceFolders;
    if (!workspaceRoots) return [];

    // 匹配多类型脚本文件,支持带特殊字符的文件名
    const scriptPattern = '**/*.{js,ts,py,sh,bat,cmd,mjs,cjs}';
    // 通用排除规则,可根据需求增减
    const ignoreRules = [
        '**/node_modules/**',
        '**/.git/**',
        '**/dist/**',
        '**/build/**',
        '**/coverage/**'
    ];

    const scanOptions = {
        cwd: workspaceRoots[0].uri.fsPath,
        ignore: ignoreRules,
        nodir: true, // 仅匹配文件,跳过目录
        dot: true, // 包含隐藏目录中的脚本
        strict: false // 兼容部分带特殊字符的路径
    };

    // 执行全量扫描并返回结果
    return glob.sync(scriptPattern, scanOptions);
}

进阶场景适配技巧

  • 版本号命名脚本匹配:用正则规则**/[a-z-]+-v\d+\.\d+\.\d+\.js匹配类似app-v2.3.1.js的版本化脚本
  • 内容导向匹配:扫描文件后追加内容校验,通过vscode.workspace.openTextDocument读取文件内容,匹配是否包含特定函数、注释或关键字
  • 多工作区扫描:遍历workspaceRoots数组,实现跨多个工作区的脚本全量匹配

内容的提问来源于stack exchange,提问作者user16491190

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:45:34