我认为多行评论理想情况应该是这样的:
/* this is a mult-line comment, which wraps lines at some reasonable length,
* usually approximately 80 characters. this way, comments are easy to read
* and, with any half way capable text editor, easy to edit without having
* to manually reshuffle lines, line breaks, and the comment leader. */
// this is a mult-line comment, which wraps lines at some reasonable length,
// usually approximately 80 characters. this way, comments are easy to read
// and, with any half way capable text editor, easy to edit without having
// to manually reshuffle lines, line breaks, and the comment leader.
/* this is a mult-line comment, which wraps lines at some reasonable length,
usually approximately 80 characters. this way, comments are easy to read
and, with any half way capable text editor, easy to edit without having
to manually reshuffle lines, line breaks, and the comment leader. */
但是,XCode不支持以这种方式管理评论。你必须在合适的时间手动点击返回以适当的宽度包装评论,然后编辑它们就会变成一个完整的PITA。
或者,你永远不会点击返回,让编辑器将它包装在编辑器屏幕的边缘。但如果你像我一样,你的编辑器比理想的自动换行长度宽得多。
此外,XCode通过在编辑器中提供一个以80个字符呈现包装指南的功能来嘲讽我,但这纯粹是一种视觉功能,没有任何机制来支持它。这就像将花园铲子交给曾经使用反铲的人一样。
我是否需要在这里进行现实检查 - 我是否采用了错误的方式 - 或者XCode是否极其缺乏基本的段落式注释格式?
经验丰富,负责任,专业的Objective-C开发人员在代码中进行实质性评论时会做些什么?帮我看看这里的光。
注意:对于XCode 3,我编写了一个手动滚动的脚本,它重新格式化了文本并将其绑定到热键。我还没想到如何在XCode 4中做到这一点。但是如何编写XCode 4的脚本与这个问题有点正交:它有点不好用于扩展具有这些基础知识的IDE,我的问题是关于XCode开发人员的风格和文化期望。
感谢您的建议。
答案 0 :(得分:14)
我同意它应该内置于Xcode。但无论如何,这里是如何通过创建一个调用脚本并为其分配键盘快捷方式的服务项来快速将其添加到Xcode4:
fmt
实用程序来重新格式化文本,允许行以句点开头,折叠行内的空格,允许缩进的段落,将行包装为80个字符的列。有关其他选项,请查看fmt
的手册页。显然,你可以通过emacs或markdown或其他方式来管理文本。现在,当您在Xcode中选择了文本时,您可以通过菜单栏选择服务将其重新格式化为80个字符:Xcode / Services / Reformat-to-80。
现在让我们为它指定一个键盘快捷键:
现在,在Xcode中,您可以使用该键盘快捷键将所选文本替换为shell脚本的输出,该脚本会将文本重新格式化为
答案 1 :(得分:2)
显然,你可以通过emacs
来管理文本
在回复评论后,经过多年期待Emacs先进的特质,我做到了。假设您可以克服Xcode调用Emacs进行脚本编写的严重性,将以下脚本保存为fill-region
(或类似的东西)并使其可执行。
#!/usr/bin/env emacs --script
(with-temp-buffer
;; Would like to implement --help but Emacs eats that before I can
;; process it here.
(let ((param (nth 0 command-line-args-left)))
(if param (funcall (intern param))))
(condition-case nil
(while t
(insert (read-from-minibuffer ""))
(insert "\n"))
(error nil))
(fill-region (point-min) (point-max))
(princ (buffer-string)))
然后创建一个Automator服务,该服务使用适当的语言参数(例如,对于C / C ++ / Objective-C fill-region c++-mode
)执行此脚本,并替换所选文本。
即使你不使用Emacs,这也是使用fmt
以上版本的替代品,这在评论格式化方面要好得多。
答案 2 :(得分:1)
添加到user797758's answer:要自定义其emacs脚本包装文本的列,请在填充区域调用之前添加set-fill-column调用。例如,下面的脚本将换行100个字符。
#!/usr/bin/env emacs --script
(with-temp-buffer
(let ((param (nth 0 command-line-args-left)))
(if param (funcall (intern param))))
(condition-case nil
(while t
(insert (read-from-minibuffer ""))
(insert "\n"))
(error nil))
(set-fill-column 100)
(fill-region (point-min) (point-max))
(princ (buffer-string)))
答案 3 :(得分:-4)
对我而言,事情的格式从未如此重要(个人而言,我从未评论过大量的文字),但我觉得这些内容非常有用。 要注释掉一段代码,您可以快速注释掉一段代码,如下所示:
Select one or more lines of code to comment
Command-/