Actions
Feature #19688
closedAdd indentable block comment syntax
Status:
Closed
Assignee:
-
Target version:
-
Description
Ruby's default block comment is using =begin
and =end
=begin
Some block comments
=end
However, we must place them at the top of the line, thus we can't indent them, for example:
class A
class B
class C
=begin
The comment for this method
=end
def hello
end
end
end
end
This is something like the situation of <<HEREDOC
and <<-HEREDOC
. Finally, we added <<~HEREDOC
which is very handy.
Things become worse when documenting using RDoc
and YARD
, see the 686 lines of the leading #
, it's very trivial if we don't use block comment:
https://github.com/ruby/net-http/blob/master/lib/net/http.rb#LL35C1-L721C1
So, I propose a new syntax to declare block comments using #being
and #end
class A
class B
class C
#begin
The comment for this method
@param str
@return [String]
Any other document. Now we are easy to break
a line, without touching the leading `#` like before.
#end
def hello(str)
end
end
end
end
I've some thoughts on this:
- Honestly, I don't know if
RDoc
andYARD
rely on the line comment rather than block comment. - I choose
#begin
and#end
because they still use the#
symbol to denote that this is comment. -
#begin
and#end
's leading#
doesn't conflict with the old=begin
and=end
for compatibility. -
#begin
may influence the speed of the lexer, because we now should scan at least later 5 characters after#
Actions
Like0
Like0Like0Like0Like0Like0