如何在源代码预览中压缩/去除多个空白行

时间:2012-04-13 08:56:15

标签: python doxygen

我的doxygen文档显示了每个类成员函数的源代码。 我的源代码有时在函数之间包含多个空行。

如何将压缩剥离这些多个空行? (而不是在预览中显示它们)

答案(来自下方)

下面的答案指出了我正确的方向:INPUT_FILTER (doxygen documentation)

  

INPUT_FILTER标记可用于指定doxygen应调用以对每个输入文件进行过滤的程序。 Doxygen将通过执行(通过popen())命令来调用过滤器程序:

<filter> <input-file>
  

其中是INPUT_FILTER标记的值,是输入文件的名称。然后,Doxygen将使用过滤器程序写入标准输出的输出。

我很快就编写了一个python脚本(我在Win7上)来执行'压缩':

import re
import sys

if len(sys.argv) != 2:
  exit()

with open(sys.argv[1]) as f:
  original = f.read()
  compact = re.sub('\n\n\n+', '\n\n', original)
  print(compact)

然后我将它添加到过滤器中:

INPUT_FILTER = "python ../DoxyCompact.py"

这也开启了很多在doxygen读取之前修改源的可能性!

1 个答案:

答案 0 :(得分:1)

我能想到这样做的唯一方法是定义一些预处理器来在doxygen使用文档中的源代码之前去除多个空白行。要定义要对源文件执行的操作(或过滤器),请使用INPUT_FILTER配置文件选项。

警告:以下内容尚未经过测试。

问题How can I replace multiple empty lines with a single empty line in bash?似乎可以使用

sed /^$/d

删除多个空白行,因此在配置文件中设置

INPUT_FILTER = sed /^$/d