[Geany-devel] [Patch] - Improve PHP parser (call tips)

Enrico Tröger enrico.troeger at xxxxx
Sun Apr 18 22:16:09 UTC 2010

On Sun, 18 Apr 2010 03:05:53 +0200, Dominic wrote:

>Am Samstag, den 17.04.2010, 18:14 +0200 schrieb Enrico Tröger:
>> On Mon, 8 Mar 2010 23:40:08 +0100, Enrico wrote:
>> >On Mon, 8 Mar 2010 12:18:39 +0000, Nick wrote:
>> >
>> >>On Sun, 7 Mar 2010 19:20:37 +0100
>> >>Enrico Tröger <enrico.troeger at uvena.de> wrote:
>> >>
>> >>> >You put a weird pattern:
>> >>> >[public|protected|private|static]*
>> >>> >If you wanted to group, you should use ()
>> >>> 
>> >>> I didn't want to group, we don't need to know the actual
>> >>> modifier, we just want to allow only this subset. And yes, it
>> >>> was a group before but there is just no need to.
>> >>
>> >>I think Can is right, [] brackets are only for character ranges,
>> >>not string matching. So () brackets are necessary for matching
>> >>even when ignoring the group.
>> >
>> >Just for the records:
>> >
>> >Yup, we talked about that yesterday afterwards on IRC and once he
>> >told me about that mistake, it was clear.
>> I spent a little more time on this again hoping to get it fixed.
>> In SVN r4828, I adjusted the regular expression for parsing PHP
>> functions a bit and I think it works now as expected or at least
>> better than before. All function definitions I tried (with static,
>> public, ... modifiers and some without and so on) worked and I got
>> the expected argument list as calltip.
>> Though, as muliple times mentioned before, I'm not a PHP guy.
>> Feedback is welcome.
>Your pattern seems to work fine now. I've successfully tested different
>cases as attached and any combination of testcase 1-3 with testcase 4.
>But, I'd like to point out another issue or rather a feature request. I
>don't feel it's that important, at least not for me. Also, it maybe is
>very language-specific for PHP:
>Since we're obviously writing object-oriented PHP here (because we're
>using public static anything and so on), it would be nice, if Geany
>also would parse the so called magic methods [1]. You may noted the
>__construct method in the attached files. This method is called when a
>new instance is created as you see in line 24. For completeness Geany
>should also show calltips in that line when creating the new instance.

That was a great idea :).
As I said, this isn't (easily) possible for the PHP parser, but it was
quite easy for the Python parser and since I missed that feature
already a couple of times in the past, I implemented it.

Thanks for the pointer :).


Get my GPG key from http://www.uvena.de/pub.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.geany.org/pipermail/devel/attachments/20100419/dc405123/attachment.pgp>

More information about the Devel mailing list