首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs c-mode填充-带有Doxygen注释的段落

Emacs c-mode填充-带有Doxygen注释的段落
EN

Stack Overflow用户
提问于 2009-12-29 08:02:11
回答 1查看 1.8K关注 0票数 6

我有一个非常类似于Getting Emacs fill-paragraph to play nice with javadoc-like comments的问题,但我不确定我是否会在一年前的帖子中得到很多答案。

无论如何,我有一个C代码,它有一些Doxygen注释,如下所示:

代码语言:javascript
复制
/**
 * Description
 *
 * @param[in,out] var1 : <Long description that needs to be wrapped.>
 * @param[in,out] var2 : <Description2>
 */

现在,当我在emacs中使用M-q时,我需要以下内容:

代码语言:javascript
复制
/**
 * Description
 *
 * @param[in,out] var1 : <Long description that needs
 *                       to be wrapped.>
 * @param[in,out] var2 : <Description2>
 */

但是,目前我得到了以下信息:

代码语言:javascript
复制
/**
 * Description
 *
 * @param[in,out] var1 : <Long description that needs
 * to be wrapped.>  @param[in,out] var2 : <Description2>
 */

在做了一些研究之后,我发现我需要在emacs中设置param start变量来识别“@param”。我发现了另一个关于堆栈溢出(Getting Emacs fill-paragraph to play nice with javadoc-like comments)的问题,它有一个示例正则表达式。我对它进行了一些修改以满足我的需求,并在Search->Regex Forward中对其进行了测试,它正确地突出显示了每个@param句子。

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

因此,我尝试在我的.emacs文件中将给定的正则表达式设置为我的段落开头(添加了elisp语法所需的)。当我打开一个新的emacs窗口并尝试M-q时,同样的错误也出现了。我是否遗漏了什么?在c模式中M-q的用法是否有所不同?我应该检查我的.emacs文件中可能导致错误的东西吗?如果有任何帮助,我将不胜感激。

谢谢你,莱恩

EN

回答 1

Stack Overflow用户

发布于 2009-12-31 06:56:25

关于你的问题,“在c-mode中M-q的用法是否有所不同?”,describe-key (绑定到C-h k)是你的朋友。当使用C文件访问buffer时,键入C-h -Q,它将确切地告诉您M-q绑定到哪个函数。在本例中,它是c-fill-paragraph,它最终使用paragraph-start,即您在另一个问题中找到的变量。

我发现这个用作paragraph-start的正则表达式将换行,并将每个@param视为一个新段落:

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

但是,它不会像您所希望的那样缩进包装线。它将使您的示例如下所示:

代码语言:javascript
复制
/**
 * Description
 *
 * @param[in,out] var1 : <Long description that needs
 * to be wrapped.>
 * @param[in,out] var2 : <Description2>
 */

我希望它仍然对你更好。如果你弄清楚了缩进,请告诉我。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1972219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档