Thank you, Lex, for your useful explanation.

So, now, I think that I do not need to make a new parser for Zephir, as the PHP one works to locate Zephir symbols, at least for classes and methods which are the most useful symbols for me. Some work is certainly required for properties and variables, but I can live without for a while.

So setting Zephir files to the PHP type make the trick for symbols locating, but what about highlighting? Can I set Geany to use the PHP parser but not expect the PHP opening tag ?

Regards,

Stéphane

Le 15/05/2014 13:09, Lex Trotman a écrit :
On 15 May 2014 19:50, Stéphane Mourey
<stephane.mourey@impossible-exil.info> wrote:
Thanks all for your help!
I got it! I know what puts the mess in the symbols : it's the Return Type
Hint (http://zephir-lang.com/oop.html#return-type-hints).
So if you change the Hello World example this way :

namespace Test;

class Hello
{
    /**
     * This is a sample method
     */
    public function returnHello() -> string
    {
        return "Hello World!";
    }
}

Highlighting is correct but the symbols do not appears correctly when
setting the document type to C#.

What can I do ?
To explain a little.

Highlighting is purely based on lexical analysis, that is, just the
tokens in the language, and there is a remarkable similarity between
languages. So its easy to get a lexer from another language to work
(albeit with a different list of keywords).  This is done so that
highlighting will work as you type, even if the file does not yet
represent a legal program in the language you are writing it in.

But locating symbols requires the file to be actually parsed, that is
the language syntax must match the syntax that the parser is looking
for.  If the syntax is wrong it will not parse correctly.  So if
zephyr declaration syntax does not match some other language, then no
existing parser is going to understand it.

The parsers are an adaptation of those from the ctags project
(http://ctags.sourceforge.net/) and are written in C.  You would have
to make a zephyr specific parser, possibly by modifying an existing
parser.

Cheers
Lex



Le 15/05/2014 10:14, Lex Trotman a écrit :

On 15 May 2014 17:07, Stéphane Mourey
<stephane.mourey@impossible-exil.info> wrote:

Hi everyone,

I'm new a the list, so just a few word to introduce myself : I am mostly a
PHP developer and I often write for the french magazine "GNU/Linux Magazine
France". I'm using Geany on a daily basis for a long time, and enjoy it more
than any other IDE.

As a PHP developper, I recently discover a new programming language,
dedicated to native PHP extensions. Its name is Zephir, you could learn more
here : http://zephir-lang.com. Its philosophy is to associate the PHP syntax
style with the efficiency of C to enable long-time PHP developer to run
easily their own extensions as fast as C ones and to code them as quickly as
PHP scripts.

So I adopted Zephir, and will certainly use it on a daily basis, as Geany.
So I naturally tried to code Zephir sources with Geany and to make my own
filestype.Zephir.conf. You can see the current state of this work here :
https://github.com/taophp/zephir-geany-fileconf

The fact is that if I set the Zephir file as a PHP file using the menu
Document->Set filetype (I suppose, my geany front end is in French), the
symbols tabs detects all my classes, functions, properties, and all
perfectly, but in the editing area, there is no syntax highlighting until I
add the opening PHP tag "<?php" - but the Zephir compiler will not accept
it. My first attempt to solve this issue was to copy the filetypes.php in a
filetypes.Zephir.conf, and then tried to modify it to avoid the need of the
opening PHP tag. My second attempt was to find another filetypes.* that fit
more my needs. My choice was filetypes.cs, and this was the base of my
project on Gitbub. Now syntax highlighting is correct, but the symbols tab
does not work...

Strange, if I take the "hello world" example from the zephir-lang docs
and simply set filetype C# both highlighting and symbols work.  So
setting both lexer_filetype and tag_parser to C# in the custom
filetype file should work.

Cheers
Lex


Could anyone could tell me how to deal with this issue ?

Regards,

Stéphane Mourey
--
Blog: Impossible Exil
Bitmessage: BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor

_______________________________________________
Users mailing list
Users@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/users



--
Blog: Impossible Exil
Bitmessage: BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor

_______________________________________________
Users mailing list
Users@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/users


--
Blog: Impossible Exil
Bitmessage: BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor