Thread: [CEDET-devel] semantic-ia-complete-symbol fails for some variables (c++)
Brought to you by:
zappo
From: Jan N. <jan...@al...> - 2014-01-31 17:47:37
|
I have recently started using cedet and I quite happy with it. I have followed Alex Ott's introduction: http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html and I have done a checkout of cedet from trunk (I have also tried a snapshot from last year). I have the following completion issue (illustrated with the following small sample code): class Node { public: Node *mInstance; }; void runMe() { Node n; Node *n1; n1 = n.mInstance; //completion on n. and n1-> works as expected Node *n2 = n.mInstance; //completion on n2 does not work :-( //message: semantic-analyze-possible-completions-default: Cannot find types for `"n2"' } So completion works for variable n and n1, but not for n2. I have tested in various situations and it seems that the variable's type is not correctly inferred if the initializer (on the right-hand-side of the equal-sign) contains '.','->' or '::'. Is this a bug or something in my setup? Best regards, Jan |
From: Oleh <ohw...@gm...> - 2014-01-31 18:19:47
|
Hi Jan, Your example works for me. I'm at bzr revno 8613. If you're just starting, you might be interested in my extension https://github.com/abo-abo/function-args. It uses CEDET to provide Eclipse-like visual function arguments, and can insert inherited tags among other things. regards, Oleh On Fri, Jan 31, 2014 at 6:32 PM, Jan Neerbek <jan...@al...> wrote: > I have recently started using cedet and I quite happy with it. > > I have followed Alex Ott's introduction: > http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html and I have > done a checkout of cedet from trunk (I have also tried a snapshot from > last year). > > I have the following completion issue (illustrated with the following > small sample code): > class Node > { > public: > Node *mInstance; > }; > > void runMe() > { > Node n; > Node *n1; > n1 = n.mInstance; > //completion on n. and n1-> works as expected > Node *n2 = n.mInstance; > //completion on n2 does not work :-( > //message: semantic-analyze-possible-completions-default: Cannot find > types for `"n2"' > } > > So completion works for variable n and n1, but not for n2. I have tested > in various situations and it seems that the variable's type is not > correctly inferred if the initializer (on the right-hand-side of the > equal-sign) contains '.','->' or '::'. > > Is this a bug or something in my setup? > > Best regards, > Jan > > > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > Cedet-devel mailing list > Ced...@li... > https://lists.sourceforge.net/lists/listinfo/cedet-devel |
From: Jan N. <jan...@al...> - 2014-01-31 22:16:53
|
Hi Oleh, Thanks for advice, however I still can't seem to get it to work. I have gone down to revno 8613 and done make clean-all && make. I also did M-x semanticdb-cleanup-cache-files and M-x semantic-clear-toplevel-cache (I was trying to clean the semantic db, but don't know how...) I tried to install your function-args.el but emacs will not load it, I do not have cl-lib which is required. This seems to be because my emacs is version 23.4 (this is the default included in ubuntu 13.10) and cl-lib is part of 24.x. I will upgrade my emacs tomorrow, maybe this will help on my completion problems... Regards, Jan On 01/31/2014 07:19 PM, Oleh wrote: > Hi Jan, > > Your example works for me. I'm at bzr revno 8613. > If you're just starting, you might be interested in my extension > https://github.com/abo-abo/function-args. > It uses CEDET to provide Eclipse-like visual function arguments, and > can insert inherited tags among other things. > > regards, > Oleh > > On Fri, Jan 31, 2014 at 6:32 PM, Jan Neerbek <jan...@al...> wrote: >> I have recently started using cedet and I quite happy with it. >> >> I have followed Alex Ott's introduction: >> http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html and I have >> done a checkout of cedet from trunk (I have also tried a snapshot from >> last year). >> >> I have the following completion issue (illustrated with the following >> small sample code): >> class Node >> { >> public: >> Node *mInstance; >> }; >> >> void runMe() >> { >> Node n; >> Node *n1; >> n1 = n.mInstance; >> //completion on n. and n1-> works as expected >> Node *n2 = n.mInstance; >> //completion on n2 does not work :-( >> //message: semantic-analyze-possible-completions-default: Cannot find >> types for `"n2"' >> } >> >> So completion works for variable n and n1, but not for n2. I have tested >> in various situations and it seems that the variable's type is not >> correctly inferred if the initializer (on the right-hand-side of the >> equal-sign) contains '.','->' or '::'. >> >> Is this a bug or something in my setup? >> >> Best regards, >> Jan >> >> >> >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> _______________________________________________ >> Cedet-devel mailing list >> Ced...@li... >> https://lists.sourceforge.net/lists/listinfo/cedet-devel > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > Cedet-devel mailing list > Ced...@li... > https://lists.sourceforge.net/lists/listinfo/cedet-devel > |
From: Simon B. <sm...@70...> - 2014-01-31 23:25:44
|
Hi Jan, On Friday 31 Jan 2014 23:16:28 Jan Neerbek wrote: > Thanks for advice, however I still can't seem to get it to work. I have > gone down to revno 8613 and done make clean-all && make. I also did M-x > semanticdb-cleanup-cache-files and M-x semantic-clear-toplevel-cache (I > was trying to clean the semantic db, but don't know how...) > I tried to install your function-args.el but emacs will not load it, I > do not have cl-lib which is required. This seems to be because my emacs > is version 23.4 (this is the default included in ubuntu 13.10) and > cl-lib is part of 24.x. I will upgrade my emacs tomorrow, maybe this > will help on my completion problems... I use 13.10 and you can just: sudo apt-get install emacs24 in case you didn't know. The semantic cache is kept in the directory set by semanticdb-default-save-directory You just need to close emacs delete the files then restart. Semantic will then have to reparse everything. Simon |
From: David E. <de...@ra...> - 2014-02-01 22:32:10
|
Jan Neerbek writes: > This gives: > --------------------- > Unable to find symbol n2. Thanks for the recipe. I can reproduce it and will look into it. -David |
From: David E. <de...@ra...> - 2014-02-02 14:47:03
|
Jan Neerbek writes: > On 02/01/2014 11:31 PM, David Engster wrote: >> Jan Neerbek writes: >>> This gives: >>> --------------------- >>> Unable to find symbol n2. >> Thanks for the recipe. I can reproduce it and will look into it. I think I fixed it. Could you please try the latest revision from bzr? -David |
From: Jan N. <jan...@al...> - 2014-02-02 15:45:27
|
On 02/02/2014 03:46 PM, David Engster wrote: > Jan Neerbek writes: >> On 02/01/2014 11:31 PM, David Engster wrote: >>> Jan Neerbek writes: >>>> This gives: >>>> --------------------- >>>> Unable to find symbol n2. >>> Thanks for the recipe. I can reproduce it and will look into it. > I think I fixed it. Could you please try the latest revision from bzr? > > -David > It works now, when I updated with bzr. Thanks! /Jan |
From: Jan N. <jan...@al...> - 2014-02-02 08:36:59
|
Hi Oleh, I like your function-args extension. In particular I have had issues with M-x semantic-ia-show-variants on constructors on the form of: void foo() { //after the parentheses '(' I would like a list of possible completions (prototypes) //for initializing myClass MyClass myClass( } But with your extension I get the prototypes with M-i (fa-show) and M-n (fa-idx-cycle 1) Nice! :-) /Jan On 01/31/2014 07:19 PM, Oleh wrote: > Hi Jan, > > Your example works for me. I'm at bzr revno 8613. > If you're just starting, you might be interested in my extension > https://github.com/abo-abo/function-args. > It uses CEDET to provide Eclipse-like visual function arguments, and > can insert inherited tags among other things. > > regards, > Oleh > > On Fri, Jan 31, 2014 at 6:32 PM, Jan Neerbek <jan...@al...> wrote: >> I have recently started using cedet and I quite happy with it. >> >> I have followed Alex Ott's introduction: >> http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html and I have >> done a checkout of cedet from trunk (I have also tried a snapshot from >> last year). >> >> I have the following completion issue (illustrated with the following >> small sample code): >> class Node >> { >> public: >> Node *mInstance; >> }; >> >> void runMe() >> { >> Node n; >> Node *n1; >> n1 = n.mInstance; >> //completion on n. and n1-> works as expected >> Node *n2 = n.mInstance; >> //completion on n2 does not work :-( >> //message: semantic-analyze-possible-completions-default: Cannot find >> types for `"n2"' >> } >> >> So completion works for variable n and n1, but not for n2. I have tested >> in various situations and it seems that the variable's type is not >> correctly inferred if the initializer (on the right-hand-side of the >> equal-sign) contains '.','->' or '::'. >> >> Is this a bug or something in my setup? >> >> Best regards, >> Jan >> >> >> >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> _______________________________________________ >> Cedet-devel mailing list >> Ced...@li... >> https://lists.sourceforge.net/lists/listinfo/cedet-devel > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > Cedet-devel mailing list > Ced...@li... > https://lists.sourceforge.net/lists/listinfo/cedet-devel > |
From: Jan N. <jan...@al...> - 2014-02-01 21:27:23
|
Hi all, I have upgraded to emacs 24.3.1 but still my problem persists. I have made a minimal .emacs which only contains: (load-file "~/cedet/cedet-trunk/cedet-devel-load.el") (semantic-mode 1) With my test function (the one from below) I can do sematic-ia-complete-symbol on n and n1, but still not n2. I also tried using ectags but that didn't help either. As per Alex Ott's article I have loaded debug info as follows: M-x load-library RET semantic/analyze/debug RET and M-x semantic-analyze-debug-assist This gives: --------------------- Unable to find symbol n2. The prefix lookup code threw the following error: (error "Cannot find definition for \"n2\"") To debug this error you can do this: M-x toggle-debug-on-error RET [ Do It ] and then re-run the debug analyzer. Local Scope Information: * Tag Class Constraint against SCOPE: nil * No known parents in current scope. * No known symbols currently in scope. >> Known symbols that are declared locally: class Node n class Node n1 No known possible completions. When Semantic cannot find a symbol, it could be because the include path was setup incorrectly. Include Path Summary: The system include path is: /usr/include /usr/lib/gcc/x86_64-linux-gnu/4.8/include/ /usr/local/include/ /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed/ /usr/include/x86_64-linux-gnu/ /usr/include/ /usr/include/c++/4.8/ /usr/include/x86_64-linux-gnu/c++/4.8/ /usr/include/c++/4.8/backward/ Include Summary: /home/neerbek/MyTest.cpp MyTest.cpp contains 0 includes. No unknown includes. --------------------- Any suggestions? Thanks Jan On 01/31/2014 11:16 PM, Jan Neerbek wrote: > Hi Oleh, > > Thanks for advice, however I still can't seem to get it to work. I have > gone down to revno 8613 and done make clean-all && make. I also did M-x > semanticdb-cleanup-cache-files and M-x semantic-clear-toplevel-cache (I > was trying to clean the semantic db, but don't know how...) > I tried to install your function-args.el but emacs will not load it, I > do not have cl-lib which is required. This seems to be because my emacs > is version 23.4 (this is the default included in ubuntu 13.10) and > cl-lib is part of 24.x. I will upgrade my emacs tomorrow, maybe this > will help on my completion problems... > > Regards, > Jan > > On 01/31/2014 07:19 PM, Oleh wrote: >> Hi Jan, >> >> Your example works for me. I'm at bzr revno 8613. >> If you're just starting, you might be interested in my extension >> https://github.com/abo-abo/function-args. >> It uses CEDET to provide Eclipse-like visual function arguments, and >> can insert inherited tags among other things. >> >> regards, >> Oleh >> >> On Fri, Jan 31, 2014 at 6:32 PM, Jan Neerbek <jan...@al...> wrote: >>> I have recently started using cedet and I quite happy with it. >>> >>> I have followed Alex Ott's introduction: >>> http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html and I have >>> done a checkout of cedet from trunk (I have also tried a snapshot from >>> last year). >>> >>> I have the following completion issue (illustrated with the following >>> small sample code): >>> class Node >>> { >>> public: >>> Node *mInstance; >>> }; >>> >>> void runMe() >>> { >>> Node n; >>> Node *n1; >>> n1 = n.mInstance; >>> //completion on n. and n1-> works as expected >>> Node *n2 = n.mInstance; >>> //completion on n2 does not work :-( >>> //message: semantic-analyze-possible-completions-default: Cannot find >>> types for `"n2"' >>> } >>> >>> So completion works for variable n and n1, but not for n2. I have tested >>> in various situations and it seems that the variable's type is not >>> correctly inferred if the initializer (on the right-hand-side of the >>> equal-sign) contains '.','->' or '::'. >>> >>> Is this a bug or something in my setup? >>> >>> Best regards, >>> Jan >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> WatchGuard Dimension instantly turns raw network data into actionable >>> security intelligence. It gives you real-time visual feedback on key >>> security issues and trends. Skip the complicated setup - simply import >>> a virtual appliance and go from zero to informed in seconds. >>> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Cedet-devel mailing list >>> Ced...@li... >>> https://lists.sourceforge.net/lists/listinfo/cedet-devel >> ------------------------------------------------------------------------------ >> WatchGuard Dimension instantly turns raw network data into actionable >> security intelligence. It gives you real-time visual feedback on key >> security issues and trends. Skip the complicated setup - simply import >> a virtual appliance and go from zero to informed in seconds. >> http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk >> _______________________________________________ >> Cedet-devel mailing list >> Ced...@li... >> https://lists.sourceforge.net/lists/listinfo/cedet-devel >> > > > ------------------------------------------------------------------------------ > WatchGuard Dimension instantly turns raw network data into actionable > security intelligence. It gives you real-time visual feedback on key > security issues and trends. Skip the complicated setup - simply import > a virtual appliance and go from zero to informed in seconds. > http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk > _______________________________________________ > Cedet-devel mailing list > Ced...@li... > https://lists.sourceforge.net/lists/listinfo/cedet-devel > |
From: Jan N. <jan...@al...> - 2014-02-02 07:17:46
|
On 02/01/2014 11:31 PM, David Engster wrote: > Jan Neerbek writes: >> This gives: >> --------------------- >> Unable to find symbol n2. > Thanks for the recipe. I can reproduce it and will look into it. > > -David > Thanks David. /Jan |