我正在寻找的东西可以简单地表述为:
是否有任何现有的工具/方法可以让我(至少部分地)自动格式化 C 源代码注释以用于文档?
我主要对处理 C 注释感兴趣,但如果有一个与语言无关的工具,那就更好了。
我应该注意的是,我不使用 IDE,主要是 GUI 文本编辑器,如 Scite 或 Geany(不幸的是,我发现vim
/emacs
太难了);所以我正在寻找一个独立的命令行工具(或者说一个Python库,它可以完成所有繁重的工作,并允许一个非常简单的可执行脚本来充当命令行工具)——或者一个插件可以执行此类格式化的 GUI 文本编辑器(或相对简单的 GUI 文本编辑器)。
让我用几个例子来扩展这一点。
理想情况下,我希望这是文本编辑器中的一种模式,这样:如果您在多行 C/* ... */
注释中,那么当您键入时,行会以所需的宽度(80 个字符)断开,并且新行会在评论会*
在开始时自动附加。
对于 Scite,有一个http://lua-users.org/wiki/SciteLineBreak扩展名,它的工作原理有点像这样(点击查看全尺寸动画 gif):
因此,它仅在输入“new”时有效,如果光标前面有文本,它无法真正确定换行,如所以帖子:
...它会在键入文本时插入换行符 - 但不会在按退格键时插入换行符,也不会在复制/粘贴时插入换行符。
...显然,它不“知道”C 多行/* ... */
注释是什么。
因此,像这样的 GUI 文本编辑器功能,即“实时”和“多行注释感知”,可以*
在行首插入/删除,并且可以处理复制/粘贴、退格键和光标前面的文本,真的很棒。有什么东西可以像这样工作吗?
另一方面,存在“命令行”类型的交互,其中命令行工具接收文本输入,并返回格式化的文本输出。在文本编辑器中,比如 Scite,可以很容易地创建一个 Lua 脚本插件来调用这个工具,输入是选定的文本,然后用输出替换文本选择。
在 Windows/Visual Studio 世界中,有一个名为的付费插件适用于 Visual Studio 的 Atomineer Pro 文档(通过发现编写doxygen代码注释的最佳工具或技术是什么 - ThinbugCTRL),按下键盘快捷键+ SHIFT+后,它可以根据函数签名创建文档注释的框架D:
类似于命令行工具中的东西,它可以接受作为函数签名的一行文本,并生成文档的框架,例如适用于强力氧(或者,如果提供了带有文档注释和函数签名的文本,则保留注释中的现有文本,并插入函数签名的任何新参数),那就太棒了 - 有类似的东西吗?我很难找到这样的东西,可能是因为它并不简单:该工具不仅必须“多行注释感知”,而且还必须“编程语言感知”。
我认为此类命令行工具的一种可能性是源代码“漂亮打印”格式化程序,但我使用过艺术风格(astyle))据我所知,以前,它通常会按原样留下评论。但是,我发现了这个格式化程序,其中讨论了类似的想法评论换行 · 问题 #265 · prettier/prettier · GitHub- 然而,似乎还没有实施;虽然有 Atom 文本编辑器插件演示的屏幕截图(点击查看全尺寸动画 gif):
据我所知,这只是自动换行,然后当格式消失时,会调用该插件来替换注释的文本 - 它甚至可以意识到几行单行注释形成一个块。
所以我的一个选择是使用 Atom格式 JavaScript 注释格式化 C 注释的插件,除了我尝试过 Atom,我发现它有点让人不知所措(几乎感觉像一个 IDE)。这就是为什么我更喜欢在独立的命令行工具中使用该插件的功能。
那么,是否有一个命令行工具,即使无法生成文档框架,也能够接受文本输入?识别多个单行注释块或多行注释块;将它们格式化为字符宽度(允许自定义如何处理注释中现有的缩进);然后输出新格式化的文本?