簡體   English   中英

使用Doxygen評論的Emacs c-mode fill-paragraph

[英]Emacs c-mode fill-paragraph with Doxygen Comments

我有一個問題與Getting Emacs fill-paragraph非常相似,可以很好地使用類似javadoc的注釋 ,但我不確定我是否會在一年前的帖子中得到很多答案。

無論如何,我有一些C代碼有一些Doxygen評論,如下所示:

/**
 * Description
 *
 * @param[in,out] var1 : <Long description that needs to be wrapped.>
 * @param[in,out] var2 : <Description2>
 */

現在,當我在emacs中使用Mq時,我想要以下內容:

/**
 * Description
 *
 * @param[in,out] var1 : <Long description that needs
 *                       to be wrapped.>
 * @param[in,out] var2 : <Description2>
 */

但是,目前我得到以下內容:

/**
 * Description
 *
 * @param[in,out] var1 : <Long description that needs
 * to be wrapped.>  @param[in,out] var2 : <Description2>
 */

做一些研究,看起來我需要在emacs中設置paragraph-start變量來識別“@param”。 我發現了另一個關於堆棧溢出的問題( 讓Emacs fill-paragraph與javadoc類似的注釋很好 ),它有一個樣本正則表達式。 我修改了一下以符合我的要求,我在Search-> Regex Forward中測試了它,它正確地突出顯示了每個@param句子。

我使用了以下正則表達式"^\\s-*\\*\\s-*\\(@param\\).*$"

所以,我嘗試將給定的正則表達式設置為我的.emacs文件中的段落開頭(添加了elisp語法所需的)。 當我打開一個新的emacs窗口並嘗試使用Mq時,發生了同樣的錯誤。 有什么我想念的嗎? Mq在c模式下的使用方式不同嗎? 我應該檢查我的.emacs文件中是否有可能導致錯誤的內容嗎? 任何幫助,將不勝感激。

謝謝,瑞恩

關於你的問題,“Mq在c模式中使用的是不同的嗎?”, describe-key (綁定到Ch k)是你的朋友。 在使用C文件訪問緩沖區時,鍵入Ch k Mq,它將准確告訴您Mq綁定的函數。 在這種情況下,它是c-fill-paragraph ,最終使用paragraph-start ,即你在另一個問題中找到的變量。

我發現這個用作paragraph-start正則表達式將換行並將每個@param視為一個新段落:

"^[ ]*\\\\(//+\\\\|\\\\**\\\\)[ ]*\\\\([ ]*$\\\\|@param\\\\)\\\\|^\\f"

但是,它不會根據需要縮進包裹線。 它會使您的示例如下所示:

/**
 * Description
 *
 * @param[in,out] var1 : <Long description that needs
 * to be wrapped.>
 * @param[in,out] var2 : <Description2>
 */

我希望它對你來說仍然有效。 如果你弄清楚縮進,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM