Hi Colomban,
Here are some comments on the subject branch. Solutions left as an exercise for the reader since I don't have any ;)
C language, which I assume represents all {} languages
1. Indents relative to the previous line, that means that (tabs, width=4):
if(long && more){ blah;
is wrong, blah is indented too far, and hard to fix because unindent remains offset (by the extra indent of "more") until the start of the line. Maybe calculate new indent relative to the previous indent level, not the alignment?
This is the same as current, and just as annoying :)
Can't find the gedit plugin, so tried emacs 23.4, it indented correctly (including indenting "more") without any help from me, but didn't indent at all until the ) after "more" and the ; after "blah" which is really disconcerting but understandable. I guess it has a "brace match" type thing for the () and indents next line by { level at ;.
2. Can't see brace matching problem? Maybe define better.
3. Typing } anywhere (outside comment) causes a fluctuating indent, annoying whilst editing. Not really sure what is going on here, seems very dependent on whats on this and the last line, can't find a pattern.
4. probably part of the above:
if(long && more){ do; it; }
removes the alignment of "more" when } is typed. But as I read the unindent regex, it shouldn't work unless the } is only preceded by whitespace?
Python, seems ok, but as I said on IRC, I don't expect it to autoexdent.
Can't see anything new wrong with Ruby, but I don't know much what it needs.
You havn't done lisp or haskell yet :D
Cheers Lex