【问题标题】:Linux tool to check spelling of comments in c/c++ source code用于检查 c/c++ 源代码中注释拼写的 Linux 工具
【发布时间】:2011-04-08 20:50:20
【问题描述】:

您建议使用什么软件来检查 c/c++ 源代码(尤其是 doxygen cmets)中包含的 cmets 的拼写?我正在寻找只解析 cmets 的东西,这样我就可以轻松找到错误并纠正它们。

这个问题很笼统,但更具体 - 我正在使用 CodeLite IDE。

【问题讨论】:

  • gedit 具有自动拼写检查功能。据我所知,它并不只解析 cmets,但您可以使用 Find 功能来查找 // 的每个实例。这些将突出显示,以便您可以快速查看它们。未发布为答案,因为不完全符合您的要求。
  • 我建议您不要将拼写检查限制在 cmets 中。保留一个特定于项目的字典,并在考虑正确拼写的单词是否优于缩写词后,将全局变量和函数名称添加到其中。当然,第一次通过重大项目的拼写检查可能会让人感到意外。
  • 我没有想到这个解决方案可能是因为字数太多。但实际上这对我来说是合理的!将其发布为答案,您会得到我的支持。
  • RBerteig:这个“项目特定字典”应该如何实现?你的意思是每个变量或函数名称都应该保留在其中,就像评论中的普通词一样?
  • 是的,每个(或几乎每个),至少我是这样看的,否则就没有意义了。这种方法有一些缺陷 - 由于单词被视为某个标识符,因此可以省略特定的注释错误。优点?好吧,也许很少 - 有时可能更容易找到拼写错误的标识符,即在重构之后。

标签: c++ c linux comments spell-checking


【解决方案1】:

Emacs 有ispell-comments-and-strings,它在编辑器内部工作得很好。它依赖于语法高亮机制来识别 cmets 和字符串,因此它适用于您具有良好高亮显示的任何语言。

不知道你是如何让它与你的 IDE 一起工作的。

【讨论】:

    【解决方案2】:

    我也需要这样的东西。不过,它不仅需要能够在 Linux 上运行。

    我已经看到拼写检查通常与 IDE 配对使用(如 Eclipse)。然而,我想要一个完全独立于任何 IDE 的工具,因为我希望能够在自动/脚本化的上下文中运行它,例如 Travis-CI 构建或 AppVeyor CI 构建。

    四处寻找这样的工具,然后决定自己编写。

    我想出的是满足这些需求的pyspellcode。这是一个使用clanghunspell 的python 脚本,至少应该很容易在Linux 上运行。脚本:

    1. 运行 clang 以获取其 AST 转储输出,
    2. 通读AST信息,找到评论节点,
    3. 将这些单词传递给hunspell进行检查,然后
    4. 报告无法识别的单词。

    令我惊讶的是,clang 将 C++ cmets 解析为 doxygen 元素和嵌入的 HTML 标记的深度。这使得使用 clang 的 AST 来执行诸如忽略嵌套在 <code>...</code> 块中的单词之类的事情成为可能,我在脚本中利用了这一点。

    该脚本可作为 Zlib 许可的开源项目从 GitHub 获得。它目前只是 alpha 软件,其中至少有一个解析错误,但如果对它感兴趣,我会给予它更高的优先级。

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      检查 doxygen cmets 的好地方似乎是 doxygen 本身。但它不检查拼写:?。

      我想到的快速解决方法是生成 LaTeX 输出,然后使用 LaTeX 进行拼写检查。另一种解决方案可能是使用doxygen's Perl Module output format 并在 Perl 中编写一些代码进行拼写检查(例如使用 Aspell 或 Ispell)。

      有了 IDE 就简单多了,因为任何体面的 IDE 都应该支持 doc-cmets 的拼写检查(Eclipse CDT 就是一个例子)

      【讨论】:

        猜你喜欢
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        • 2012-07-20
        • 2016-11-17
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 1970-01-01
        相关资源
        最近更新 更多