这个版本的Radar引入了两个工具,它们使用抽象语法树(AST)表示搜索和替换代码。它们占据的空间和jscodeshift但包含用于各种编程语言的解析器。虽然它们有一些相似之处,但也有一些不同之处。其中一个工具,蜂巢状的,其独特之处在于其简单的命令行界面设计的精神Unix工具,如awk
和sed
.虽然Unix命令基于正则表达式操作匹配文本,但Comby使用了一种特定于编程语言结构的模式语法,并在搜索之前解析代码。这有助于开发人员搜索大型代码库的结构模式。就像sed
, Comby可以用新的结构替换它匹配的模式。这对于自动化大规模更改大型代码库或跨一套微服务存储库进行重复更改非常有用。由于这些工具是相当新的,我们希望看到一系列尚未被发现的创造性用途。