[Geany-devel] Parentheses auto-indentation
Lex Trotman
elextr at xxxxx
Tue Jun 8 02:34:13 UTC 2010
On 8 June 2010 00:43, Colomban Wendling <lists.ban at herbesfolles.org> wrote:
> Hi there!
>
> I'd very much like to see some auto-parentheses indentation in Geany. I mean
> that this kind of indentation would be auto-generated on typing:
> if (cond1 &&
> fun_call (param1,
> param2) &&
> cond3)
> {
> another_call (param1,
> param2);
> /* and so on */
> }
>
> This includes:
>
> Indent new lines to match the position of the last opening parenthesis
> (lines 2, 3, 7);
> Automatically reduce indentation on closing parenthesis to fit the
> indentation of it's matching opening one (lines 4, 5, 8).
>
> I'm trying to get this to work (attached WIP patch, which works but have
> caveats)[1], but I have a couple of problems (probably related to my little
> habit of Scintilla) and questions.
> First, the problems:
>
> How to know if a character is or not part of a comment, string or so? (e.g.
> should be interpreted as a syntactic element by itself) I need this to find
> the parenthesis -- and no, I can't do the same than brace_match() since I
> don't know the position of any of the parentheses.
Use editor.c/is_comment_style()
The brace match indenting code needs fixing too, since it adjusts the
indent of a } in a comment!!!
Also brace_match ability to go forward and backward is wasted since it
is only ever called from close_brace which AFAICT is only ever called
with the current character a }
> Why brace_match() uses the character at (pos - 1) but the style at (pos)?
> This seems to be needed for brackets but breaks with parentheses (see
> comments in the WIP patch).
Hmmm, actually the question is how do braces work when it does that?
Probably pos is always > sci_get_end_styling since a } has just been
added to the buffer and the scintilla documentation says the charadded
notification is called before styling is done.
>
> And now the unique question (not that urgent since the patch isn't ready):
> how to add this as part of the auto-indentation? (I mean, always enable it
> -- I don't think everybody will like --, add a new indent method, a new
> separated setting, or what?)
I think it needs to be a separate setting, parentheses indent mode.
Cheers
Lex
>
> Thanks for your help!
> Colomban
>
>
> [1] But if anybody would like to do this, I'd be happy to let him/her do :D
>
> _______________________________________________
> Geany-devel mailing list
> Geany-devel at uvena.de
> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
>
>
More information about the Devel
mailing list