跳转到主要内容

用于确保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组允许用户覆盖在包含保护中使用的存储库名称。这对于在存储库内部的不同子项目中使用不同的存储库根非常有用。在此组中只指定一个名称,因为后续的名称将被忽略。

includeRelatedincludeCSysincludeCppSysincludeOtherLibsincludeProject组分别对应于风格指南中的头文件组。如果头文件名称与某个组中的正则表达式匹配,它将覆盖默认顺序并放置在相应的组中。正则表达式组按包含组优先级顺序检查。

C系统头文件的正则表达式对“其他库”的头文件产生假阳性。应该将它们的正则表达式添加到includeOtherLibs。具有许多头文件的库通常将它们分组在一个文件夹中,所以只需要一个针对文件夹的正则表达式就足够了。

可以在头文件包含的注释中附加NOLINT,以防止wpiformat的头文件包含排序器修改它并保持与其他头文件包含的相对顺序。这将有效地将其视为一个障碍,跨越该障碍不会移动任何头文件包含。障碍两边的头文件包含仍按正常排序。

.styleguide-license

该文件包含许可证头模板。它应该包含版权所有(c),然后是公司名称和字符串{year}。请参阅docs/examples目录中的.styleguide-license文件。

wpiformat首先会在当前处理的文件目录中检查是否存在.styleguide文件,如果未找到,则向上遍历目录树。这允许距离处理文件更近的模板覆盖项目的默认模板。

许可证头始终位于文件开头,并在两个换行符之后结束。如果没有许可证头,或者它不包含所需的版权内容,wpiformat会插入一个新的许可证头,其中包含当前年份。

{year}将被替换为文件中最早版权年份到当前年份的年份范围。如果最早年份是当前年份,则只写该年份。

{padding}是可选的,代表一个扩展空间,用于将行填充到80列。同一行上多个{padding}实例将平均分配填充空间。

项目详情


发布历史 发布通知 | RSS订阅

下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分发

wpiformat-2024.42.tar.gz (117.1 kB 查看哈希值)

上传时间 源码

构建发行版

wpiformat-2024.42-py3-none-any.whl (129.0 kB 查看哈希值)

上传时间 Python 3

由以下支持