如何添加自定义 C++ 关键字以供 Minted 识别?

如何添加自定义 C++ 关键字以供 Minted 识别?

我在一个项目中定义了几个结构和类型C++。我必须为这段代码写一些文档,我使用铸造包排版我的代码。

我希望能够向minted数据库添加一些关键字,这样 minted 也能识别这些关键字并赋予它们适当的颜色。(我希望它们的颜色与类型相同double。)

答案1

Minted 使用 Pygments 来解析源代码,因此解决此问题的一种方法是修改pygments/lexers/compiled.py并添加其中的类型(大约 210 行的某个地方对我来说看起来是合理的)。这是我在Pygments 错误地解析了我编写的一些 Erlang 中的符号

这样做的明显缺点是 Pygments 现在是非标准的。这意味着很多事情:

  • 所有想要编译该文档的 PC 都必须进行此更改,这意味着文档将不一致地构建,或者很多人必须修改 Pygments 安装。
  • Pygments 的未来更新可能会破坏您的修改,因此您的文档将来可能无法正确语法高亮。
  • 如果您以不同的方式使用这些关键字,您可能会错误地解析/突出显示未来的文档(例如,它可能会以与打印类型相同的方式打印变量名称)。

答案2

对你来说可能晚了但可以帮助别人。

更好的解决方案是编写自己的词法分析器,正如 pmav99 所说,但是在另一个词法分析器之上(就你的情况而言词法分析器)。

非常简单!我做了这个非常快地为 ruby​​ 添加一些额外的关键字。

答案3

另一个(显而易见的)解决方案是编写自己的词法分析器(即 C++ 的超集)

相关内容