【问题标题】:VSCode: trigger organizeImports when git stagingVSCode:在git staging时触发organizeImports
【发布时间】:2019-10-20 07:49:21
【问题描述】:

我喜欢 VSCode 中的自动组织功能,但每次保存都这样做给我带来了一些麻烦。

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

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

问题

如果我在使用导入的方法之前过早地点击保存(这样做是为了一直更漂亮) - 然后它会删除它,我必须重新编写导入。

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

【问题讨论】:

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


    【解决方案1】:

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

    详情请见this section of 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 rule

    实际上: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

    【讨论】:

    • 非常感谢@LeGEC,这看起来是一条路。你知道fiximports 的工具/脚本吗?
    • @Norfeldt : 呵呵 :) 不。 “organizeImports”代码是打字稿代码库的一部分,但我还没有找到如何从命令行调用它。您可以针对该部分提出问题。
    • 我确实认为我的问题正是关于那部分的 ;-)
    • 感谢您发布这个?‍♂️?
    猜你喜欢
    • 2015-12-25
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多