Page 1 of 1

CTAGS and the function list

Posted: Mon Dec 18, 2006 4:39 am
by AlanF
We have just upgraded 3.8 to 3.95. Most things are working, however we cannot seem to trick the function list into populating. We are using Zeus with Microstation mdl which is a slightly extended version of C. The embedded CTAGS (exuberant ?) is finding and populating all but the function list. We have extended the c/c++ doc type with the appropriate .mc extension that MDL uses and it is happily colour coded as C, the included structures etc. are found. Just the functions are missing. As an experiment we copied and renamed one of the files to just .c and automagically the function list was populated. So it looks like the tag generator is not seeing the file as a "C" file as far as functions are concerned.

Does anyone have experiences (or hopefully solutions) like this ?

TIA

Alan

Posted: Mon Dec 18, 2006 7:03 am
by jussij
Hi Alan,
So it looks like the tag generator is not seeing the file as a "C" file as far as functions are concerned.
It sounds like the xtags.exe (ie ctags.exe) needs to be changed to treat the mdl file as a c file.

If you download the source code for ctags from here: http://ctags.sourceforge.net

in the c.c file you will find this function:

Code: Select all

extern parserDefinition* CParser (void)
It needs to be changed to include the mdl file extension. You then need to rebuild ctags.exe and copy this file back to the Zeus directory as xtags.exe.

If you don't have access to a c/c++ compiler let me know and I will make this change for you and upload a new xtags.exe to the Zeus web site.

Cheers Jussi

Posted: Tue Dec 19, 2006 2:33 am
by AlanF
Hi Jussij,

Thanks for the response. Sound like a little job for me in the New Year.

In the meantime, I've managed to use the public ctags, with the -force-language=C switch to recognize the .mc files as C files, and I've generated a tags file that contains the function references that I am expecting.

Is there anyway of getting Zeus to recogize and use this tag file ? I've tried doing a "type tags > workspace.zbd" and then re-opening the workspace. When I attempt a code completion I receive a dialog telling me that the tags file is in a wrong format.....and that I should re-generate it using xbuilder, which is what I am trying to circumvent.

Any possible workarounds ?

Thanks,

Alan.

Posted: Tue Dec 19, 2006 2:39 am
by jussij
Hi Alan,
Any possible workarounds ?

Unfortunately not. The xtags.exe command line is hard coded into the xtags.dll :)

But I will make a change so that in future the command line is read from an INI file ;)

Cheers Jussi

Posted: Tue Dec 19, 2006 10:16 pm
by jussij
Hi Allan,
Any possible workarounds ?
Here is a new xTags.dll that allows the ctags.exe command line to be configured ;)

http://www.zeusedit.com/z300/xTags.zip

To install this new version backup the current xTags.dll and replace it with the one in the zip file.

To configure the command line start then close Zeus and in the Zeus install directory you will find an xTags.ini file where you can define the new command line.

Cheers Jussi

Posted: Wed Dec 20, 2006 12:35 am
by AlanF
Thanks Jussi, I've installed it and created a new workspace and it is giving some trouble :oops: . I've emailed you the error and log files that Zeus is creating. I've included the ini that I'm using and the zbd being produced.

I've tried it with both the provided xtags.exe and ctags.exe 5.6 from sourceforge. Should I be using one or the other ?

Regards,

Alan.

Posted: Wed Dec 20, 2006 1:53 am
by jussij
Hi Alan,

Unfortunately it looks like the xTags.dll that was posted is not compatible with your version of Zeus executable :(

The reason for this is the current Zeus source code tree contains a lot of code to generally speed up the Zeus.exe and I suspect some of these code changes make the xTags.dll will on compatible with Zeus.exe built from the current code tree :(

You will need to revert back to the older xTags.dll backup copy for now, until I have time to restore the old code base and create a backwardly compatible xTags.dll.

If you don?t have a backup you can get the previous xTags.dll from the zeus 395z patch found here:

http://www.zeusedit.com/forum/viewtopic.php?t=1000

Sorry for the stuff up on my part :oops:

Cheers Jussi

Posted: Wed Dec 20, 2006 2:17 am
by AlanF
Hi Jussi,

Thanks for the quick response. Yes, I'd already rolled back and got back to my :wink: real work.

Regards,

Alan.

Posted: Mon Jan 22, 2007 10:05 pm
by jussij
The latest Zeus 3.96a patch implements this feature correctly :)

Refer to this link for more details: http://www.zeusedit.com/forum/viewtopic.php?t=1035

Cheers Jussi