【问题标题】:How to use R styleR with pre-commit and renv如何将 R styleR 与 pre-commit 和 renv 一起使用
【发布时间】:2020-09-01 20:58:15
【问题描述】:

我已经用 rvenv 创建了一个虚拟环境,所以我现在在我的项目根目录中有 rvenv/。我还安装了styler,并希望有一个预提交钩子将其应用于 R 代码。

从这里:https://github.com/lorenzwalthert/precommit/blob/master/.pre-commit-hooks.yaml 如下:

-   id: style-files
    name: style-files
    description: style files with styler
    args: [--style_pkg=styler, '--style_transformers=tidyverse_style(scope = "tokens")']
    entry: inst/bin/style-files
    language: script
    files: '(\.R|\.Rmd|\.Rnw|\.r|\.rmd|\.rnw)$'

我对应该给entry: 的路径感到困惑,在这个片段中,它是指向styler 的全球版本的路径(或者至少,我假设如此)。但是我希望能够使用我在我假设的虚拟环境中安装的版本。

我的问题是 - 如何去做。如果我不应该使用安装在renv/ 中的版本,那么我很高兴听到(并使用)围绕创建可在我的和其他系统上运行的 R 文件样式的预提交挂钩的最佳实践。

编辑

按照下面的答案,我还必须安装 docopt (as outlined here)。

【问题讨论】:

    标签: r git pre-commit-hook pre-commit pre-commit.com


    【解决方案1】:

    通常您依靠远程存储库来提供配置(这样您就不需要所有的args / entry / 等设置

    例如,如果您想使用您列出的存储库中的style-files,您可以在.pre-commit-config.yaml 中进行设置:

    repos:
    -   repo: https://github.com/lorenzwalthert/precommit
        rev: v0.1.2
        hooks: 
        -   id: style-files
    

    您可以从那里自定义args / 等。

    【讨论】:

    • 谢谢 - 我有点困惑,因为我以为我会添加 styler 存储库而不是 precommit 存储库?添加了上述钩子后,我仍然无法使用预提交设置 R 文件的样式,我将更新 OP 以反映这一点
    • @baxx {precommit} 钩子使用语言script,参见pre-commit docs。这种类型的钩子不支持文档中所写的虚拟环境。在您的情况下,使用全局 R 安装和包。要(正确)使用 renv,首先需要将其实现为受支持的语言,类似于conda was implemented。我不确定虚拟环境是否在预提交和项目的源代码之间共享,也许 Anthony 可以澄清一下。
    猜你喜欢
    • 2016-08-18
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多