#linter #rules #error #syntax #warnings #checking #check

app linty

简单、无语言限制的代码检查器

6 个版本

0.4.0 2024年1月20日
0.3.3 2023年11月16日
0.2.0 2023年9月5日

#394文件系统

Download history 32/week @ 2024-03-29 7/week @ 2024-04-05

每月55次 下载

MIT 许可证

19KB
352

linty

简单、无语言限制的代码检查器

目录

背景

你是否曾修复了一个错误并希望警告其他开发者关于这个具体陷阱?

你是否希望有一种简单的方法来禁止代码库中的 TODO 项?

许多特定语言的代码检查器足够灵活,可以添加基于正则表达式的规则,但如果你想在代码库中禁止一个正则表达式,而不管文件是什么?如果你使用的是没有自己花哨代码检查器的语言呢?

这就是 Linty 的用武之地——它是一个简单、无语言限制的代码检查器,可以在代码库中检查正则表达式模式。

用法

Linty 在一系列 规则 上运行,每个规则都是一个正则表达式,一组包含文件名模式,一组排除文件名模式,以及相关的错误消息和严重性(警告或错误)。Linty 将每个正则表达式与包含文件名模式中找到的所有文件进行匹配,但不与排除文件名模式匹配,并相应地进行警告或错误。

默认情况下,Linty 在当前目录中查找 .lintyconfig.json 文件。您可以使用 --config-path 选项指定不同的路径。

{
  "rules": [
    {
      "id": "WarnOnTodos",
      "message": "Are you sure you meant to leave a TODO?",
      "regex": "(TODO|todo)",
      "severity": "warning",
    },
    {
      "id": "NoXcxcInDocs",
      "message": "Don't leave xcxc in docs!",
      "regex": "(XCXC|xcxc)",
      "severity": "error",
      "includes": ["**/*.md"],
      "excludes": ["**/testing/*.md"]
    }
  ]
}

对于每个规则,它将对提供的文件名模式集中找到的每个文件应用正则表达式。如果没有提供文件名模式,它将递归地将正则表达式应用于 所有 文件,从当前目录开始。在 ignore 文件名模式中包含的文件将被忽略。如果指定了 --pre-commit 选项,它将只对用 git 预提交的文件应用规则。如果向 Linty 传递显式的文件路径,它将只对那些文件应用规则(除非也指定了 --pre-commit,在这种情况下忽略此输入)。默认情况下,Linty 尊重 .gitignore 文件,但您可以使用 --ignore 启用检查 .gitignore 文件。同样,Linty 不会检查隐藏文件,但您可以使用 --hidden 启用。

如果任何 错误 规则失败,Linty 将报告所有失败的规则并以退出代码 1 退出。如果没有 错误 规则失败,Linty 将以退出代码 0 退出。如果 警告 规则失败,Linty 将要求用户手动确认警告。如果使用了 --error-on-warning 标志,则警告将被视为错误;如果使用了 --no-confirm 标志,Linty 将只打印警告,无需手动确认。

您还可以通过指定带有 --config-path 选项的 .lintyconfig.toml 来使用 TOML 语法

[[rules]]
id = "WarnOnTodos"
message = "Are you sure you meant to leave a TODO?"
regex = "(TODO|todo)"
severity = "warning"

[[rules]]
id = "NoXcxcInDocs"
message = "Don't leave xcxc in docs!"
regex = "(XCXC|xcxc)"
severity = "error"
includes = [ "**/*.md" ]
excludes = [ "**/README.md" ]

安装

在 macOS 上的 Homebrew

brew tap rwblickhan/linty
brew install linty

维护者

@rwblickhan

依赖项

~6–15MB
~182K SLoC