强制跨多个语言无关项目执行相同的设置
项目描述
命令行工具和flake8插件,用于强制跨多个语言无关项目执行相同的设置。
如果您维护多个项目并且厌倦了在所有项目中重复复制/粘贴相同的INI/TOML/YAML/JSON键和值,这将很有用。
CLI现在有一个nitpick fix命令,可以直接修改配置文件(类似于black和isort对Python文件所做的操作)。有关更多信息,请参阅CLI文档。
未来计划了更多功能,请检查路线图。
样式文件
“代码风格挑剔”是一种TOML文件,其中应包含来自其他工具的配置文件应具有的设置。
风格示例
["pyproject.toml".tool.black]
line-length = 120
["pyproject.toml".tool.poetry.dev-dependencies]
pylint = "*"
["setup.cfg".flake8]
ignore = "D107,D202,D203,D401"
max-line-length = 120
inline-quotes = "double"
["setup.cfg".isort]
line_length = 120
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
combine_as_imports = true
此风格将断言
支持的文件类型
以下是Nitpick当前处理的文件类型。
某些文件需要被检查并需要手动修改;
某些文件可以自动修复(使用nitpick fix命令);
其他文件仍在建设中;表格中显示了工单编号(如果您想优先开发,请点赞👍🏻工单)。
已实现
文件类型 |
nitpick检查 |
nitpick修复 |
---|---|---|
✅ |
✅ |
|
✅ |
✅ |
|
✅ |
❌ |
|
✅ |
✅ |
|
✅ |
✅ |
|
✅ |
✅ |
|
✅ |
✅ |
|
✅ |
✅ |
计划
文件类型 |
nitpick检查 |
nitpick修复 |
---|---|---|
任何Markdown文件 |
#280 🚧 |
❓ |
任何Terraform文件 |
#318 🚧 |
❓ |
Dockerfile |
#272 🚧 |
#272 🚧 |
.dockerignore |
#8 🚧 |
#8 🚧 |
.gitignore |
#8 🚧 |
#8 🚧 |
Jenkinsfile |
#278 🚧 |
❓ |
Makefile |
#277 🚧 |
❓ |
风格库(预设)
Nitpick有一个内置的风格预设库,作为Python资源提供。
此库包含构建自定义风格的构建块。只需从下表中选择样式并创建自己的风格,就像乐高一样。
阅读如何
任何
风格URL |
描述 |
---|---|
javascript
风格URL |
描述 |
---|---|
kotlin
风格URL |
描述 |
---|---|
markdown
风格URL |
描述 |
---|---|
预设
风格URL |
描述 |
---|---|
proto
风格URL |
描述 |
---|---|
python
风格URL |
描述 |
---|---|
Python 3.10 |
|
Python 3.11 |
|
Python 3.12 |
|
Python 3.8 |
|
Python 3.9 |
|
不应存在的文件 |
|
shell
风格URL |
描述 |
---|---|
toml
风格URL |
描述 |
---|---|
快速入门
安装
使用pipx在隔离的全局环境中安装
# Latest PyPI release pipx install nitpick # Development branch from GitHub pipx install git+https://github.com/andreoliwa/nitpick
在macOS/Linux上,使用Homebrew安装
# Latest PyPI release brew install andreoliwa/formulae/nitpick # Development branch from GitHub brew install andreoliwa/formulae/nitpick --HEAD
在Arch Linux上,使用yay安装
yay -Syu nitpick
使用Poetry将Nitpick添加到您的项目中
poetry add --dev nitpick
或者使用pip安装它
pip install -U nitpick
运行
Nitpick如果没有明确配置样式将失败。运行此命令以下载并使用有偏见的默认样式文件 <nitpick-style.toml>
nitpick init
您可以使用它作为模板来 配置您自己的样式。
直接修复和修改您的文件
nitpick fix
仅检查错误
nitpick check
Nitpick也是一个 flake8 插件,因此您可以在至少有一个Python(.py)文件的项目中运行它
flake8 .
作为预提交钩子运行
如果您在项目中使用 pre-commit,请将此添加到您的仓库中的 .pre-commit-config.yaml
repos: - repo: https://github.com/andreoliwa/nitpick rev: v0.35.0 hooks: - id: nitpick
有3个可用的钩子ID
nitpick 和 nitpick-fix 都运行 nitpick fix 命令;
nitpick-check 运行 nitpick check。
如果您想将Nitpick作为flake8插件运行
repos: - repo: https://github.com/PyCQA/flake8 rev: 4.0.1 hooks: - id: flake8 additional_dependencies: [nitpick]
作为MegaLinter插件运行
如果您使用 MegaLinter,您可以将其作为插件运行。将以下两个条目添加到您的 .mega-linter.yml 配置文件中
PLUGINS:
- https://raw.githubusercontent.com/andreoliwa/nitpick/v0.35.0/mega-linter-plugin-nitpick/nitpick.megalinter-descriptor.yml
ENABLE_LINTERS:
- NITPICK
更多信息
Nitpick正在被以下项目使用
有关样式和当前支持的配置文件的更多详细信息,请查看完整文档。
贡献
您的帮助非常受赞赏。
在此项目中有很多新功能的可能性,但没有足够的时间和人力来处理它们。
如果您想为此项目做出贡献,请按照贡献指南中的步骤设置您的开发环境,并发送您的拉取请求。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。