6个版本 (破坏性)
0.6.1 | 2024年7月4日 |
---|---|
0.6.0 | 2024年7月1日 |
0.5.0 | 2024年6月14日 |
0.4.0 | 2024年6月13日 |
0.1.0 | 2024年4月29日 |
#639 in 文本处理
每月113次下载
在6个crate中使用了(直接使用4个)
22KB
442 行
mantra-lang-tracing
此crate包含从代码或纯文本文件收集需求跟踪所需的功能。跟踪是需求定义与在代码中实现位置之间的链接。
用法
纯文本收集器
可以使用PlainCollector
从纯文本文件收集跟踪。收集形式为[req(<requirement id(s)>)]
的跟踪,按行收集。
示例
This line has a valid trace. [req(valid_trace)]
Traces cannot span multiple lines. [req(
invalid_trace)]
抽象语法树收集器
可以使用AstCollector
从代码文件的抽象语法树中收集跟踪。它使用tree-sitter
创建AST,并允许定义一个收集器函数,尝试从AST节点中收集跟踪。
此收集器可以作为创建编程语言跟踪收集器的基础。
指定需求ID
extract_req_ids*()
函数提供了一种提取跟踪中需求ID的一致方法。应在自定义收集器实现中使用它们,以保持指定ID的语法一致。
语法
ids = id , {(",", id)} ;
id = {(id_part, "." )}, id_part ;
id_part = escaped_id_part | unescaped_id_part ;
escaped_id_part = '"', ?any char except '"', '`', or '.'?, '"' ;
unescaped_id_part = ( digit | rust_identifier ) , { digit | rust_identifier } ;
示例
"escaped-id".sub_id
1234."digit-only-main-id"
first_id, second_id
依赖项
~1.4–4.5MB
~109K SLoC