我試圖設置自動化Doxygen運行在我們龐大的78,000文件C++代碼庫上。提取基本類型和層次結構信息並沒有問題,但我希望能夠更加明智地提取已經存在的文檔註釋。製作Doxygen閱讀雙斜槓C++評論作爲標記
多年來積累的大部分意見都遵循一般模式,儘管不是Doxygen預期的模式。他們大多看起來像
// class description
class foo
{
// returns ascii art of a fruit
const char* apples(void);
// does something to some other thing
customtype_t baz(foo &other);
enum
{
kBADGER, // an omnivorous mustelid
kMUSHROOM, // tasty on pizza
kSNAKE, // oh no!
};
}
哪些是雙削減,而不是///
或//!
風格評論說Doxygen的期望。
有太多的文件需要通過搜索和替換所有這些註釋,而且我的許多程序員對他們的代碼中看到三重斜槓有過度的過敏,所以我想找一些方法讓Doxygen讀取作爲JavaDoc評論的普通評論,當他們在正確的地方。 有沒有辦法讓Doxygen讀//
爲///
?
我找不到任何這樣的配置參數,所以我想我需要以某種方式轉換輸入。總的來說,我會使用的規則是:
- 如果僅包含 評論線,立即 函數/類/類型/可變 聲明之前,假設它是一個
///
評論。 - 如果有聲明 由
//
評論隨後在同一行,把它當作一個///<
但我不知道如何去教Doxygen的這條規則。兩種方式我能想到的是:
- 寫程序作爲INPUT_FILTER,其分析輸入C++和如上述變換
//
s轉換///
秒。但是這種轉換對於正則表達式來說太複雜了,我真的不想編寫一個完整的C++解析器來將輸入提供給另一個C++解析器!另外,爲每個文件啓動一個INPUT_FILTER程序會讓Doxygen變得不可接受:它已經超過30分鐘才能運行我們的源代碼,並且添加一個INPUT_FILTER會花費六個多小時。 - 修改Doxygen源代碼以包含上述評論規則。這似乎是在陌生的代碼中可怕的工作量。
還有其他想法嗎?
如何在一次運行目錄的小腳本中尋找代碼中的'//'(帶空格)並將其轉換爲'///'?另外,如果你的編碼器對'///'過敏,告訴他們從藥房拿到東西。 – Xeo
您可以修改doxygen的解析器,以便在某些地方使用「//」替代「///」。畢竟,Doxygen是開源的。從常見問題解答:'這可能不難調整src/scanner.l – rve
@Xeo如果我實際簽出,修改和檢查78000文件只是爲了將評論修改爲無人喜歡的格式,我會在午餐前被解僱。 – Crashworks