[Geany-Users] Using Geany for Zephir sources

Lex Trotman elextr at xxxxx
Thu May 15 13:13:50 UTC 2014


On 15 May 2014 22:00, Stéphane Mourey
<stephane.mourey at impossible-exil.info> wrote:
> 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.

I presume you mean it works if you start the file with <?.

>
> 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 ?

My quick look shows it is hard coded in the PHP parser to expect <?php
or <? so no it can't be set.  This makes sense as the PHP language
specifies that its parser only looks at code inside these tags.

Cheers
Lex

>
> Regards,
>
> Stéphane
>
> Le 15/05/2014 13:09, Lex Trotman a écrit :
>
> On 15 May 2014 19:50, Stéphane Mourey
> <stephane.mourey at 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 at 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 at lists.geany.org
> https://lists.geany.org/cgi-bin/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> Users at lists.geany.org
> https://lists.geany.org/cgi-bin/mailman/listinfo/users
>
>
>
> --
> Blog: Impossible Exil
> Bitmessage: BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor
>
> _______________________________________________
> Users mailing list
> Users at lists.geany.org
> https://lists.geany.org/cgi-bin/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> Users at lists.geany.org
> https://lists.geany.org/cgi-bin/mailman/listinfo/users
>
>
>
> --
> Blog: Impossible Exil
> Bitmessage: BM-2D7keexEn8tGyYBEqGt88U2CZtpEnRzZor
>
> _______________________________________________
> Users mailing list
> Users at lists.geany.org
> https://lists.geany.org/cgi-bin/mailman/listinfo/users
>


More information about the Users mailing list