Page 1 of 1

code completion?

Posted: Tue Sep 14, 2004 6:53 am
by UdoJ
Does code completion only work with classes?
I tried it with structures and it doesn't work. :cry:

Posted: Tue Sep 14, 2004 11:46 am
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

code completion

Posted: Wed Sep 15, 2004 6:01 am
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

Posted: Wed Sep 15, 2004 7:52 am
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

Posted: Wed Sep 15, 2004 9:09 am
by UdoJ
Thanks again for your prompt replay.

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

Udo

Posted: Tue Feb 08, 2005 5:07 am
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

php completion in shareware version

Posted: Wed May 04, 2005 12:04 pm
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

code completion

Posted: Wed May 04, 2005 4:56 pm
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...

Posted: Thu May 05, 2005 9:16 am
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.

code completion?

Posted: Tue Mar 21, 2006 9:04 am
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

Posted: Tue Mar 21, 2006 12:40 pm
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

hello

Posted: Sun May 28, 2006 12:55 am
by Fred
hi cool !!!!!!!!!!!!!!!!!!!!

code completion?

Posted: Tue Jun 12, 2007 8:11 am
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

code completion?

Posted: Tue Jun 12, 2007 8:50 am
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

Posted: Wed Jun 13, 2007 12:45 am
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