[Geany] Recognising PHP code (and perhaps others)

Lex Trotman elextr at xxxxx
Tue Dec 14 08:34:32 UTC 2010


On 14 December 2010 18:23, Murray Collingwood
<murray at focus-computing.com.au> wrote:
> Hello (first time on this list)
>
> Just a question, maybe something I can hack, maybe something somebody else
> needs to hack?
>
> I have php code that looks like this:
>
>      function puctstatus($puctid) {
>         ...
>      }
>
> The 'Symbols' list in the sidebar then lists for me the function name and
> all is good.
>
> However if my code is like this:
>
>       function puctstatus($puctid,
>                                   $category,
>                                   $flags) {
>          .....
>       }
>
> Then the function is not recognised and does not appear in the symbols list.
>
> Is there a file somewhere full of regex type codes that I can edit to modify
> this or is it all hardcoded in a program somewhere?

Yes there is a regex, but its hard coded.

This is it, where ALPHA and ALNUM are the ranges you would expect

"^[ \t]*[(public|protected|private|static|final)[ \t]*]*[
\t]*function[ \t]+&?[ \t]*([" ALPHA "_][" ALNUM
"_]*)[[:space:]]*(\\(.*\\))"

I'd guess the problem is that \\(.*\\) matches anything in () after
the function name but the regex code only matches against a line at a
time and has no way of continuing the match beyond a line.

The only way to go beyond a line seems to be to use a character by
character hardcoded parser such as C uses.

In tagmanager/php.c there is a bunch of code that looks like someone
started to do it, status unknown.

Cheers
Lex

>
> Cheers
> mc
>
>
>
> --
> Murray Collingwood
> Focus Computing
> p +61 415 24 26 24
> http://www.focus-computing.com.au
>
> _______________________________________________
> Geany mailing list
> Geany at uvena.de
> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany
>
>



More information about the Users mailing list