Menu

#463 Severe code completion bug (it is almost useless now)

open
7
2012-09-26
2004-12-02
No

Consider the following code (copy paste it in a simple
cpp file and save that file) :

class Test
{
public:
void f1();
void f2(int arg);
};

int main()
{
Test t;
Test* pt = &t;
// add code here (case 1)
// add code here (case 2)
return 0;
}

Case 1 :
on the line : // add code here (case 1)
type t. , from the code completion choose f1(), the
line turns into only f1() and not t.f1()

Case 2 :
on the line : //add code here (case 2)
type pt-> , from the code completion choose f1(), the
line turns into pt-f1() and not pt->f1()

It is obvious that code completion is totally unusable
like this.

Hoping for a quick fix,
kind regards,
Lieven

Discussion

  • Marek Januszewski

    Logged In: YES
    user_id=609236

    the whole parser needs either complete rewrite, lots of
    patching or using another component (like ctags which I
    barely know). so it's probably not going to be fixed
    quickly. :( was it the same with 4990?

     
  • Lieven de Cock

    Lieven de Cock - 2004-12-03

    Logged In: YES
    user_id=602705

    gonna try it with 4.9.9.0 (I'll retrieve some older versions
    out of cvs), but I have the impression it is a rather new
    bug, maybe 1 week old or something, can't remember I 've
    seen this one for a long time.
    I think the parser is doing more or less ok here, since it
    allows to startup the code completion, it seems the error is
    more in the replacing (or even the adding) part of the
    selected entry in the code completion box.

    Lieven

     
  • Lieven de Cock

    Lieven de Cock - 2004-12-04

    Logged In: YES
    user_id=602705

    As promised :
    I tried this with build 4.9.9.0 (cvs : Revision 1.139) : All OK.
    Build 4.9.9.1 (cvs : revision 1.140), NOT OK, so it seems
    that around that time the bug was introduced.

    I do hope this one get fixed soon, I sense this to be a
    major bug preventing users to actually use devcpp, there are
    other problems also with code completion, from time to time
    it fails or it suggests a wrong set of options, but this
    time it not usable at all because when the choosen option is
    inserted, the code becomes invalid, and that's the main
    purpose of using a coding IDE, creating correct code.

    Note : it seems different (optimized?) builds are created
    from time to time : 1.139 and 1.140 are 3MB, while the
    castle of polands build are below 1 MB, I do remember that
    once the builds in cvs were also below 1 MB.

     
  • Scott Simontis

    Scott Simontis - 2005-01-20

    Logged In: YES
    user_id=905708

    I don't think it happened with 4.9.9.0. I just upgraded
    today and noticed this error. Hopefully it will be fixed soon...

     
  • Nobody/Anonymous

    Logged In: NO

    I was going to post this bug too.

    I have also noticed the following...

    If you type at least the first letter of the member before
    selecting it, it seems to work ok. Similarly if you type #
    before selecting the member it works ok (found this when I
    accidentally caught the # key).

    Perhaps this will help find locate the problem.

     
  • Lieven de Cock

    Lieven de Cock - 2005-01-27

    Logged In: YES
    user_id=602705

    Also some more info, and showing how SEVERE this bug is
    (please fix asap ...) :
    create new cpp file and give it this contents :
    struct MyStruct
    {
    int member1;
    int member2;
    };

    int main()
    {
    MyStruct name;
    return 0;
    }

    Save the file. Now type after the line declaring 'name'
    (first press enter :-) )

    name.

    (NOTE : if no code completion kicks in, close the file and
    reopen it, seems like the parsing not always kicks in
    immediately), then from the code completion, choose either
    member, and watch how member1 (or member2) entirely replaces
    the "name."
    So this is NOT USABLE at ALL. :-(

    Extra : I tested with the previous remark made by 'nobody',
    if indeed after the code completion kicks in you type m, and
    then select one of the two choices, then we get a good
    behaviour and we end up with name.member1.

    So Mister nobody, thank you very much, this is at least some
    workaround.

    kind regards,
    Lieven

     
  • Carlos García del Monte

    Logged In: YES
    user_id=534298

    It also happens with the ::, in case
    Class::Function()
    When you type Class:: and then select the function you end
    with Class:

     
  • ionstream

    ionstream - 2005-02-21

    Logged In: YES
    user_id=1144095

    Yes, this is pretty bad. Also, many times, adding a "."
    after a class causes the entire object to be erased, leaving
    just the member function/variable.

     
  • Marek Januszewski

    diff for test version

     
  • Marek Januszewski

    Logged In: YES
    user_id=609236

    I didn't submit it into cvs yet, because some other similar
    things could be broken now - so please just try working with
    dev-c++ as usual and see if everything is ok

     
  • Lieven de Cock

    Lieven de Cock - 2005-02-22

    Logged In: YES
    user_id=602705

    I have tried typing to end up with :
    t. --> t.f1();
    pt-> --> pt->f1();
    pt. --> pt.f1();

    these work fine. :-)

    and for the example :
    name. ----> name.member1
    name. ----> name.member2

    so this one is also ok.

    My first conclusion out of this short test : it works.
    This evening I will have been working with it for 1 day, so
    more feedback will be available then.
    But it looks very promising !!

    Thanks Marek,
    kind regards,
    Lieven

     
  • tim

    tim - 2005-02-27

    Logged In: YES
    user_id=1037137

    in win98SE it generates access violation repeatably.eg.
    int main()
    {
    SYSTEMTIME SysTime; //declaration of variable
    SysTime. //when you type the . you get the code completion
    } //popup. doubleclicking any of the items causes access
    //violation.

    see http://sourceforge.net/tracker/index.php?
    func=detail&aid=953813&group_id=10639&atid=110639

    for details.
    Tim

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.