On Mon, 15 Dec 2008, Enrico Tröger wrote:
On Mon, 15 Dec 2008 13:12:54 +0000, Nick Treleaven nick.treleaven@btinternet.com wrote:
On Tue, 9 Dec 2008 05:14:08 +0100 (CET) ioguix@free.fr wrote:
In a first step, when opening a brace (ie. ( { [ ), we could check if no closing brace already match it before auto-closing it. That what I tried to do in the attached patch.
I actually worked on the patch yesterday but had some weird connectivity issues (some sites weren't reachable including sourceforge.net, so no commits).
Ok. Let me know if this patch need some more work and you prefer me to work on this a little bit more. However, it could be easier to commit small bunch of patch instead a big one. Easier to review as well. But it's a matter of taste :) .
@ioguix: The second of your patch was about to change handling of GEANY_AC_SQUOTE with end_pos which was IMO a typo and should have been in the GEANY_AC_SBRACKET, so I moved it there. Correct me if I'm wrong.
Oops, I'm confused...Thanks.
- can we really test if we are actually in a in string whatever the
current language style ?
Yes, but maybe not all filetypes are completely supported. See is_string_style() in editor.c.
Though this function treats all kinds of strings equally, that is for languages like C or Python where you have different kind of strings ('blah', "blah", ''' blag ''', ...) this function returns TRUE for all kinds. But you probably want something more fine-grained to differentiate between 'blah' and "blah".
Ok. This is a good start anyway. We could at least disabling auto-close quotes inside a string... However, I noticed simple quoted strings and double quoted strings are sometime highlighted with different colors (depending of the current language type, C doesn't, PHP does)...So I guess Scintilla parser has some internal mechanism to handle this.
@nick: If we can do this using a plugin, I think it is do-able...I'm not really closed to the idea as I thought maybe we could fine tune this kind of feature using some language oriented configuration. Using a language oriented configuration plugin, we could do far more than just auto-closing quotes and brackets (don't ask me what tonight plz :P). I should admit however that I'm not very enclin presently to maintain such a plugin which needs a lot of work to be very interesting...
Regards, Enrico
-- Get my GPG key from http://www.uvena.de/pub.asc