在C/C++的头文件和代码文件中使用ASCII艺术注释

13
我非常关注Mojang "Mojam" for Humble Bundle(链接可能不会长时间有效),在整个视频中,我看到这些人如何使用他们的代码,其中一个开发者在他的代码中使用ASCII艺术注释以更好地导航。这样就会得到像这样的东西:
/////////////////////////////////////////////
//      ___  ___       ___   _   __   _    //
//     /   |/   |     /   | | | |  \ | |   //
//    / /|   /| |    / /| | | | |   \| |   //
//   / / |__/ | |   / / | | | | | |\   |   //
//  / /       | |  / /  | | | | | | \  |   //
// /_/        |_| /_/   |_| |_| |_|  \_|   //
//                                         //
/////////////////////////////////////////////
int main()
{
    // do some stuff
    return 0;
}

这看起来可能不太好,但与Sublime等编辑器配合使用,它变得强大了,因为Sublime提供的“缩小”视图让您可以轻松地阅读该文本并在代码中进行导航。
现在,有很多很酷的ASCII艺术文本生成器out there。 但是,这些生成器(至少我看过的那些)都不能生成符合C ++ / C标准的文本。
也就是说:我必须手动添加注释斜杠( // )到文本周围,以便使其在代码中运行。
你们使用这个技巧吗?如果是,你们有工具可以生成这些文本周围的“注释”吗?

10
不想听起来太过于扫兴,尽管Sublime Text非常好看,但是寻找main()这类内容时使用编程方式进行搜索比通过装饰它以便更快地手动查找(即通过观察)更加合理,你觉得呢? - unwind
1
@unwind:人们发现不同的方法很有帮助,此外,通过Sublime的side-file-map(它有一个更好的名称,但我想不起来了),您可以通过具有粗壮ACSII注释的方式在大型源中可视化地grep函数。 - Nicholas Smith
1
@unwind:当我知道我在寻找什么时,我确实使用文件搜索。但有时候我也会寻找我刚刚在头文件中声明的方法的实现位置,然后我就会滚动屏幕,目视寻找“私有方法”部分。这正是ASCII艺术头文件所要解决的问题 :) - Gui13
1
当人们使用难以解析的语言进行编程时,他们所做的事情真是令人惊叹。 - Laurynas Biveinis
4
使用具有代码浏览功能的现代IDE(例如Visual Studio),这些东西完全是不必要的(如果曾经是必要的话)。如果你为我工作,并在你的代码中使用了这种东西,你不会长久地为我效力!;-) - Clifford
显示剩余10条评论
5个回答

13

最近我在查看自己的 .php 文件中包含网站路由列表时决定添加一些大型 ASCII 注释。现在,我在某些源文件(例如长配置文件)中使用它们,这些注释确实有助于进行导航。

以下是在我的 Sublime Minimap 中的效果:

这里输入图片描述

到目前为止,我还没有自动化创建此类注释的过程。我使用来自此网站的在线 ASCII 创建器,并选择字体“basic”。


这就是我所说的! - Gui13
在XCode中使用#pragma mark比缩小视图要好得多。 - Warren P
我已经添加了一个链接到Github插件(它是一个草稿,但对我来说它是有效的)。 - Larry Foobar
如另一个答案中所提到的,ASCII Decorator 是一个 SublimeText 3 插件,可以“自动化”这个过程并包含“基本”字体。 - MrWhite

11

是的,我过去常常添加那些“导航”提示。特别是在有许多相似部分但处理不同消息类型的通信部分。

我使用 Mac,这是我的设置。

之前我使用了一个仪表板小部件 http://memention.com/figlet/

但我的最新做法是使用 Automator 创建一个服务,并使用 homebrew 安装 figlet。然后在服务中,我有这个一行命令(还单击了“输出替换所选文本”)

/usr/local/bin/figlet -f smslant -w 132

现在我可以通过右键单击某些文本,在任何应用程序中使用figlets了。

我的首选字体是smslant

然后我通常只需添加/**/

编辑

好吧,我刚刚更新了我的服务以添加那个C注释。

( echo "/*" ; /usr/local/bin/figlet -f smslant -w 132 ; echo " */" )

我会采纳你的答案,这很接近我要做的事情(在这里是Linux)。虽然沃伦也有一点...我猜。每个人都有自己的喜好 :) - Gui13
1
如果你喜欢使用 // 风格的注释,请尝试这个命令:/usr/local/bin/figlet -f smslant -w 132 | sed -e 's/^/\/\/ /' - pauln

8

不,我不使用这样的东西,并认为这种东西比没用还糟。屏幕就是带宽。浪费空间会降低代码可读性。

            ______
||\   ||   /      \
|| \  ||   |      |
||  \ ||   |      |
||   \||   \______/

:-)


11
我有点想给它点踩,只因为编码没有唯一的“正确”方式。让感到更糟糕是主观的,就我个人而言,在vim中编写代码会让我感到更糟糕,但我已经被告知过很多次它是已知的最高效编辑器,不过我不建议人们不使用它。 - Nicholas Smith
4
编程可能没有所谓的“正确”方式,但有许多“错误”的方式,而这绝对是其中之一。 - William Pursell
3
我越做越希望编写简短、简洁、易读的代码。注释(不是大型 ASCII 艺术)没问题,甚至很好。但这并不意味着我的公司代码成了“我的涂鸦场所”。 - Warren P
2
这是那种情况之一,如果你不使用它,没有人会在意,我们只关心你是否使用了它(以及使用了什么工具?)OP实际上并不希望每个不喜欢这种方法的人都进来开始圣战,Stack Overflow也不是为此而存在的。我很想给他点踩,因为他不仅没有回答问题,还在答案区域里堆积了充满个人观点和无用的评论。 - Metagrapher
1
这个问题本身勉强通过了“这是否适合在SO上发布?”的过滤器,因为提问者实际上并没有询问您对这种做法的意见,而是在寻求用于在C/C++中实现这种做法的工具。 - Metagrapher
显示剩余2条评论

4
如果您正在使用SublimeText,我建议尝试 ASCII Decorator。它很容易安装,除了Sublime之外不需要其他任何东西,并且可以在任何操作系统上运行。此外,它还有很多漂亮的字体!

1
还有一个名为ASCIIDecorator的VSCode端口。 - Félix Paradis
ASCIIDecorator for VS Code的链接:https://marketplace.visualstudio.com/items?itemName=helixquar.asciidecorator - KJH


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接