Severe code completion bug (it is almost useless now)
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
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
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?
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
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.
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...
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.
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
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:
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.
diff for test version
Logged In: YES
user_id=609236
could everybody please try this version:
http://www.castlesofpoland.com/dev-cpp/devcpp.exe
http://www.castlesofpoland.com/dev-cpp/devcpp.map
?
thanks,
Marek
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
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
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