Thread: [cedet-semantic] Problem with cedet - or - how do I invoke/configure it?
Brought to you by:
zappo
From: Nathan H. <ce...@lo...> - 2008-04-23 21:37:53
|
Hi, I am unsure how I should configure and invoke code completion. I downloaded the cvs version, compiled it and added the line in the INSTALL file to my .emacs file. I typed this into a new cpp file: Class Test { TestFunction(); }; Test:: Now I want semantic to complete with TestFunction(); ... how ... from earlier days I remember: semantic-complete-analyze-inline But this gives me: Making completion list... [2 times] eieio-oref: Wrong type argument: (or object-p class-p), nil Wrong type argument: (or object-p class-p), nil [3 times] Is there some guide on how to use semantic with a project? Or how can I find out? Thanks! Nathan |
From: Eric M. L. <er...@si...> - 2008-04-24 01:06:30
|
Hi, You've provided a case I had not yet done any testing on. There were several things preventing this from working: 1) you capitalized Class. Semantic currently only parses classes in lower case. 2) :: was not a symbol separator in C/C++. I fixed this. 3) completions outside of any declaration currently had no tag class to complete to. I fixed that too. 4) semantic-complete-inline-analyzer doesn't provide a good error message. This is also easy to fix. After tidying these up, your example provides completions for me. These changes are now in CVS, so you ought to be good to go. Eric >>> Nathan Huesken <ce...@lo...> seems to think that: >Hi, > >I am unsure how I should configure and invoke code completion. >I downloaded the cvs version, compiled it and added the line in the INSTALL file to my .emacs file. > >I typed this into a new cpp file: > >Class Test >{ > TestFunction(); >}; > >Test:: > >Now I want semantic to complete with TestFunction(); ... how ... from earlier days I remember: >semantic-complete-analyze-inline > >But this gives me: > >Making completion list... [2 times] >eieio-oref: Wrong type argument: (or object-p class-p), nil >Wrong type argument: (or object-p class-p), nil [3 times] > >Is there some guide on how to use semantic with a project? >Or how can I find out? [ ... ] -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: Nathan H. <ce...@lo...> - 2008-04-26 14:00:05
|
Hi, Thanks for the fast response! I do not get an error message, but now semantic tells me: Inline completion net needed. Thanks, Nathan On Wed, Apr 23, 2008 at 09:06:21PM -0400, Eric M. Ludlam wrote: > Hi, > > You've provided a case I had not yet done any testing on. > There were several things preventing this from working: > > 1) you capitalized Class. Semantic currently only parses classes in > lower case. > > 2) :: was not a symbol separator in C/C++. I fixed this. > > 3) completions outside of any declaration currently had no tag class > to complete to. I fixed that too. > > 4) semantic-complete-inline-analyzer doesn't provide a good error > message. This is also easy to fix. > > After tidying these up, your example provides completions for me. > These changes are now in CVS, so you ought to be good to go. > > Eric > > >>> Nathan Huesken <ce...@lo...> seems to think that: > >Hi, > > > >I am unsure how I should configure and invoke code completion. > >I downloaded the cvs version, compiled it and added the line in the INSTALL file to my .emacs file. > > > >I typed this into a new cpp file: > > > >Class Test > >{ > > TestFunction(); > >}; > > > >Test:: > > > >Now I want semantic to complete with TestFunction(); ... how ... from earlier days I remember: > >semantic-complete-analyze-inline > > > >But this gives me: > > > >Making completion list... [2 times] > >eieio-oref: Wrong type argument: (or object-p class-p), nil > >Wrong type argument: (or object-p class-p), nil [3 times] > > > >Is there some guide on how to use semantic with a project? > >Or how can I find out? > [ ... ] > > -- > Eric Ludlam: er...@si... > Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: Eric M. L. <er...@si...> - 2008-04-28 02:54:53
|
If you take your sample code, you are right, it will say no completion needed because there is nothing to complete. If you have this: class Test { TestFunction(); }; Test::-!- Where -!- is a cursor, then there is nothing to put there. Or, my understanding of C++ tells me there is nothing to put there which is what I told Semantic to do. If you instead have: namespace foo { class Test { TestFunction(); }; } foo::-!- It ought to complete with Test, or did so when I was twiddling the code. If not, I may have missed checking in some change. Eric >>> Nathan Huesken <ce...@lo...> seems to think that: >Hi, > >Thanks for the fast response! >I do not get an error message, but now semantic tells me: > >Inline completion net needed. > >Thanks, >Nathan > >On Wed, Apr 23, 2008 at 09:06:21PM -0400, Eric M. Ludlam wrote: >> Hi, >> >> You've provided a case I had not yet done any testing on. >> There were several things preventing this from working: >> >> 1) you capitalized Class. Semantic currently only parses classes in >> lower case. >> >> 2) :: was not a symbol separator in C/C++. I fixed this. >> >> 3) completions outside of any declaration currently had no tag class >> to complete to. I fixed that too. >> >> 4) semantic-complete-inline-analyzer doesn't provide a good error >> message. This is also easy to fix. >> >> After tidying these up, your example provides completions for me. >> These changes are now in CVS, so you ought to be good to go. >> >> Eric >> >> >>> Nathan Huesken <ce...@lo...> seems to think that: >> >Hi, >> > >> >I am unsure how I should configure and invoke code completion. >> >I downloaded the cvs version, compiled it and added the line in the INSTALL file to my .emacs file. >> > >> >I typed this into a new cpp file: >> > >> >Class Test >> >{ >> > TestFunction(); >> >}; >> > >> >Test:: >> > >> >Now I want semantic to complete with TestFunction(); ... how ... from earlier days I remember: >> >semantic-complete-analyze-inline >> > >> >But this gives me: >> > >> >Making completion list... [2 times] >> >eieio-oref: Wrong type argument: (or object-p class-p), nil >> >Wrong type argument: (or object-p class-p), nil [3 times] >> > >> >Is there some guide on how to use semantic with a project? >> >Or how can I find out? >> [ ... ] [ ... ] -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: Nathan H. <ce...@lo...> - 2008-04-28 11:32:43
|
Hi, Yes, of course. I was so focused on why completion did not work, I did not see that the code makes no sense. Your example with the workspace works! Still, if I modify my example, so that it makes sense: class Test { public: void TestFunc(int a); }; void Test::-|- It does not complete. With all the mails I am sending, I feel like I should mention: Thanks for the great work! CEDET is great and helps me a lot! Greetings, Nathan On Sun, Apr 27, 2008 at 10:54:44PM -0400, Eric M. Ludlam wrote: > If you take your sample code, you are right, it will say no completion > needed because there is nothing to complete. > > If you have this: > > class Test > { > TestFunction(); > }; > > Test::-!- > > Where -!- is a cursor, then there is nothing to put there. Or, my > understanding of C++ tells me there is nothing to put there which is > what I told Semantic to do. If you instead have: > > namespace foo { > class Test > { > TestFunction(); > }; > } > > foo::-!- > > It ought to complete with Test, or did so when I was twiddling the > code. If not, I may have missed checking in some change. > > Eric > > >>> Nathan Huesken <ce...@lo...> seems to think that: > >Hi, > > > >Thanks for the fast response! > >I do not get an error message, but now semantic tells me: > > > >Inline completion net needed. > > > >Thanks, > >Nathan > > > >On Wed, Apr 23, 2008 at 09:06:21PM -0400, Eric M. Ludlam wrote: > >> Hi, > >> > >> You've provided a case I had not yet done any testing on. > >> There were several things preventing this from working: > >> > >> 1) you capitalized Class. Semantic currently only parses classes in > >> lower case. > >> > >> 2) :: was not a symbol separator in C/C++. I fixed this. > >> > >> 3) completions outside of any declaration currently had no tag class > >> to complete to. I fixed that too. > >> > >> 4) semantic-complete-inline-analyzer doesn't provide a good error > >> message. This is also easy to fix. > >> > >> After tidying these up, your example provides completions for me. > >> These changes are now in CVS, so you ought to be good to go. > >> > >> Eric > >> > >> >>> Nathan Huesken <ce...@lo...> seems to think that: > >> >Hi, > >> > > >> >I am unsure how I should configure and invoke code completion. > >> >I downloaded the cvs version, compiled it and added the line in the INSTALL file to my .emacs file. > >> > > >> >I typed this into a new cpp file: > >> > > >> >Class Test > >> >{ > >> > TestFunction(); > >> >}; > >> > > >> >Test:: > >> > > >> >Now I want semantic to complete with TestFunction(); ... how ... from earlier days I remember: > >> >semantic-complete-analyze-inline > >> > > >> >But this gives me: > >> > > >> >Making completion list... [2 times] > >> >eieio-oref: Wrong type argument: (or object-p class-p), nil > >> >Wrong type argument: (or object-p class-p), nil [3 times] > >> > > >> >Is there some guide on how to use semantic with a project? > >> >Or how can I find out? > >> [ ... ] > [ ... ] > > -- > Eric Ludlam: er...@si... > Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: Eric M. L. <er...@si...> - 2008-04-28 13:12:30
|
Oy, your new sample is tough. The problem is that the code fragment is too incomplete for semantic to know what to do. We recognize the pattern, but the parser will just get confused. If the pattern was: void Test::-!- () { } There might be enough there for Semantic to figure it out. I could allow for tags of other types to appear in empty space like that, but then the completion engine starts getting less smart. Fortunately, there is a solution. You can use copy-tag, and yank tag to do that work for you. Though, I must say, I'm not entirely sure I ever tested that pattern w/ namespaces. There is also the beginnings of a generic tool in SRecode that will implement empty methods from a C++ class. Eric >>> Nathan Huesken <ce...@lo...> seems to think that: >Hi, > >Yes, of course. I was so focused on why completion did not work, I did not see that the code makes no sense. >Your example with the workspace works! Still, if I modify my example, so that it makes sense: > >class Test >{ >public: > void TestFunc(int a); >}; > >void Test::-|- > >It does not complete. > >With all the mails I am sending, I feel like I should mention: >Thanks for the great work! CEDET is great and helps me a lot! > >Greetings, >Nathan > >On Sun, Apr 27, 2008 at 10:54:44PM -0400, Eric M. Ludlam wrote: >> If you take your sample code, you are right, it will say no completion >> needed because there is nothing to complete. >> >> If you have this: >> >> class Test >> { >> TestFunction(); >> }; >> >> Test::-!- >> >> Where -!- is a cursor, then there is nothing to put there. Or, my >> understanding of C++ tells me there is nothing to put there which is >> what I told Semantic to do. If you instead have: >> >> namespace foo { >> class Test >> { >> TestFunction(); >> }; >> } >> >> foo::-!- >> >> It ought to complete with Test, or did so when I was twiddling the >> code. If not, I may have missed checking in some change. >> >> Eric >> >> >>> Nathan Huesken <ce...@lo...> seems to think that: >> >Hi, >> > >> >Thanks for the fast response! >> >I do not get an error message, but now semantic tells me: >> > >> >Inline completion net needed. >> > >> >Thanks, >> >Nathan >> > >> >On Wed, Apr 23, 2008 at 09:06:21PM -0400, Eric M. Ludlam wrote: >> >> Hi, >> >> >> >> You've provided a case I had not yet done any testing on. >> >> There were several things preventing this from working: >> >> >> >> 1) you capitalized Class. Semantic currently only parses classes in >> >> lower case. >> >> >> >> 2) :: was not a symbol separator in C/C++. I fixed this. >> >> >> >> 3) completions outside of any declaration currently had no tag class >> >> to complete to. I fixed that too. >> >> >> >> 4) semantic-complete-inline-analyzer doesn't provide a good error >> >> message. This is also easy to fix. >> >> >> >> After tidying these up, your example provides completions for me. >> >> These changes are now in CVS, so you ought to be good to go. >> >> >> >> Eric >> >> >> >> >>> Nathan Huesken <ce...@lo...> seems to think that: >> >> >Hi, >> >> > >> >> >I am unsure how I should configure and invoke code completion. >> >> >I downloaded the cvs version, compiled it and added the line in the INSTALL file to my .emacs file. >> >> > >> >> >I typed this into a new cpp file: >> >> > >> >> >Class Test >> >> >{ >> >> > TestFunction(); >> >> >}; >> >> > >> >> >Test:: >> >> > >> >> >Now I want semantic to complete with TestFunction(); ... how ... from earlier days I remember: >> >> >semantic-complete-analyze-inline >> >> > >> >> >But this gives me: >> >> > >> >> >Making completion list... [2 times] >> >> >eieio-oref: Wrong type argument: (or object-p class-p), nil >> >> >Wrong type argument: (or object-p class-p), nil [3 times] >> >> > >> >> >Is there some guide on how to use semantic with a project? >> >> >Or how can I find out? >> >> [ ... ] >> [ ... ] >> >> -- >> Eric Ludlam: er...@si... >> Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net > >------------------------------------------------------------------------- >This SF.net email is sponsored by the 2008 JavaOne(SM) Conference >Don't miss this year's exciting event. There's still time to save $100. >Use priority code J8TL2D2. >http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone >_______________________________________________ >cedet-semantic mailing list >ced...@li... >https://lists.sourceforge.net/lists/listinfo/cedet-semantic > |