Code beautifiers, anyone?

K

Kyrre Nygård

Hello people,

I'm looking for the best ways to create a line of code beautification
(reformatting) scripts -- one for C, one for Ruby, one for Bash and
one for web development languages like XHTML, XML, CSS, PHP and Ajax.
Whether as frontline warriors or household maids, they would ensure
proper indentation, linebreaks, spaces, tabs and so forth.

Can anybody help me?

My studies of architectural science has taught me to pay extreme care
to the correction of details, and I now wish to apply these teachings
to all my code. I find myself always reformatting whatever my
associates give me. Not that they're bad programmers, they just care
more about the code itself rather than its structure, and I dare not
argue with that. When their code is messy, however, my heart feels
messy and I can't get any sleep.

I wish to be in full control of my code beautifiers. That is, I wish
to have them as simple and meaningful as possible. Give me an easy
Bash over a complex Ruby any day.

There's a lot of messed up tools out there. Companies with flashy
websites just doing this for the money. So apart from the bullshit,
I've managed to spot out the Ruby Beautifier and GNU Indent as two
worthy code beautifiers. However I get the feeling they are more
complex than they ought to be, and if less is more, my search will
have to continue.

All the best,
Kyrre
 
G

Gregory Seidman

On Thu, Aug 24, 2006 at 09:58:16PM +0900, Kyrre Nyg?rd wrote:
} I'm looking for the best ways to create a line of code beautification
} (reformatting) scripts -- one for C, one for Ruby, one for Bash and
} one for web development languages like XHTML, XML, CSS, PHP and Ajax.
} Whether as frontline warriors or household maids, they would ensure
} proper indentation, linebreaks, spaces, tabs and so forth.
[...]
} I wish to be in full control of my code beautifiers. That is, I wish
} to have them as simple and meaningful as possible. Give me an easy
} Bash over a complex Ruby any day.
[...]

vim

} All the best,
} Kyrre
--Greg
 
R

Rich Morin

I agree strongly with the importance of having clean,
readable code. It's more pleasant to work with and
also wastes less of the programmer's time in trying
to understand what's going on.

The Perl community has two interesting developments
in this direction. First, there's Damian Conway's
book, "Perl Best Practices" (O'Reilly). I don't
agree with EVERYTHING Damian says, but his reasoning
is worth reading, in any case, and I think his book
will be quite influential.

Following his lead, Jeffrey Thalhammer has written

Perl::Critic
http://search.cpan.org/~thaljef/Perl-Critic-0.19/lib/Perl/Critic.pm

This Perl module/program applies a customizable set
of tests to a set of code, reporting discrepancies.

Unfortunately, Ruby has neither the book nor the tool
at this point, but it certainly could have...

-r
--
http://www.cfcl.com/rdm Rich Morin
http://www.cfcl.com/rdm/resume (e-mail address removed)
http://www.cfcl.com/rdm/weblog +1 650-873-7841

Technical editing and writing, programming, and web development
 
K

Kyrre Nygård

On Thu, Aug 24, 2006 at 09:58:16PM +0900, Kyrre Nyg?rd wrote:
} I'm looking for the best ways to create a line of code beautification
} (reformatting) scripts -- one for C, one for Ruby, one for Bash and
} one for web development languages like XHTML, XML, CSS, PHP and Ajax.
} Whether as frontline warriors or household maids, they would ensure
} proper indentation, linebreaks, spaces, tabs and so forth.
[...]
} I wish to be in full control of my code beautifiers. That is, I wish
} to have them as simple and meaningful as possible. Give me an easy
} Bash over a complex Ruby any day.
[...]

vim

} All the best,
} Kyrre
--Greg

Please explain yourself Greg?

Thanks,
Kyrre
 
J

Justin Collins

Kyrre said:
Hello people,

I'm looking for the best ways to create a line of code beautification
(reformatting) scripts -- one for C, one for Ruby, one for Bash and
one for web development languages like XHTML, XML, CSS, PHP and Ajax.
Whether as frontline warriors or household maids, they would ensure
proper indentation, linebreaks, spaces, tabs and so forth.

Can anybody help me?

My studies of architectural science has taught me to pay extreme care
to the correction of details, and I now wish to apply these teachings
to all my code. I find myself always reformatting whatever my
associates give me. Not that they're bad programmers, they just care
more about the code itself rather than its structure, and I dare not
argue with that. When their code is messy, however, my heart feels
messy and I can't get any sleep.

I wish to be in full control of my code beautifiers. That is, I wish
to have them as simple and meaningful as possible. Give me an easy
Bash over a complex Ruby any day.

There's a lot of messed up tools out there. Companies with flashy
websites just doing this for the money. So apart from the bullshit,
I've managed to spot out the Ruby Beautifier and GNU Indent as two
worthy code beautifiers. However I get the feeling they are more
complex than they ought to be, and if less is more, my search will
have to continue.

All the best,
Kyrre

Hi Kyrre,

This topic has come up before...I see you found some projects focused on
this. However, while indentation is pretty important and useful, most
text editors will do this for you. That leaves spaces, tabs, linebreaks,
and those kinds of things. Unfortunately, there are many times where
people disagree about Ruby formatting.
For example,

a.each {|item| ... }

or

a.each { |item| ... }

? Which is right/better? Depends on who you ask.

I know this is a simple example, but you will end up having to make
those kinds of decisions.
Just a caution, that's all. Good luck with your project. I'm not sure
what kind of help you wanted?

-Justin
 
M

Marcelo Alvim

Kyrre said:
a.each {|item| ... }
or
a.each { |item| ... }
? Which is right/better? Depends on who you ask.

Yes, that is probably a problem for someone who wants to create a code
formatter/beautifier. Eclipse's one (for java) is a very good and configura=
ble
one, IMHO. Maybe you should take a look at it. Of course, not to include
ALL of the features it has (we already learned that sometimes convention is
better than configuration, right?), but to see what they let you
configure. Maybe
it can help you figure out what is good to let the user configure and what =
is
better to let as a convention.

Good luck!

Alvim.
 
K

Kyrre Nygård

Hi Kyrre,

This topic has come up before...I see you found some projects
focused on this. However, while indentation is pretty important and
useful, most text editors will do this for you. That leaves spaces,
tabs, linebreaks, and those kinds of things. Unfortunately, there
are many times where people disagree about Ruby formatting.
For example,

a.each {|item| ... }

or

a.each { |item| ... }

? Which is right/better? Depends on who you ask.

I know this is a simple example, but you will end up having to make
those kinds of decisions.
Just a caution, that's all. Good luck with your project. I'm not
sure what kind of help you wanted?

-Justin

Hello,

Yes you are absolutely right. I have to put a lot of thought into
decisions like that, and possibly convert the pieces of code into
ontologies which I then visualize using modern 3D technologies to see
which solution seems more semantic.

I understand what you mean by your example. No matter what though,
the most logical solution always wins. Forgive me if I'm wrong, as
I'm not familiar with every premise that might come into play, but
wouldn't be the latter be more correct?

Thanks a lot Justin!

All the best,
Kyrre
 
K

Kyrre Nygård

I have written a relatively primitive Ruby beautifier (written in Ruby) that
probably could be made ten times better if someone cared to expend the
effort:

http://www.arachnoid.com/ruby/rubyBeautifier.html

There are many things it won't do, some of which are mentioned in this
thread. But it reliably indents and reveals the basic program structure.

It's GPL, so someone could take it and run with it. I myself am too lazy.

A lot of respect to you for creating it man, it's a beautiful script
and it has taught me a lot. I will do my best to further evolve it.
Thanks a lot.

All the best,
Kyrre
 
P

Paul Battley

I have written a relatively primitive Ruby beautifier (written in Ruby) that
probably could be made ten times better if someone cared to expend the
effort:

http://www.arachnoid.com/ruby/rubyBeautifier.html

There are many things it won't do, some of which are mentioned in this
thread. But it reliably indents and reveals the basic program structure.

It's GPL, so someone could take it and run with it. I myself am too lazy.

Thanks! I'm using your beautifier, and finding it pretty robust. I
edited it a little into more idiomatic Ruby (noMoreNamesLikeThis),
made some things more concise, and applied a few rules of my own taste
(outdenting private and protected).

If you're interested:
http://po-ru.com/files/beautify-ruby

Paul.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,163
Latest member
Sasha15427
Top