通用纯文本 linting 工具
General purpose plain-text linting tool
我正在寻找一个命令行工具,我可以在其中为可以提供 errors/warnings 当 运行 时,就像在构建期间一样。这些将扫描所有类型的纯文本源代码。
我知道有针对特定语言的工具...我也打算使用这些工具。例如,此工具用于我们想要标记我们不想投资编写 Rosyln 规则的快速模式。我想以 easy 的方式标记某些模式或 API 用法,其中 anyone 可以添加新规则而不用想太多.很多时候我们不添加规则,因为它很难。
源标记化等功能是额外的好处。开源/免费是超级奖励。
有这样的工具吗?
如果你想要老式的,你可以为这一个除掉 Awk。
它逐行扫描文件(对于某些可配置的行定义,具有合理的默认值)将它们切成碎片(在空白 IMMSMR 上)并应用一组正则表达式并触发匹配正则表达式后面的代码。有一些条件可以匹配文件的开头和结尾来打印headers/footers.
这似乎是你想要的,但恕我直言,perl 或 ruby 脚本更容易,并且很久以前就已经为我取代了 AWK。但它对于您的用例 AFAICT 来说简单明了。
我们的 Source Code Search Engine (SCSE) 可以做到这一点。
SCSE 词法(使用语言准确的标记化,包括跳过特定语言的空格但保留注释)一组源文件,然后为每个标记类型构建一个标记索引。可以为 SCSE 提供基于令牌的搜索查询,例如:
'if' '(' I '='
在源代码中搜索模式;此示例 "lints" 类似 C 的代码,用于在 IF 语句中因意外使用“=”而不是预期的“==”而导致分配变量(I for "identifier")的常见错误。
搜索是使用令牌索引完成的,以加快搜索速度。通常 SCSE 可以在几秒钟内搜索数百万行代码,比 grep 或其他坚持为每个查询读取文件内容的方案快得多。它还会产生更少的误报,因为令牌检查是准确的,而且查询更容易编写,因为不必担心 white space/line breaks/comments.
可以记录或仅计算对模式的命中列表。
通常SCSE是交互使用的;查询会产生一个命中列表,单击一个命中会生成一个包含命中的源文本页面视图。但是,也可以在 SCSE 上编写脚本调用。
SCSE 可以通过大约 40 种语言的语言精确词法分析器获得。
我正在寻找一个命令行工具,我可以在其中为可以提供 errors/warnings 当 运行 时,就像在构建期间一样。这些将扫描所有类型的纯文本源代码。
我知道有针对特定语言的工具...我也打算使用这些工具。例如,此工具用于我们想要标记我们不想投资编写 Rosyln 规则的快速模式。我想以 easy 的方式标记某些模式或 API 用法,其中 anyone 可以添加新规则而不用想太多.很多时候我们不添加规则,因为它很难。
源标记化等功能是额外的好处。开源/免费是超级奖励。
有这样的工具吗?
如果你想要老式的,你可以为这一个除掉 Awk。
它逐行扫描文件(对于某些可配置的行定义,具有合理的默认值)将它们切成碎片(在空白 IMMSMR 上)并应用一组正则表达式并触发匹配正则表达式后面的代码。有一些条件可以匹配文件的开头和结尾来打印headers/footers.
这似乎是你想要的,但恕我直言,perl 或 ruby 脚本更容易,并且很久以前就已经为我取代了 AWK。但它对于您的用例 AFAICT 来说简单明了。
我们的 Source Code Search Engine (SCSE) 可以做到这一点。
SCSE 词法(使用语言准确的标记化,包括跳过特定语言的空格但保留注释)一组源文件,然后为每个标记类型构建一个标记索引。可以为 SCSE 提供基于令牌的搜索查询,例如:
'if' '(' I '='
在源代码中搜索模式;此示例 "lints" 类似 C 的代码,用于在 IF 语句中因意外使用“=”而不是预期的“==”而导致分配变量(I for "identifier")的常见错误。
搜索是使用令牌索引完成的,以加快搜索速度。通常 SCSE 可以在几秒钟内搜索数百万行代码,比 grep 或其他坚持为每个查询读取文件内容的方案快得多。它还会产生更少的误报,因为令牌检查是准确的,而且查询更容易编写,因为不必担心 white space/line breaks/comments.
可以记录或仅计算对模式的命中列表。
通常SCSE是交互使用的;查询会产生一个命中列表,单击一个命中会生成一个包含命中的源文本页面视图。但是,也可以在 SCSE 上编写脚本调用。
SCSE 可以通过大约 40 种语言的语言精确词法分析器获得。