On 13-09-18 11:47 AM, Tory Gaurnier wrote:
On 09/17/2013 06:45 PM, Matthew Brush wrote:
On 13-09-17 03:59 PM, Tory Gaurnier wrote:
[...] I didn't realize I'd have to create the lexer myself. Is it possible to use the C lexer that's already in Geany and then work it into the QML file type? The only thing I really want to get working is the symbol list (which would be the ctags thing you refered to if I'm not mistaken, right?).
You could look at the CTags tutorial about extending[1], it has an example for writing a "regex-based" parser which will probably be quite a bit easier for a language like QML, if maybe less powerful than a character-based parser.
Cheers, Matthew Brush
[1] http://ctags.sourceforge.net/EXTENDING.html
Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel
Ok, so I've been looking at the CTags tutorial you posted, and it really looks pretty easy, especially using regex, but there is one thing I can't find. Would you happen to know if when using regex it's possible to have mulitple regexes? For example, the tutorial has this:
|addTagRegex (language, "^def[ \t]*([a-zA-Z0-9_]+)", "\1", "d,definition", NULL);|
Which is using the regex to create tags labelled 'definition' (unless I'm missing something). But since QML supports javascript I at the very least want to have it recognize Items/Components, and functions. And I'd eventually like to have it label the Items/Components by ID if it's present.
Now I know there's also the callback method, but for now, do you know if it will work to have addTagRegex appear multiple times?
Yeah, I think you can call it multiple times, see COBOL parser, for example: https://sourceforge.net/p/ctags/code/HEAD/tree/trunk/cobol.c
Also, I can't seem to find anything on how I'll even test this, do you know if ctags can maybe be run from terminal or something???
ctags is actually a command-line (only) program, the fork we have in Geany was an attempt by the/an Anjuta developer to make it into a library for use by IDEs and such. So yeah, your best bet is to check out CTags SVN code, add your parser to it, so you can test it standalone, and also it has the advantage that it will be fully compatible with upstream CTags so you can contribute it to that project first and all of its users will be able to use CTags for QML code. Once you have it all working, it should be quite trivial to move it into Geany.
Cheers, Matthew Brush