N
Neil Spring
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
I am used to c-mode indents and I find ruby-mode.el's indenting
frustrating. Has anyone configured, modified, or rewritten
ruby-mode.el to indent statements in a way more like c-mode does? I
found Jim Weirich's code to properly reformat comments without
reformatting code as c-mode does using M-q on rubygarden.
The code below includes some examples of lines I would like indented
differently, though the expressions are short. Because ruby's parser
considers any statement that could be finished on a line finished,
there are only a few ways to break up complex statements. Operators
like "||", "+", and "%" all cause ruby-mode to indent the next line
directly beneath where it would be anyway -- making it useless to try
to split these expressions across lines. Placing a {} block as a
parameter to a function somehow causes the indenting to
counter-intuitively start over at the left. And the "?" conditional
assignment operator gets no indenting for the next line at all.
# the following statement should line up false beneath true,
# as c-mode does.
if ( true ||
false ) then
# the following statement should line up "baz" either
# under "foo" or ruby-indent from the left edge.
puts "foo bar %s" %
"baz"
# same as above.
puts "Foo" +
"Bar"
# the second line should be indented somehow.
puts use_celsius ?
100 : 212;
# the second line should be indented somehow,
# preferably at least as far in as the "("
puts( [ "a", "b", "c" ].map { |c|
c + c }.join()
)
# are fine:
puts "Foo",
"Bar"
puts "foo bar %s" % [
"baz"
]
end
I don't know how to configure or improve ruby-mode.el to handle these
statements, and I realize c-mode has it easy since all it has to do is
wait for semicolons, but I think improving the formatting will make
code more readable.
thoughts?
- -neil
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (Darwin)
iD8DBQE/rZh9tvhXVvuQ3oQRAvRhAJ9wDdgb8EiJGjB3MUkGF9k6Gr6LtgCaAhlH
40nnYD3o/zZuNSQZCT1IeOA=
=ttYY
-----END PGP SIGNATURE-----
Hash: SHA1
Hello,
I am used to c-mode indents and I find ruby-mode.el's indenting
frustrating. Has anyone configured, modified, or rewritten
ruby-mode.el to indent statements in a way more like c-mode does? I
found Jim Weirich's code to properly reformat comments without
reformatting code as c-mode does using M-q on rubygarden.
The code below includes some examples of lines I would like indented
differently, though the expressions are short. Because ruby's parser
considers any statement that could be finished on a line finished,
there are only a few ways to break up complex statements. Operators
like "||", "+", and "%" all cause ruby-mode to indent the next line
directly beneath where it would be anyway -- making it useless to try
to split these expressions across lines. Placing a {} block as a
parameter to a function somehow causes the indenting to
counter-intuitively start over at the left. And the "?" conditional
assignment operator gets no indenting for the next line at all.
# the following statement should line up false beneath true,
# as c-mode does.
if ( true ||
false ) then
# the following statement should line up "baz" either
# under "foo" or ruby-indent from the left edge.
puts "foo bar %s" %
"baz"
# same as above.
puts "Foo" +
"Bar"
# the second line should be indented somehow.
puts use_celsius ?
100 : 212;
# the second line should be indented somehow,
# preferably at least as far in as the "("
puts( [ "a", "b", "c" ].map { |c|
c + c }.join()
)
# are fine:
puts "Foo",
"Bar"
puts "foo bar %s" % [
"baz"
]
end
I don't know how to configure or improve ruby-mode.el to handle these
statements, and I realize c-mode has it easy since all it has to do is
wait for semicolons, but I think improving the formatting will make
code more readable.
thoughts?
- -neil
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (Darwin)
iD8DBQE/rZh9tvhXVvuQ3oQRAvRhAJ9wDdgb8EiJGjB3MUkGF9k6Gr6LtgCaAhlH
40nnYD3o/zZuNSQZCT1IeOA=
=ttYY
-----END PGP SIGNATURE-----