VSCode:git登台时触发OrganizeImports

时间:2019-06-04 18:48:39

标签: javascript git visual-studio-code jsx githooks

我喜欢VSCode中的自动整理功能,但是每次保存时都使用它会给我带来麻烦。

...
"editor.codeActionsOnSave": {
    "source.organizeImports": true
  },
...

是否可以在我暂存导入时设置一些git挂钩来组织导入(通过vscode或其他脚本/ lib)?

问题

如果在我使用导入的方法之前过早地进行保存(一直使它更加漂亮),那么它将删除它,而我必须再次编写导入。

如果我破坏了代码(.jsx),并且似乎没有使用某些东西,并且我点击了save(触发更漂亮),那么它将删除导入。然后,我必须再次导入它们。

1 个答案:

答案 0 :(得分:2)

运行git add时可以应用某种形式的hook:gitconfig.gitattributes中定义的过滤器。

有关详细说明,请参见this section of git book


以下是文档中的示意图(它说明了如何配置过滤器以在*.txt文件上运行):

  • 运行git add时:

apply the "clean" filter when adding files

  • 运行git checkout时:

apply the "smudge" filter when adding files

您可以在gitconfig中定义一个过滤器,该过滤器由两个用于“清理”和“涂抹”的命令组成:

$ git config --global filter.jsximports.clean fiximports
$ git config --global filter.jsximports.smudge cat

并编辑.gitattributes文件以将此过滤器应用于jsx文件

*.jsx    filter=jsximports

要应用的脚本可能是tslint --fix,带有ordered-imports rule

实际上:tslint的规则似乎有其自己的实现,但它做了类似的事情(请参见https://github.com/palantir/tslint/pull/4064