我想在终端上仅对git版本控制的项目中我修改过的行运行rubocop。目前,从搜索到的信息来看,我发现的脚本是针对整个修改后的文件工作的。
我发现了这个链接,但我从文档中了解到它会产生错误的肯定和否定。
Pronto是一个gem,可以安装pronto
和pronto-rubocop
实现这一功能。
如果需要,您可以使用这个gist https://gist.github.com/alkuzad/dd729aca36a810892772。我在使用pronto之前经常使用它(因为pronto对差异不太灵活)。您需要从https://github.com/jay/showlinenum安装showlinenum到~/bin中,以使其正常工作(或者只需修改gist中的路径)。
据我所见,似乎没有强制 Rubocop 检查某些行的选项,它只能按文件范围进行作用域。但是可以过滤 Rubocop 输出,仅突出显示修改的行。
这将仅显示当前 Git 存储库上已修改和未暂存文件的 Rubocop 违规:
rubocop $(git diff --name-only --diff-filter=d) | \
reviewdog -f=rubocop -diff="git diff" -fail-on-error -filter-mode="added"
需要Reviewdog https://github.com/reviewdog/reviewdog#installation
,
gem install pronto-rubocop,然后运行
pronto run -c my-branch-to-compare-with`。 - Keith Bennett