#trace #requirements #plain-text #collect #line #spans #req

mantra-lang-tracing

包含从代码或纯文本文件收集mantra框架所需功能的库。

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 文本处理

Download history 147/week @ 2024-04-28 3/week @ 2024-05-05 3/week @ 2024-05-12 19/week @ 2024-05-19 151/week @ 2024-05-26 21/week @ 2024-06-02 229/week @ 2024-06-09 62/week @ 2024-06-16 1/week @ 2024-06-23 353/week @ 2024-06-30 21/week @ 2024-07-07 21/week @ 2024-07-14 1/week @ 2024-07-21 57/week @ 2024-07-28

每月113次下载
6个crate中使用了(直接使用4个)

MIT许可证

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