我在一个项目中定义了几个结构和类型C++
。我必须为这段代码写一些文档,我使用铸造包排版我的代码。
我希望能够向minted
数据库添加一些关键字,这样 minted 也能识别这些关键字并赋予它们适当的颜色。(我希望它们的颜色与类型相同double
。)
答案1
Minted 使用 Pygments 来解析源代码,因此解决此问题的一种方法是修改pygments/lexers/compiled.py
并添加其中的类型(大约 210 行的某个地方对我来说看起来是合理的)。这是我在Pygments 错误地解析了我编写的一些 Erlang 中的符号。
这样做的明显缺点是 Pygments 现在是非标准的。这意味着很多事情:
- 所有想要编译该文档的 PC 都必须进行此更改,这意味着文档将不一致地构建,或者很多人必须修改 Pygments 安装。
- Pygments 的未来更新可能会破坏您的修改,因此您的文档将来可能无法正确语法高亮。
- 如果您以不同的方式使用这些关键字,您可能会错误地解析/突出显示未来的文档(例如,它可能会以与打印类型相同的方式打印变量名称)。
答案2
对你来说可能晚了但可以帮助别人。
更好的解决方案是编写自己的词法分析器,正如 pmav99 所说,但是在另一个词法分析器之上(就你的情况而言词法分析器)。
非常简单!我做了这个非常快地为 ruby 添加一些额外的关键字。
答案3
另一个(显而易见的)解决方案是编写自己的词法分析器(即 C++ 的超集)