code completion?

Get help with the installation and running of the Zeus IDE. Please do not post bug reports or feature requests here. When in doubt post your question here.
Post Reply
UdoJ
Posts: 6
Joined: Tue Sep 14, 2004 6:46 am

code completion?

Post by UdoJ »

Does code completion only work with classes?
I tried it with structures and it doesn't work. :cry:
jussij
Site Admin
Posts: 2650
Joined: Fri Aug 13, 2004 5:10 pm

Post by jussij »

Does code completion only work with classes? I tried it with structures and it doesn't work.
The short answer is yes Zeus should support structures but unfortunately in reality things are never quite so simple :(

Zeus uses the Exuberant Ctags utility to generate the tags database. This tagger does supports some 33 languages, but unfortunatly some of the languages are better supported than others. Thus the quality of the code completion depends on the quality of the Zeus code, the quality of the ctags code and also the language you are coding :(

But all is not lost. :) The first thing you need to do is make sure you are using the latest xtags.dll file.

Do this by refering to the Intellisensing Bug announcement.

If the latest xtags.dll does not fix the problem, the next step is posting a small code snippet that highlights the problem. For example something like this is all that is required:

Code: Select all

struct MyStructure
{
  MyStructure();
  
  int method();
}

MyStructure test;

test.<= intellisensing fails here :(

Making sure you quote the file extension (ie programming language) the code snippet represents.

I will then take a look at the problem and with a bit of luck it might be possible to post a new xtags.dll or a new ctags.exe that fixes the bug.

Jussi
UdoJ
Posts: 6
Joined: Tue Sep 14, 2004 6:46 am

code completion

Post by UdoJ »

Thanks for your prompt reply but unfortunately the change of xtags.dll didn't solve the problem. :cry:

As requested here is a small code sample that shows the problem:

Code: Select all

file: Main.C

typedef struct tagCANCfg
{
  BYTE                bIRQ;
  BYTE                bSysIntr;

  BOOL                boKillIsr;
  HANDLE              hCANIsrEvent;
  HANDLE              hCANIsr;
} CANCFG, *PCANCFG;

void main (void)
{
  CANCFG      CANConfig;

  CANConfig.<= intellisensing fails here :(
}
I hope it helps to find the problem.

Udo
jussij
Site Admin
Posts: 2650
Joined: Fri Aug 13, 2004 5:10 pm

Post by jussij »

Unfortunately this looks like a bug with ctags.exe :(

This is why it does not work. If you look at the Zeus class browser window you will see the tagCANCfg structure is defined and this sturcture does intellisense. For example if you change the example code to read as follows:

Code: Select all

void main (void)
{
  CANCFG      CANConfig;

  CANConfig.<= intellisensing fails here :(

  struct tagCANCfg CANConfig;

  CANConfig.<= intellisensing now works :)
}
then the intellisensing will work for the second case but not the first.

Next if you look at the tags file produced by ctags.exe for this file you get the following tag information (slightly modified for easier reading):

Code: Select all

!_TAG_FILE_FORMAT  2  /extended format; --format=1 will not append ;" to lines/
!_TAG_PROGRAM_AUTHOR  Darren Hiebert  /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME  Exuberant Ctags  //
!_TAG_PROGRAM_URL  http://ctags.sourceforge.net  /official site/
!_TAG_PROGRAM_VERSION  5.5b  //
!Name        File   /<---- Search String ------>; "<-- Browser Information -->
CANCFG       main.c /^} CANCFG, *PCANCFG;     $/; " t file:
PCANCFG      main.c /^} CANCFG, *PCANCFG;     $/; " t file:
bIRQ         main.c /^  BYTE      bIRQ;       $/; " m struct:tagCANCfg  file:
bSysIntr     main.c /^  BYTE      bSysIntr;   $/; " m struct:tagCANCfg  file:
boKillIsr    main.c /^  BOOL      boKillIsr;  $/; " m struct:tagCANCfg  file:
hCANIsr      main.c /^  HANDLE    hCANIsr;    $/; " m struct:tagCANCfg  file:
hCANIsrEvent main.c /^  HANDLE hCANIsrEvent;  $/; " m struct:tagCANCfg  file:
main         main.c /^void main (void)        $/; " f
tagCANCfg    main.c /^typedef struct tagCANCfg$/; " s file:
Zeus uses the browser information of the tags file to populate the class browser and it is also this information that is used for intellisensing.

The variables that do not intellisense are these:

Code: Select all

CANCFG       main.c /^} CANCFG, *PCANCFG;   $/  ; " t file:
PCANCFG      main.c /^} CANCFG, *PCANCFG;   $/  ; " t file:
which ctags has correctly defined as typedefs (ie 't') and if you again look at the Zeus class browser window you will also see the variables displayed in the typedef section.

But the problem is the tags file does contain any information on how to link these typedefs back to the original structure and hence there is no intellisensing information :(

Jussi
UdoJ
Posts: 6
Joined: Tue Sep 14, 2004 6:46 am

Post by UdoJ »

Thanks again for your prompt replay.

So, I guess we'll have to wait for a new version of ctags then. :(

Udo
jussij
Site Admin
Posts: 2650
Joined: Fri Aug 13, 2004 5:10 pm

Post by jussij »

Hi Udo,

An Experimental Doxygen tagger has just been uploaded to the Zeus web page. As the name suggests, this is still very much in the early stages of development, but I am hoping that it might help with the some of the tagging problems that you have raised.

Cheers Jussi
Thomas

php completion in shareware version

Post by Thomas »

Hi, I just installed the shareware version. Made a workspace, opened a php file and tried code completion. Nothing happened.

If I open the workspace options from the page under "Tags" all seems fine with the default settings.

How can I get this to work?

greetings,

Thomas
Thomas Noest

code completion

Post by Thomas Noest »

Oooh, silly me! I thought code completion would work on the keywords. I must be spoiled....

But, aint it a good idea?

Till then I'll manage with templates...
jussij
Site Admin
Posts: 2650
Joined: Fri Aug 13, 2004 5:10 pm

Post by jussij »

One of the items on the Zeus todo list is to have some sort of code completion for keywords. I would assume this feature would work in similar way to the Microsoft Visual Basic IDE, where by keywords are auto completed and auto corrected for spelling etc. etc.

But there are lots of things on the todo list so don't expect this feature any time soon.

Cheers Jussi

PS: At least for short term Zeus will continue to use ctags.exe as it's source of browser information, so the for now the dOxygen tagger should only be considered as very experimental.
UdoJ
Posts: 6
Joined: Tue Sep 14, 2004 6:46 am

code completion?

Post by UdoJ »

Hi Jussi,

I'm now using Zeus version 3.95t and hoped that intellisensing on C files is working now, but unfortunately it doesn't:cry:
It's still the same behavior as discribed in the post from Wed Sep 15, 2004 (see above).

Do you have any idea how to solve this?

Udo
jussij
Site Admin
Posts: 2650
Joined: Fri Aug 13, 2004 5:10 pm

Post by jussij »

Do you have any idea how to solve this?
A new Zeus patch is now available that should help fix some of these issues :)

For more details go to this link: http://www.zeusedit.com/forum/viewtopic.php?t=613

Cheers Jussi
Last edited by jussij on Sun May 28, 2006 2:42 am, edited 1 time in total.
Fred

hello

Post by Fred »

hi cool !!!!!!!!!!!!!!!!!!!!
HardyPill
Posts: 13
Joined: Wed Feb 09, 2005 12:58 pm
Location: Germany

code completion?

Post by HardyPill »

Hi Jussi !

I didn't work with any "C" project for a few month. As I started with a new development in "C" again, I got problems with the intellisensing (or code completion):
It's the same behavior as author "UdoJ" discribed in the post from Wed Sep 15, 2004.
In the meantime I always updated Zeus to the actual version and I also installed the newest patches (now: 3.96h).
Example:

Code: Select all

typedef struct tagINTELLI_TEST
{
    int     iVarA;
    int     iVarB;
    long    lVar;
} INTELLI_TEST;


void IntelliTestFunct()
{
  struct    tagINTELLI_TEST     Intellisens;
            INTELLI_TEST        IntellisensNot;

  Intellisens.iVarA;        // <-- Intellisensing is working

  IntellisensNot.           // <-- Intellisensing doesn't work !!!!!!!!
}
Can you explain this?
In 2006 as the problem was fixed, the intellisensing feature worked very good, but now it seems to be a step back ....

Regards
Michael
HardyPill
Posts: 13
Joined: Wed Feb 09, 2005 12:58 pm
Location: Germany

code completion?

Post by HardyPill »

Hi Jussi !

I did some tests with old versions. Here are my results:
  • Overwrite V3.96h with patch 3.96c -->working
    Overwrite V3.96c with patch 3.96d -->working
    Overwrite V3.96d with patch 3.96e -->not working, About dialog tells 3.96d!
    Overwrite V3.96e with patch 3.96f -->not working
Then I restored V3.96h to my Zeus installation folder (I saved it before :) ). Then I copied the xtags.exe and xtags.dll from patch 3.96d in my Zeus installation folder and ... it's working too !!!

So maybe this can help you.

Regards
Michael
jussij
Site Admin
Posts: 2650
Joined: Fri Aug 13, 2004 5:10 pm

Post by jussij »

Hi Michael,
About dialog tells 3.96d!

This was a small bug in the Zeus 3.96e build :oops:
Then I restored V3.96h to my Zeus installation folder (I saved it before ). Then I copied the xtags.exe and xtags.dll from patch 3.96d in my Zeus installation folder and ... it's working too !!!

I suspect the bug will be in the xtags.exe file.

The Zeus xtags.exe file is just ctags.exe renamed: http://ctags.sourceforge.net

When ever a new ctags.exe becomes available the xtags.exe file is also updated in Zeus.

Also these ctags changes that I made for the D language might have introduced a bug:

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

In any case as you have found out it is possible to use any version of xtags.exe or even the ctags.exe with Zeus ;)

Cheers Jussi
Post Reply