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