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云原生架构师课程
- Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
- 204次学习
-
- MySQL数据管理之备份恢复案例解析视频教程
- 《MySQL数据管理之备份恢复案例解析视频教程》MySQL是一个开放源码的小型关联式数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
- 160次学习
-
- MySQL索引优化解决方案
- 本套课程是根据MySQL索引的设计理念与数据结构、索引使用场景、索引分类、索引运用场景、索引性能分析、查询优化、MySQL索引的慢查询等组成,主要讲述了MySQL索引优化的解决方案,非常适合有MySQL使用基础或者有一定工作经验的同学。课程讲解了解决大数量查询慢的问题、如何编写一个高效的SQL、查询语句应该如何优化、索引的实现原理是什么、索引又应该如何优化...等诸多SQL索引优化的难点和面试点。
- 182次学习
-
- 极客学院Docker视频教程
- Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是各大厂商的支持,都使Docker成为了时下最受关注的技术,甚至微软都声称在下一代WindowsServer中集成对Docker的支持。所以我们收集了《极客学院Docke
- 243次学习
-
- Golang进阶实战编程
- 本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
- 127次学习
-
- JavaScript极速入门
- 本套课程将帮助大家迅速掌握JavaScript这门高端的、动态的、弱类型编程语言。知识点简单明了,让你学习0压力,适合新手观看学习......
- 431次学习
查看更多
相关文章
-
- Golangmap实践及实现原理解析
- 2022-12-28 505浏览
-
- GoLand调式动态执行代码
- 2023-01-13 502浏览
-
- 试了下Golang实现try catch的方法
- 2022-12-27 502浏览
-
- 用Nginx反向代理部署go写的网站。
- 2023-01-17 502浏览
-
- MySQL主从切换的超详细步骤
- 2023-01-01 501浏览
-
- Mysql-普通索引的 change buffer
- 2023-01-25 501浏览