Thread: [CEDET-devel] "up-reference" command added to senator
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2005-04-16 03:31:15
|
Hi, I took a class that involved C++ programming this past week, so I got to hack a bit in C++, as opposed to the usual C work I do. Naturally I worked with Emacs. A side effect was that I've updated c.by parser to add more supported operators. I also added a new command to senator which I was in great need of while trying to work in the C++ code. `senator-go-to-up-reference', now in the Navigate menu, and bound to "C-c , u" will look at the current tag, and try to determine an "up" reference. Once found, it will go there. It uses a new semantic API fcn (which I'm testing out here) called `semantic-up-reference'. Not only will it use the faux-tag stuff I mentioned earlier, it will follow includes, jump from externally defined methods to the parent class, jump from a prototype to the method decl, and trace to a type decl. The interface model may want some tweaking using local-context parsing too. If you have other thoughts on "up reference" to add, let me know. Thanks Eric -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: David P. <dav...@wa...> - 2005-04-16 08:08:35
|
Hi Eric, > I took a class that involved C++ programming this past week, so I > got to hack a bit in C++, as opposed to the usual C work I do. > Naturally I worked with Emacs. > > A side effect was that I've updated c.by parser to add more > supported operators. I also added a new command to senator which I > was in great need of while trying to work in the C++ code. Good! FYI, I committed the following typo fix to c.by: Index: c.by =================================================================== RCS file: /cvsroot/cedet/cedet/semantic/bovine/c.by,v retrieving revision 1.24 diff -u -r1.24 c.by --- c.by 15 Apr 2005 16:54:28 -0000 1.24 +++ c.by 16 Apr 2005 07:44:55 -0000 @@ -959,7 +959,7 @@ operatorsym : LESS LESS EQUAL ( "<<=" ) - : GREATER GREATER EQUAL + | GREATER GREATER EQUAL ( ">>=" ) | LESS LESS ( "<<" ) > `senator-go-to-up-reference', now in the Navigate menu, and bound to > "C-c , u" will look at the current tag, and try to determine an "up" > reference. Once found, it will go there. > > It uses a new semantic API fcn (which I'm testing out here) called > `semantic-up-reference'. Not only will it use the faux-tag stuff I > mentioned earlier, it will follow includes, jump from externally > defined methods to the parent class, jump from a prototype to the > method decl, and trace to a type decl. > > The interface model may want some tweaking using local-context > parsing too. If you have other thoughts on "up reference" to add, let > me know. A minor remark about faux tags. I noticed that you have used the 'faux property to mark such tags. To follow the conventions we have adopted since semantic v2, I think we should change it to :faux-flag. At end is a simple patch which also fix use of faux tag API in semantic-sort.el. I can commit it if you agree. Anyway thanks for your great work! I am just sorry to not have free time enough these days to work more on CEDET :-( David 2005-04-16 David Ponce <da...@dp...> * cedet/semantic/semantic-tag.el (semantic-tag-faux-p, semantic-tag-set-faux): Rename the 'faux property to :faux-flag. * cedet/semantic/semantic-sort.el (semantic-adopt-external-members): Use `semantic-tag-set-faux'. Index: semantic/semantic-sort.el =================================================================== RCS file: /cvsroot/cedet/cedet/semantic/semantic-sort.el,v retrieving revision 1.18 diff -c -r1.18 semantic-sort.el *** semantic/semantic-sort.el 15 Apr 2005 15:42:30 -0000 1.18 --- semantic/semantic-sort.el 16 Apr 2005 08:03:53 -0000 *************** *** 415,421 **** nil ;; parents (unknown) )) (bucketkids (cdr tmp))) ! (semantic--tag-put-property fauxtag 'faux t) ;; properties (if semantic-mark-external-member-function (setq bucketkids (mapcar (lambda (tok) --- 415,421 ---- nil ;; parents (unknown) )) (bucketkids (cdr tmp))) ! (semantic-tag-set-faux fauxtag) ;; properties (if semantic-mark-external-member-function (setq bucketkids (mapcar (lambda (tok) Index: semantic/semantic-tag.el =================================================================== RCS file: /cvsroot/cedet/cedet/semantic/semantic-tag.el,v retrieving revision 1.32 diff -c -r1.32 semantic-tag.el *** semantic/semantic-tag.el 15 Apr 2005 15:39:44 -0000 1.32 --- semantic/semantic-tag.el 16 Apr 2005 08:03:54 -0000 *************** *** 333,339 **** "Return non-nil if tag is a FAUX tag. FAUX tags are created to represent a construct that is not known to exist in the code." ! (semantic--tag-get-property tag 'faux)) ;;; Tag creation ;; --- 333,339 ---- "Return non-nil if tag is a FAUX tag. FAUX tags are created to represent a construct that is not known to exist in the code." ! (semantic--tag-get-property tag :faux-flag)) ;;; Tag creation ;; *************** *** 449,455 **** "Set TAG to be a new FAUX tag. FAUX tags represent constructs not found in the source code. You can identify a faux tag with `semantic-tag-faux-p'" ! (semantic--tag-put-property tag 'faux t)) ;;; Copying and cloning tags. ;; --- 449,455 ---- "Set TAG to be a new FAUX tag. FAUX tags represent constructs not found in the source code. You can identify a faux tag with `semantic-tag-faux-p'" ! (semantic--tag-put-property tag :faux-flag t)) ;;; Copying and cloning tags. ;; |
From: Eric M. L. <er...@si...> - 2005-04-16 13:44:43
|
>>> David Ponce <dav...@wa...> seems to think that: >Hi Eric, > > > I took a class that involved C++ programming this past week, so I > > got to hack a bit in C++, as opposed to the usual C work I do. > > Naturally I worked with Emacs. > > > > A side effect was that I've updated c.by parser to add more > > supported operators. I also added a new command to senator which I > > was in great need of while trying to work in the C++ code. > >Good! FYI, I committed the following typo fix to c.by: [ ... ] Thanks! > > `senator-go-to-up-reference', now in the Navigate menu, and bound to > > "C-c , u" will look at the current tag, and try to determine an "up" > > reference. Once found, it will go there. > > > > It uses a new semantic API fcn (which I'm testing out here) called > > `semantic-up-reference'. Not only will it use the faux-tag stuff I > > mentioned earlier, it will follow includes, jump from externally > > defined methods to the parent class, jump from a prototype to the > > method decl, and trace to a type decl. > > > > The interface model may want some tweaking using local-context > > parsing too. If you have other thoughts on "up reference" to add, let > > me know. > >A minor remark about faux tags. I noticed that you have used the 'faux >property to mark such tags. To follow the conventions we have adopted >since semantic v2, I think we should change it to :faux-flag. At end >is a simple patch which also fix use of faux tag API in >semantic-sort.el. I can commit it if you agree. Good idea. I do agree. Thanks. >Anyway thanks for your great work! I am just sorry to not have free >time enough these days to work more on CEDET :-( [ ... ] I can relate to that. I've haven't had much time lately either, even for answering basic questions. Eric -- Eric Ludlam: za...@gn..., er...@si... Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org |
From: David P. <dav...@wa...> - 2005-04-16 14:28:20
|
>>A minor remark about faux tags. I noticed that you have used the 'faux >>property to mark such tags. To follow the conventions we have adopted >>since semantic v2, I think we should change it to :faux-flag. At end >>is a simple patch which also fix use of faux tag API in >>semantic-sort.el. I can commit it if you agree. > > > Good idea. I do agree. Thanks. OK committed. David |