当前位置:首页 > 下载列表 > Run pre/post save commands and custom linters.

Run pre/post save commands and custom linters. 1.4.0

SaveRunnerforVisualStudioCode:提升开发效率的强大扩展SaveRunnerforVisualStudioCode是一款功能强大的扩展工具,旨在为开发者提供在文件保存前后运行命令的能力。这款扩展受到了emeraldwalk.runonsave和eslint扩展的启发,旨在弥补eslint在保存时无法正确修复的问题。主要功能:预处理文件并保存结果:在保
分类:   下载/工具 · 工具软件 来源:  点击进入 版本:  1.4.0
日期:  2025-04-27 人气:   大小:  
标签:   eslint fix onDidSaveTextDocument onWillSaveTextDocument run before save run on save
点击下载 相关下载
功能介绍

Save Runner for Visual Studio Code:提升开发效率的强大扩展

Save Runner for Visual Studio Code是一款功能强大的扩展工具,旨在为开发者提供在文件保存前后运行命令的能力。这款扩展受到了emeraldwalk.runonsave和eslint扩展的启发,旨在弥补eslint在保存时无法正确修复的问题。

主要功能:

  • 预处理文件并保存结果: 在保存前对文档进行预处理,并将处理后的结果保存。
  • 多预处理器支持: 将文档输送给多个预处理器,实现复杂的处理流程。
  • 临时文件支持: 对于不支持管道的保存前命令,可以使用临时文件。
  • 正则表达式匹配: 通过正则表达式匹配触发命令运行的文件。
  • 同步和异步支持: 保存后命令支持同步和异步执行。

配置示例:

interface Config extends vscode.WorkspaceConfiguration {
    enabled: boolean; // 默认值为false

    // 更新时显示输出面板
    showOutput: boolean; // 默认值为false

    // 在指定的shell下执行前/后命令。
    shell: string; // 默认值为''

    // 在运行命令前自动清除输出通道。
    autoClearOutput: boolean;

    // 要运行的命令
    commands: Command[];
}

interface Command {
    enabled?: boolean; // 默认值为false
/include?: string; // 匹配文件名的正则表达式
    exclude?: string; // 排除文件名的正则表达式

    // 保存前使用临时文件,将${tmpFile}传递给命令。
    useTempFile?: boolean; // 默认值为true

    // 异步运行保存后命令。
    isAsync?: boolean; // 默认值为false

    // 在文档保存前运行的命令,文档将被命令链的stdout替换。
    // 如果useTempFile为false,文档将被管道到命令中。
    pre: string | string[];

    // 在文件成功保存到磁盘后运行的命令。
    post: string | string[];
}

使用示例:

在保存前运行eslint_d --fix并更新文档:

    "save-runner.enabled": true,
    "save-runner.commands": [
        // 将当前文档写入临时文件,运行eslint_d --fix,
        // 然后对修改后的临时文件运行diff,并将其应用到文档中。
        {
            "enabled": false,
            "include": "\\.[tj]sx?$",
            "exclude": "/node_modules/",
            "pre": "eslint_d --fix ${tmpFile}",
            "post": "echo saved ${relname}"
        },
        // 将当前文档管道到goimports,
        // 然后对goimports的输出运行diff并将其应用到文档中。
        {
            "enabled": true,
            "include": "\\.go$",
            "useTempFile": false,
            "pre": "goimports",
            "post": "echo saved ${relname}"
        }
    ]

命令中的占位符:

  • ${tmpFile}:当useTempFile设置时,临时文件路径
  • ${workspaceRoot}:工作区根文件夹
  • ${file}:文件的完整路径
  • ${relname}:不包含工作区路径的文件路径
  • ${ext}:文件扩展名
  • ${dirname}:保存文件的目录名
  • ${basename}:保存文件的基本名称
  • ${basenameNoExt}:保存文件的基本名称,不含扩展名
  • ${cwd}:当前工作目录
  • ${env.name}:按名称匹配环境变量

未来计划:

  • 检测可以返回diff的命令(例如goimports),并使用该diff而不是使用内部diff。

相关链接:

  • 市场
  • 源代码

许可证:

MIT

版本声明
本文转载于:https://marketplace.visualstudio.com/items?itemName=oneofone.save-runner 如有侵犯,请联系study_golang@163.com删除
查看更多
课程推荐
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    204次学习
  • MySQL数据管理之备份恢复案例解析视频教程
    MySQL数据管理之备份恢复案例解析视频教程
    《MySQL数据管理之备份恢复案例解析视频教程》MySQL是一个开放源码的小型关联式数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
    160次学习
  • MySQL索引优化解决方案
    MySQL索引优化解决方案
    本套课程是根据MySQL索引的设计理念与数据结构、索引使用场景、索引分类、索引运用场景、索引性能分析、查询优化、MySQL索引的慢查询等组成,主要讲述了MySQL索引优化的解决方案,非常适合有MySQL使用基础或者有一定工作经验的同学。课程讲解了解决大数量查询慢的问题、如何编写一个高效的SQL、查询语句应该如何优化、索引的实现原理是什么、索引又应该如何优化...等诸多SQL索引优化的难点和面试点。
    182次学习
  • 极客学院Docker视频教程
    极客学院Docker视频教程
    Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是各大厂商的支持,都使Docker成为了时下最受关注的技术,甚至微软都声称在下一代WindowsServer中集成对Docker的支持。所以我们收集了《极客学院Docke
    243次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    127次学习
  • JavaScript极速入门
    JavaScript极速入门
    本套课程将帮助大家迅速掌握JavaScript这门高端的、动态的、弱类型编程语言。知识点简单明了,让你学习0压力,适合新手观看学习......
    431次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码