javascript - VSCode:在git staging时触发organizeImports
问题描述
我喜欢 VSCode 中的自动组织功能,但是每次保存都这样做给我带来了一些麻烦。
...
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
...
当我暂存它们时,是否可以设置一些 git 钩子来组织导入(通过 vscode 或其他脚本/lib)?
问题
如果我在使用导入的方法之前过早地点击保存(这样做是为了一直更漂亮) - 然后它会删除它,我必须再次编写导入。
如果我破坏了代码(.jsx)并且似乎没有使用某些东西并且我点击保存(以触发更漂亮),那么它会删除导入。然后我必须再次导入它们。
解决方案
运行时可以应用某种形式的钩子:在和中git add
定义的过滤器。gitconfig
.gitattributes
有关详细说明,请参阅git book 的这一部分。
以下是文档中的草图(它说明了如何配置过滤器以在*.txt
文件上运行):
- 运行时
git add
:
- 运行时
git checkout
:
您可以在您gitconfig
的过滤器中定义,该过滤器包含两个“清洁”和“涂抹”命令:
$ git config --global filter.jsximports.clean fiximports
$ git config --global filter.jsximports.smudge cat
并编辑.gitattributes
文件以将此过滤器应用于 jsx 文件
*.jsx filter=jsximports
要应用的脚本可能是tslint --fix
,与ordered-imports
规则。
实际上 :tslint
的规则似乎有自己的实现,但它做了类似的事情(见https://github.com/palantir/tslint/pull/4064)
在这个答案中:https://stackoverflow.com/a/57458656/86072
用户 thorn 指向这个 npm 包:
https://www.npmjs.com/package/organize-imports-cli
从cli调用organizeImports
推荐阅读
- makefile - 有没有办法打印生成文件中定义/可见的所有变量?
- emotion - 情感包问题-React
- python - 将 Pine 脚本转换为 Python
- javascript - 使用数组的映射创建html时子组件不会立即重新渲染
- visual-studio-code - 在 VSCode 中按 CTRL 时隐藏自动建议弹出窗口
- windows - 从其他批处理文件中调用批处理文件时,只有第一个被调用
- google-apps-script - 从 Google ContactsApp 返回公司名称、未定义的电话号码和标签组
- html - 如何将数据(字符串)从我的 html 发送到我的服务器(节点或快递)并使用它执行某些功能?
- shell - 如何在源 csh 中获取文件名
- playframework - Play 支持哪种类型的 OpenID