Emacs 在源缓冲区中将D覆盖率结果显示为覆盖

Emacs 在源缓冲区中将D覆盖率结果显示为覆盖,emacs,code-coverage,d,readonly,dmd,Emacs,Code Coverage,D,Readonly,Dmd,D语言编译器DMD在包含原始源代码的文件中输出其覆盖率分析,如下所示: |inout(Ix)[]前缀()inout | { 2037 |断言(!keys.empty); 2037 |最终开关(键长) | { 000000000 |案例1: 000000000 |返回键。在!0[]; 2037 |案例2: |导入标准算法搜索:commonPrefix; 2037 |返回commonPrefix(key.at!0[],key.at!1[]); | } | }

D语言编译器DMD在包含原始源代码的文件中输出其覆盖率分析,如下所示:


|inout(Ix)[]前缀()inout
|    {
2037 |断言(!keys.empty);
2037 |最终开关(键长)
|        {
000000000 |案例1:
000000000 |返回键。在!0[];
2037 |案例2:
|导入标准算法搜索:commonPrefix;
2037 |返回commonPrefix(key.at!0[],key.at!1[]);
|        }
|    }

也就是说,原始源,其中每一行都有一个包含执行计数(如果相关)的10个字符的列作为前缀

在Emacs中打开时,我希望该文件作为原始源缓冲区的只读版本显示,至少执行一次的行具有绿色覆盖,从未执行的行具有红色覆盖

如何在Emacs Lisp中最方便地实现这一点?例如,有没有一种方法可以有效地隐藏缓冲区中每行的前10个字符


另请参见:

如何使用条纹作为垂直线(其宽度和颜色可以调整),并在条纹左侧使用您自己的数字等等,类似于
linum模式
?它们是字符串前面的
属性和窗口边距的叠加。当然,除非您愿意,否则无需截断/隐藏部分文本。然而,整个问题看起来并不完全符合答案——也就是说,它需要时间来编写和调试。在编写如何仅隐藏每行的前10个字符的示例之前,您似乎需要再考虑一下(可能需要论坛参与者提供输入)至于您的
elisp
代码在全面实施后的总体设计。扩展
flycheck-d-unittest
具有覆盖支持,并将其放置在如何使用条纹作为垂直线(其宽度和颜色可以调整)以及在条纹左侧使用您自己的数字等等,类似于linum模式
?它们是字符串前面的
属性和窗口边距的叠加。当然,除非您愿意,否则无需截断/隐藏部分文本。然而,整个问题看起来并不完全符合答案——也就是说,它需要时间来编写和调试。在编写如何仅隐藏每行的前10个字符的示例之前,您似乎需要再考虑一下(可能需要论坛参与者提供输入)关于全面实施后您的
elisp
代码的总体设计。扩展
flycheck-d-unittest
,提供覆盖支持,并在