2013-01-16 91 views
3
  1. 通常我想讓Doxygen允許查看記錄文件的源代碼。但我想要隱藏部分源代碼。 我知道如何強制Doxygen不要記錄某些代碼段(例如使用/ cond/endcond),但是當點擊「轉到該文件的源代碼」時它仍然出現。Doxygen:在源代碼瀏覽器中隱藏源代碼的一部分

    什麼其實我想要的是:如果自己是不是在Doxygen的風格的評論,應出現無處可言,沒有文件,也不內「回到這個文件的源代碼」。 對於函數以及#defines或其他內容,情況應如此。

  2. 我用@hideinitializer來隱藏# - 定義初始化。這在文檔中很好地工作。但是,初始化程序仍然顯示在源代碼中。

有沒有人有任何建議?

回答

4

您可以通過指定使用INPUT_FILTER選項的過濾器腳本/程序預處理源文件。然後,通過設置FILTER_SOURCE_FILE = YES,過濾後的源代碼將在源瀏覽器中使用,而不是原始源代碼。

從文檔:

的INPUT_FILTER標籤可以用於指定Doxygen的應該調用來過濾每個輸入文件的程序。 Doxygen的將通過執行(通過POPEN())的命令來調用所述過濾程序:

<filter> <input-file>

其中是INPUT_FILTER標記的值,並且是輸入文件的名稱。然後Doxygen將使用過濾器程序寫入標準輸出的輸出。

如果FILTER_SOURCE_FILES標籤被設置爲YES,輸入濾波器(如果使用INPUT_FILTER設定)也將被使用,以過濾用於製備源文件瀏覽輸入文件(即當SOURCE_BROWSER設置爲YES時)。


作爲粗例如,使用下面的源(在相同的位置的Doxyfile保存爲filter.py,和由可執行文件):

#!/usr/bin/env python 
import fileinput, re 

# output all lines that does not start with // (but allow //!) 
for line in fileinput.input(): 
    if not re.match(r'\s*//(?![!])', line): 
    print line, 

和的Doxyfile,設置:

INPUT_FILTER = ./filter.py 
FILTER_SOURCE_FILE = YES 

輸出源碼的瀏覽器現在將只顯示不//啓動線。

當然,創建一個過濾器腳本,丟棄除了與doxygen相關的所有C風格的註釋之外,會比上面顯示的更復雜。

+0

非常感謝。這是完美的。 –

+0

不客氣。很高興我能幫上忙。 –