我需要将文本数据与源代码文件中的行相关联。类似于“这些行是为了创建一个 Myclass 对象”-> 20 到 32 行。
问题是这种行跟踪非常脆弱:有人添加一个换行符来破坏我在关联文本和行之间的对应关系就足够了。
我需要一个想法来使这个链接更强大(不要太多,但至少要抵抗一些换行),非常欢迎提出建议。
一个简单的解决方案是散列(md5
非常容易且易于访问)行并将散列存储在数据中。
然后,您可以根据可能已修改的文件检查哈希。如果匹配,很好,否则开始检查上一行/下一行是否匹配。
一种方法可能是寻求源代码控制系统的帮助。例如,使用 Git,您可以将文本数据与特定版本的源代码相关联。如果更改了源代码,您可以使用“diff”算法来发现添加或删除了哪些行。使用该增量信息,您可以更新注释行(例如,在文件顶部添加一行将导致您的 20-32 注释移动到 21-33)。
您是否正在尝试实施某种形式的自动文档系统?如果是这样,那么基于行编号确实很脆弱。我建议使用某种标记将文本与语义代码块相关联,这些代码块在移动或更改时是健壮的。也许类似的东西doxygen
可能是您正在寻找的东西。