用于确保WPILib源代码符合其风格指南的linters和formatters
项目描述
提供linters和formatters,以确保WPILib的C++、Java和Python代码符合其风格指南。WPILib使用Google风格指南的变体。
依赖关系
安装
在Windows上,执行
py -m pip install wpiformat
在Linux/OSX上,执行
pip install wpiformat
项目设置
要使用这些工具与新的项目一起使用,从示例文件夹中复制.styleguide和.styleguide-license到项目中,并根据所需的C/C++风格创建一个新的.clang-format文件。
注意:由于wpiformat已经处理了包含顺序,建议在.clang-format中使用SortIncludes: false。
.styleguide
wpiformat会在当前目录中检查.styleguide文件。如果不存在,还会尝试所有父目录。有关所有可能组的详细信息,请参阅docs/examples目录中的.styleguide文件。
该文件包含文件名正则表达式的组。有两个正则表达式组,它们可以阻止任务(即格式化和代码检查器)在匹配的文件上运行
生成文件
可修改文件
生成文件不应被修改;如果被修改,wpiformat将发出警告。对可修改文件的修改不会发出警告。所有在仓库的.gitignore文件中由模式忽略的文件都被视为可修改文件。排除组优先于包含组。
匹配licenseUpdateExclude组中正则表达式的文件将被跳过许可证头更新任务。
空配置组可以省略。目录分隔符必须是“/”,而不是“". 在处理过程中,它们将内部替换为自动转义的正则表达式中的os.sep。
有效的包含保护模式使用大写字母,以存储库名称开头,包含文件的路径以及文件名本身,并将目录分隔符和连字符替换为下划线,并以下划线结尾。文件路径默认从存储库根开始。可以在includeGuardRoots组中指定其他路径,例如包含目录。如果路径匹配,该字符串将从包含保护模式中截断。
例如,给定一个位于allwpilib/src/main/native/include/wpiutil/support/ConcurrentQueue.h的文件和一个包含路径为src/main/native/include/,生成的包含保护将是ALLWPILIB_WPIUTIL_SUPPORT_CONCURRENTQUEUE_H_。
repoRootNameOverride组允许用户覆盖在包含保护中使用的存储库名称。这对于在存储库内部的不同子项目中使用不同的存储库根非常有用。在此组中只指定一个名称,因为后续的名称将被忽略。
includeRelated、includeCSys、includeCppSys、includeOtherLibs和includeProject组分别对应于风格指南中的头文件组。如果头文件名称与某个组中的正则表达式匹配,它将覆盖默认顺序并放置在相应的组中。正则表达式组按包含组优先级顺序检查。
C系统头文件的正则表达式对“其他库”的头文件产生假阳性。应该将它们的正则表达式添加到includeOtherLibs。具有许多头文件的库通常将它们分组在一个文件夹中,所以只需要一个针对文件夹的正则表达式就足够了。
可以在头文件包含的注释中附加NOLINT,以防止wpiformat的头文件包含排序器修改它并保持与其他头文件包含的相对顺序。这将有效地将其视为一个障碍,跨越该障碍不会移动任何头文件包含。障碍两边的头文件包含仍按正常排序。
.styleguide-license
该文件包含许可证头模板。它应该包含版权所有(c),然后是公司名称和字符串{year}。请参阅docs/examples目录中的.styleguide-license文件。
wpiformat首先会在当前处理的文件目录中检查是否存在.styleguide文件,如果未找到,则向上遍历目录树。这允许距离处理文件更近的模板覆盖项目的默认模板。
许可证头始终位于文件开头,并在两个换行符之后结束。如果没有许可证头,或者它不包含所需的版权内容,wpiformat会插入一个新的许可证头,其中包含当前年份。
{year}将被替换为文件中最早版权年份到当前年份的年份范围。如果最早年份是当前年份,则只写该年份。
{padding}是可选的,代表一个扩展空间,用于将行填充到80列。同一行上多个{padding}实例将平均分配填充空间。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分发
构建发行版
wpiformat-2024.42.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4628d966a7cf2c20b080a71dd3317e4cf132d3a38d1d7796b51d31ffba8da801 |
|
MD5 | ceaf5c74dbe3a463f806685d920f56ff |
|
BLAKE2b-256 | b8097b5face85daab5bc31978f0eecbf0f561ef4a84e7442d6a23bb6e30b455f |
wpiformat-2024.42-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f73dea05459891590b133e4818676052bbc9800b75d53a8c7dcbe5c849e959d5 |
|
MD5 | 252c3408ff97b950aadb556f166aab01 |
|
BLAKE2b-256 | ea81dfa24ccf2c4a9d3260314168433aa0fe43356f233b9b2efead95a6d1b3f7 |