Thread: [CEDET-devel] how to use ede-locate-setup-options
Brought to you by:
zappo
From: yupeng82921 <yup...@16...> - 2009-01-22 07:19:27
|
hi, Eric. You'd ever said semantic can use gnu global to find head file for C or C++ program. To do that we should set up an EDE project and configure the variable "ede-locate-setup-options". Now I create an EDE project like this: (ede-cpp-root-project "test2.c" :file "/home/yupeng/work/emacs/test2/test2.c" :include-path '( "") :system-include-path '( "" ) :spp-table '( ("MOOSE" . "") ("CONST" . "const") ) ) But I don't know how to configure "ede-locate-setup-options". Is there some example to reference? Thanks. Yupeng. |
From: Eric M. L. <er...@si...> - 2009-01-22 12:43:10
|
Hi, To start using GNU Global to find files with EDE, you just need to customize the variable `ede-locate-setup-options'. All project types use the same locate system for finding files. There is a section on GNU Global in cedet/common/cedet.info that explains integrating GNU Global into the various CEDET tools. Good Luck Eric >>> yupeng82921 <yup...@16...> seems to think that: > >hi, Eric. > >You'd ever said semantic can use gnu global to find head file for C or C++ program. To do that we should set up an EDE project and configure the variable "ede-locate-setup-options". > >Now I create an EDE project like this: >(ede-cpp-root-project "test2.c" :file "/home/yupeng/work/emacs/test2/test2.c" > :include-path '( "") > :system-include-path '( "" ) > :spp-table '( ("MOOSE" . "") > ("CONST" . "const") ) ) > >But I don't know how to configure "ede-locate-setup-options". Is there some example to reference? [ ... ] |
From: yupeng82921 <yup...@16...> - 2009-01-23 09:50:10
|
Hi, Eric. I have studied the global info in cedet.info, in my comprehension, when I setup an ede project and set ede-locate-setup-options correctly and create a global database in my project root directory, semantic can find all the head file automatically. Thus if I don't specify include-path in ede project, semantic also can find the define of any structure and complete its members (I'm a C programmer). Does my comprehension right? I configure my .emacs as bellow, but I can not get a structure member's completion if it is defined in other directory. Is there something wrong in my configuration or semantic still need specific include path in ede project? thanks. ;; Load CEDET (load-file "~/lisp/cedet/common/cedet.el") ;; Enable EDE (Project Management) features (global-ede-mode 1) ;; Enable EDE for a pre-existing C++ project (ede-cpp-root-project "test2" :file "~/work/emacs/test2/test2.c") (setq ede-locate-setup-options '(ede-locate-global ede-locate-base)) (semantic-load-enable-minimum-features) (setq semanticdb-default-save-directory (expand-file-name "~/.semanticdb")) (require 'semanticdb-global) (semanticdb-enable-gnu-global-databases 'c-mode) 在2009-01-22,"Eric M. Ludlam" <er...@si...> 写道: >Hi, > > To start using GNU Global to find files with EDE, you just need to >customize the variable `ede-locate-setup-options'. All project types >use the same locate system for finding files. > > There is a section on GNU Global in cedet/common/cedet.info that >explains integrating GNU Global into the various CEDET tools. > >Good Luck >Eric > >>>> yupeng82921 <yup...@16...> seems to think that: >> >>hi, Eric. >> >>You'd ever said semantic can use gnu global to find head file for C or C++ program. To do that we should set up an EDE project and configure the variable "ede-locate-setup-options". >> >>Now I create an EDE project like this: >>(ede-cpp-root-project "test2.c" :file "/home/yupeng/work/emacs/test2/test2.c" >> :include-path '( "") >> :system-include-path '( "" ) >> :spp-table '( ("MOOSE" . "") >> ("CONST" . "const") ) ) >> >>But I don't know how to configure "ede-locate-setup-options". Is there some example to reference? > [ ... ] |
From: Eric M. L. <er...@si...> - 2009-01-23 12:33:27
|
Hi, Your setup does look fine. The next step in understanding what might be wrong is to, when at a point where completion does not seem to work, run the following command: M-x semantic-analyze-debug-assist RET It will list out everything Semantic tried to do. It will list if the header file you expect was found, and what symbols it thinks ought to be available. That may help identify if it is a file locate thing, or a C pre-processor issue. Another useful mode is `global-semantic-decoration-mode' which will highlight your headers based on if they were found or not. That will be more directly involved in identifying how your setup is working. Eric >>> yupeng82921 <yup...@16...> seems to think that: >Hi, Eric. > >I have studied the global info in cedet.info, in my comprehension, when I s= >etup an ede project and set ede-locate-setup-options correctly and create a= > global database in my project root directory, semantic can find all the h= >ead file automatically. Thus if I don't specify include-path in ede project= >, semantic also can find the define of any structure and complete its membe= >rs (I'm a C programmer). > >Does my comprehension right? >I configure my .emacs as bellow, but I can not get a structure member's com= >pletion if it is defined in other directory. > >Is there something wrong in my configuration or semantic still need specifi= >c include path in ede project? > >thanks. > >;; Load CEDET >(load-file "~/lisp/cedet/common/cedet.el") >;; Enable EDE (Project Management) features >(global-ede-mode 1) >;; Enable EDE for a pre-existing C++ project >(ede-cpp-root-project "test2" :file "~/work/emacs/test2/test2.c") >(setq ede-locate-setup-options > '(ede-locate-global > ede-locate-base)) >(semantic-load-enable-minimum-features) >(setq semanticdb-default-save-directory (expand-file-name "~/.semanticdb"))= > =20 >(require 'semanticdb-global) >(semanticdb-enable-gnu-global-databases 'c-mode) > > > >=D4=DA2009-01-22=A3=AC"Eric M. Ludlam" <er...@si...> =D0=B4=B5=C0= >=A3=BA >>Hi, >> >> To start using GNU Global to find files with EDE, you just need to >>customize the variable `ede-locate-setup-options'. All project types >>use the same locate system for finding files. >> >> There is a section on GNU Global in cedet/common/cedet.info that >>explains integrating GNU Global into the various CEDET tools. >> >>Good Luck >>Eric >> >>>>> yupeng82921 <yup...@16...> seems to think that: >>> >>>hi, Eric. >>> >>>You'd ever said semantic can use gnu global to find head file for C or C+= >+ program. To do that we should set up an EDE project and configure the var= >iable "ede-locate-setup-options". >>> >>>Now I create an EDE project like this: >>>(ede-cpp-root-project "test2.c" :file "/home/yupeng/work/emacs/test2/test= >2.c" >>> :include-path '( "") >>> :system-include-path '( "" ) >>> :spp-table '( ("MOOSE" . "") >>> ("CONST" . "const") ) ) >>> >>>But I don't know how to configure "ede-locate-setup-options". Is there so= >me example to reference? >> [ ... ] > -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: yupeng82921 <yup...@16...> - 2009-01-23 15:32:26
|
Hi, Eric. The below is the result of semantic-analyze-debug-assist. I defined a structure type named TEST2_TYPE in the file test2.h. And it seems semantic do not find where the head file at. I also used global-semantic-decoration-mode, and found if a head file is in the current directory it is not high light, if a head file is not in the current direcotry it is high light. What the problem maybe? Thanks. Unable to find datatype for: "class TEST2_TYPE test2". Declared type is: "class TEST2_TYPE {}" Raw data type is: ("TEST2_TYPE" type (:type "class") nil nil) Semantic could not find this data type in any of its global tables. Semantic locates datatypes through either the local scope, or the global typecache. Local Scope Information: * Tag Class Constraint against SCOPE: (type) * No known parents in current scope. * No known symbols currently in scope. * No known symbols declared locally. Semantic creates and maintains a type cache for each buffer. If the type is a global type, then it should appear in they typecache. To examine the typecache, type: M-x semanticdb-typecache-dump RET [ Do It ] Current typecache Statistics: 0 types global in this file 1 types from includes. If the datatype is not in the typecache, then your include path may be incorrect. Include Summary: /home/yupeng/work/emacs/test2/test2.c test2.c contains 3 includes. Unknown Includes: 2 Unparsed Includes: 0 Parsed Includes: 1 A likely cause of an unfound tag is missing include files. The following includes were not found: test2.h test1.h You can fix the include path for c-mode by using this function: M-x semantic-customize-system-include-path RET [ Do It ] which customizes the mode specific variable for the mode-local variable `semantic-dependency-system-include-path'. 在2009-01-23,"Eric M. Ludlam" <er...@si...> 写道: >Hi, > > Your setup does look fine. The next step in understanding what >might be wrong is to, when at a point where completion does not seem >to work, run the following command: > >M-x semantic-analyze-debug-assist RET > > It will list out everything Semantic tried to do. It will list if >the header file you expect was found, and what symbols it thinks ought >to be available. That may help identify if it is a file locate thing, >or a C pre-processor issue. > >Another useful mode is `global-semantic-decoration-mode' which will >highlight your headers based on if they were found or not. That will >be more directly involved in identifying how your setup is working. > >Eric > >>>> yupeng82921 <yup...@16...> seems to think that: >>Hi, Eric. >> >>I have studied the global info in cedet.info, in my comprehension, when I s= >>etup an ede project and set ede-locate-setup-options correctly and create a= >> global database in my project root directory, semantic can find all the h= >>ead file automatically. Thus if I don't specify include-path in ede project= >>, semantic also can find the define of any structure and complete its membe= >>rs (I'm a C programmer). >> >>Does my comprehension right? >>I configure my .emacs as bellow, but I can not get a structure member's com= >>pletion if it is defined in other directory. >> >>Is there something wrong in my configuration or semantic still need specifi= >>c include path in ede project? >> >>thanks. >> >>;; Load CEDET >>(load-file "~/lisp/cedet/common/cedet.el") >>;; Enable EDE (Project Management) features >>(global-ede-mode 1) >>;; Enable EDE for a pre-existing C++ project >>(ede-cpp-root-project "test2" :file "~/work/emacs/test2/test2.c") >>(setq ede-locate-setup-options >> '(ede-locate-global >> ede-locate-base)) >>(semantic-load-enable-minimum-features) >>(setq semanticdb-default-save-directory (expand-file-name "~/.semanticdb"))= >> =20 >>(require 'semanticdb-global) >>(semanticdb-enable-gnu-global-databases 'c-mode) >> >> >> >>=D4=DA2009-01-22=A3=AC"Eric M. Ludlam" <er...@si...> =D0=B4=B5=C0= >>=A3=BA >>>Hi, >>> >>> To start using GNU Global to find files with EDE, you just need to >>>customize the variable `ede-locate-setup-options'. All project types >>>use the same locate system for finding files. >>> >>> There is a section on GNU Global in cedet/common/cedet.info that >>>explains integrating GNU Global into the various CEDET tools. >>> >>>Good Luck >>>Eric >>> >>>>>> yupeng82921 <yup...@16...> seems to think that: >>>> >>>>hi, Eric. >>>> >>>>You'd ever said semantic can use gnu global to find head file for C or C+= >>+ program. To do that we should set up an EDE project and configure the var= >>iable "ede-locate-setup-options". >>>> >>>>Now I create an EDE project like this: >>>>(ede-cpp-root-project "test2.c" :file "/home/yupeng/work/emacs/test2/test= >>2.c" >>>> :include-path '( "") >>>> :system-include-path '( "" ) >>>> :spp-table '( ("MOOSE" . "") >>>> ("CONST" . "const") ) ) >>>> >>>>But I don't know how to configure "ede-locate-setup-options". Is there so= >>me example to reference? >>> [ ... ] >> > >-- > Eric Ludlam: er...@si... > Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: Eric M. L. <er...@si...> - 2009-01-23 16:34:59
|
Hi, It does seem that the location of files via global is not working. A first simple step is to try using global to find files via the command line to make sure your global install is working. A second step, you can use a context menu on any header file (when the decoration mode is enabled) to select "Summarize Includes for current buffer". This should say that EDE is handling project includes. If it is, then you can use "C-c . f" and type in test2.h. If that doesn't work, then it is likely a configuration issue. Next, you can try: "M-x ede-locate-test-global" to force it to use gnu-global to try and do a location. One of these should eventually reveal what the issue is. Once you know, I can try and pull the right detection into one of the higher level debug functions. Eric >>> yupeng82921 <yup...@16...> seems to think that: >Hi, Eric. > >The below is the result of semantic-analyze-debug-assist. I defined a struc= >ture type named TEST2_TYPE in the file test2.h. And it seems semantic do no= >t find where the head file at. > >I also used global-semantic-decoration-mode, and found if a head file is in= > the current directory it is not high light, if a head file is not in the c= >urrent direcotry it is high light. > >What the problem maybe? > >Thanks. > >Unable to find datatype for: "class TEST2_TYPE test2". >Declared type is: "class TEST2_TYPE {}" >Raw data type is: ("TEST2_TYPE" type (:type "class") nil nil) > >Semantic could not find this data type in any of its global tables. > >Semantic locates datatypes through either the local scope, or the global >typecache. > >Local Scope Information: > * Tag Class Constraint against SCOPE: (type) > * No known parents in current scope. > * No known symbols currently in scope. > * No known symbols declared locally. >Semantic creates and maintains a type cache for each buffer. >If the type is a global type, then it should appear in they typecache. >To examine the typecache, type: > > M-x semanticdb-typecache-dump RET [ Do It ] > >Current typecache Statistics: > 0 types global in this file > 1 types from includes. > >If the datatype is not in the typecache, then your include >path may be incorrect. =20 > >Include Summary: /home/yupeng/work/emacs/test2/test2.c > >test2.c contains 3 includes. > Unknown Includes: 2 > Unparsed Includes: 0 > Parsed Includes: 1 > >A likely cause of an unfound tag is missing include files. >The following includes were not found: > test2.h > test1.h > >You can fix the include path for c-mode by using this function: > >M-x semantic-customize-system-include-path RET [ Do It ] > >which customizes the mode specific variable for the mode-local >variable `semantic-dependency-system-include-path'. [ ... ] -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: yupeng82921 <yup...@16...> - 2009-01-24 03:27:12
|
Hi, Eric. I test global via command line, when I type "global -P test2.h" in the root directory of my project, it can find the file "tes2.h". This is the command output: yupeng@messiah:~/work/emacs/test2$ global -P test2.h sub2/test2.h Just as it show, I put the test2.h in the folder sub2. I enabled global-semantic-decoration-mode, but I don't find where to select "Summarize Includes for current buffer". Is it in the Project menu? I type "C-c . f" and type in test2.h, it can not find test2.h, but I have a file named test3.h, it is in the root directory of my project, "C-c . f" can find it. I tried "M-x ede-locate-test-global", it show me a buffer like this: ] Name: "test" ] Class: #'ede-locate-global ] :root "/home/yupeng/work/emacs/test2/" ] file "test2.h" ] lastanswer #<list o' stuff: 1 entries> ] hash #<hash-table 'equal nil 0/65 0x92b4428> Please help me check this problem, thanks. 在2009-01-24,"Eric M. Ludlam" <er...@si...> 写道: >Hi, > > It does seem that the location of files via global is not working. > > A first simple step is to try using global to find files via the >command line to make sure your global install is working. > > A second step, you can use a context menu on any header file (when >the decoration mode is enabled) to select "Summarize Includes for >current buffer". > > This should say that EDE is handling project includes. If it is, >then you can use "C-c . f" and type in test2.h. If that doesn't work, >then it is likely a configuration issue. > > Next, you can try: "M-x ede-locate-test-global" to force it to use >gnu-global to try and do a location. > >One of these should eventually reveal what the issue is. Once you >know, I can try and pull the right detection into one of the higher >level debug functions. > >Eric > >>>> yupeng82921 <yup...@16...> seems to think that: >>Hi, Eric. >> >>The below is the result of semantic-analyze-debug-assist. I defined a struc= >>ture type named TEST2_TYPE in the file test2.h. And it seems semantic do no= >>t find where the head file at. >> >>I also used global-semantic-decoration-mode, and found if a head file is in= >> the current directory it is not high light, if a head file is not in the c= >>urrent direcotry it is high light. >> >>What the problem maybe? >> >>Thanks. >> >>Unable to find datatype for: "class TEST2_TYPE test2". >>Declared type is: "class TEST2_TYPE {}" >>Raw data type is: ("TEST2_TYPE" type (:type "class") nil nil) >> >>Semantic could not find this data type in any of its global tables. >> >>Semantic locates datatypes through either the local scope, or the global >>typecache. >> >>Local Scope Information: >> * Tag Class Constraint against SCOPE: (type) >> * No known parents in current scope. >> * No known symbols currently in scope. >> * No known symbols declared locally. >>Semantic creates and maintains a type cache for each buffer. >>If the type is a global type, then it should appear in they typecache. >>To examine the typecache, type: >> >> M-x semanticdb-typecache-dump RET [ Do It ] >> >>Current typecache Statistics: >> 0 types global in this file >> 1 types from includes. >> >>If the datatype is not in the typecache, then your include >>path may be incorrect. =20 >> >>Include Summary: /home/yupeng/work/emacs/test2/test2.c >> >>test2.c contains 3 includes. >> Unknown Includes: 2 >> Unparsed Includes: 0 >> Parsed Includes: 1 >> >>A likely cause of an unfound tag is missing include files. >>The following includes were not found: >> test2.h >> test1.h >> >>You can fix the include path for c-mode by using this function: >> >>M-x semantic-customize-system-include-path RET [ Do It ] >> >>which customizes the mode specific variable for the mode-local >>variable `semantic-dependency-system-include-path'. > [ ... ] > >-- > Eric Ludlam: er...@si... > Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: Eric M. L. <er...@si...> - 2009-01-24 04:49:48
|
Hi, The "summarize includes" is a context menu on the includes. If you right click on a menu item when it highlights under the mouse, you will find the entry. I think you are right, however, that this should probably go into some other menu, like in Senator. Because ede-locate-test-global works in some way, however, I think basic setup for global is ok. If you put the cursor on "lastanswer" and hit SPC, it will show what is in the list. As it has 1 entry, I'll assume it contains the correct answer. A side effect is that I think your configuration of ede-locate-setup-options may not be setup right. This is what I have in my .emacs file. (setq ede-locate-setup-options '(ede-locate-global ede-locate-base)) Alternately, did you do: #include "test2.h" or #include <test2.h> This used to matter, but I think I got rid of the difference in how the header files were looked up. Eric >>> yupeng82921 <yup...@16...> seems to think that: >Hi, Eric. > >I test global via command line, when I type "global -P test2.h" in the root= > directory of my project, it can find the file "tes2.h". This is the comman= >d output:=20 > >yupeng@messiah:~/work/emacs/test2$ global -P test2.h >sub2/test2.h > >Just as it show, I put the test2.h in the folder sub2. > > >I enabled global-semantic-decoration-mode, but I don't find where to select= > "Summarize Includes for current buffer". Is it in the Project menu? > >I type "C-c . f" and type in test2.h, it can not find test2.h, but I have a= > file named test3.h, it is in the root directory of my project, "C-c . f" c= >an find it. > >I tried "M-x ede-locate-test-global", it show me a buffer like this: > ] Name: "test" > ] Class: #'ede-locate-global > ] :root "/home/yupeng/work/emacs/test2/" > ] file "test2.h" > ] lastanswer #<list o' stuff: 1 entries> > ] hash #<hash-table 'equal nil 0/65 0x92b4428> > > >Please help me check this problem, thanks. [ ... ] -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: yupeng82921 <yup...@16...> - 2009-01-24 08:36:47
|
Hi, Eric. According to your answer, I know how to find th"summarize includes", and this is the result of summarize includes: /********************************************************************************************/ Include Summary for File: /home/yupeng/work/emacs/test2/test2.c This file contains 4 tags, 3 of which are includes. Unknown Includes: 2 Unparsed Includes: 0 Parsed Includes: 1 Include Path Summary: This file's project include is handled by the EDE object: #<ede-cpp-root-target /home/yupeng/work/emacs/test2/> This file's system include path is: /usr/include All unknown includes: test2.h test1.h There are currently no includes found recursively. /********************************************************************************************/ I put the cursor on "lastanswer" and hit SPC, it indeed show me the correct directory of test2.h! I copy your ede-locate-setup-options configuration to my .emacs, and try both #include "test2.h" and #include <test2.h>, but test2.h is always high light when I come in global-semantic-decoration-mode. 在2009-01-24,"Eric M. Ludlam" <er...@si...> 写道: >Hi, > > The "summarize includes" is a context menu on the includes. If you >right click on a menu item when it highlights under the mouse, you >will find the entry. > > I think you are right, however, that this should probably go into >some other menu, like in Senator. > > Because ede-locate-test-global works in some way, however, I think >basic setup for global is ok. If you put the cursor on "lastanswer" >and hit SPC, it will show what is in the list. As it has 1 entry, >I'll assume it contains the correct answer. > > A side effect is that I think your configuration of >ede-locate-setup-options may not be setup right. This is what I have >in my .emacs file. > >(setq ede-locate-setup-options > '(ede-locate-global > ede-locate-base)) > >Alternately, did you do: > >#include "test2.h" > >or > >#include <test2.h> > >This used to matter, but I think I got rid of the difference in how >the header files were looked up. > >Eric > >>>> yupeng82921 <yup...@16...> seems to think that: >>Hi, Eric. >> >>I test global via command line, when I type "global -P test2.h" in the root= >> directory of my project, it can find the file "tes2.h". This is the comman= >>d output:=20 >> >>yupeng@messiah:~/work/emacs/test2$ global -P test2.h >>sub2/test2.h >> >>Just as it show, I put the test2.h in the folder sub2. >> >> >>I enabled global-semantic-decoration-mode, but I don't find where to select= >> "Summarize Includes for current buffer". Is it in the Project menu? >> >>I type "C-c . f" and type in test2.h, it can not find test2.h, but I have a= >> file named test3.h, it is in the root directory of my project, "C-c . f" c= >>an find it. >> >>I tried "M-x ede-locate-test-global", it show me a buffer like this: >> ] Name: "test" >> ] Class: #'ede-locate-global >> ] :root "/home/yupeng/work/emacs/test2/" >> ] file "test2.h" >> ] lastanswer #<list o' stuff: 1 entries> >> ] hash #<hash-table 'equal nil 0/65 0x92b4428> >> >> >>Please help me check this problem, thanks. > [ ... ] > >-- > Eric Ludlam: er...@si... > Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: Eric M. L. <er...@si...> - 2009-01-25 03:58:27
|
Hi, If you configured the ede-locate part after your file with test2.h was first parsed by Semantic, it could be that a bad value was cached into the tag. Try using C-u M-x bovinate RET or use the Senator menu, and first menu item "Force Tag Refresh" to clear that. Eric >>> yupeng82921 <yup...@16...> seems to think that: >Hi, Eric. > >According to your answer, I know how to find th"summarize includes", and th= >is is the result of summarize includes: >/**************************************************************************= >******************/ >Include Summary for File: /home/yupeng/work/emacs/test2/test2.c > >This file contains 4 tags, 3 of which are includes. > Unknown Includes: 2 > Unparsed Includes: 0 > Parsed Includes: 1 > >Include Path Summary: > > This file's project include is handled by the EDE object: > #<ede-cpp-root-target /home/yupeng/work/emacs/test2/> > > This file's system include path is: > /usr/include > >All unknown includes: > test2.h > test1.h > >There are currently no includes found recursively. [ ... ] -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: yupeng82921 <yup...@16...> - 2009-01-25 17:03:09
|
Hi, Eric. I tried both "C-u M-x bovinate RET" and "Force Tag Refresh", but test2.h is still can not be found, and also I can not get the completion. Beside, I also tried to delete all the semantic cache file, but the problem is still at here. 在2009-01-25,"Eric M. Ludlam" <er...@si...> 写道: >Hi, > > If you configured the ede-locate part after your file with test2.h >was first parsed by Semantic, it could be that a bad value was cached >into the tag. Try using > >C-u M-x bovinate RET > >or use the Senator menu, and first menu item "Force Tag Refresh" to >clear that. > >Eric > >>>> yupeng82921 <yup...@16...> seems to think that: >>Hi, Eric. >> >>According to your answer, I know how to find th"summarize includes", and th= >>is is the result of summarize includes: >>/**************************************************************************= >>******************/ >>Include Summary for File: /home/yupeng/work/emacs/test2/test2.c >> >>This file contains 4 tags, 3 of which are includes. >> Unknown Includes: 2 >> Unparsed Includes: 0 >> Parsed Includes: 1 >> >>Include Path Summary: >> >> This file's project include is handled by the EDE object: >> #<ede-cpp-root-target /home/yupeng/work/emacs/test2/> >> >> This file's system include path is: >> /usr/include >> >>All unknown includes: >> test2.h >> test1.h >> >>There are currently no includes found recursively. > [ ... ] > >-- > Eric Ludlam: er...@si... > Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: Eric M. L. <er...@si...> - 2009-01-26 04:30:12
|
I'm at a bit of a loss. You're best bet now is to try and debug it. In ede-files.el, find the method `ede-expand-filename' and ede-expand-filename-impl'. In those definition, you can type: M-x edebug-defun RET Then do C-c . f to try and do the find-file from your C file. SPC will step through, and you can find out if it goes into ede-locate-file-in-project. If so, do the same thing in that method to see what it does. Eventually, it should reveal why this feature is being skipped. I'm assuming the caching in this function is not involved, as you must have restarted your Emacs a couple times by now. Eric >>> yupeng82921 <yup...@16...> seems to think that: >Hi, Eric. > >I tried both "C-u M-x bovinate RET" and "Force Tag Refresh", but test2.h is= > still can not be found, and also I can not get the completion. Beside, I a= >lso tried to delete all the semantic cache file, but the problem is still a= >t here. > > > >=D4=DA2009-01-25=A3=AC"Eric M. Ludlam" <er...@si...> =D0=B4=B5=C0= >=A3=BA >>Hi, >> >> If you configured the ede-locate part after your file with test2.h >>was first parsed by Semantic, it could be that a bad value was cached >>into the tag. Try using >> >>C-u M-x bovinate RET >> >>or use the Senator menu, and first menu item "Force Tag Refresh" to >>clear that. >> >>Eric >> >>>>> yupeng82921 <yup...@16...> seems to think that: >>>Hi, Eric. >>> >>>According to your answer, I know how to find th"summarize includes", and = >th=3D >>>is is the result of summarize includes: >>>/************************************************************************= >**=3D >>>******************/ >>>Include Summary for File: /home/yupeng/work/emacs/test2/test2.c >>> >>>This file contains 4 tags, 3 of which are includes. >>> Unknown Includes: 2 >>> Unparsed Includes: 0 >>> Parsed Includes: 1 >>> >>>Include Path Summary: >>> >>> This file's project include is handled by the EDE object: >>> #<ede-cpp-root-target /home/yupeng/work/emacs/test2/> >>> >>> This file's system include path is: >>> /usr/include >>> >>>All unknown includes: >>> test2.h >>> test1.h >>> >>>There are currently no includes found recursively. >> [ ... ] >> >>--=20 >> Eric Ludlam: er...@si... >> Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.ne= >t > >------------------------------------------------------------------------------ >This SF.net email is sponsored by: >SourcForge Community >SourceForge wants to tell your story. >http://p.sf.net/sfu/sf-spreadtheword >_______________________________________________ >Cedet-devel mailing list >Ced...@li... >https://lists.sourceforge.net/lists/listinfo/cedet-devel > |
From: yupeng82921 <yup...@16...> - 2009-02-13 13:59:17
|
Hi, Eric. Sorry for feedback so late. I am too busy to deal with this problem some days before. I debug as you said. And I found the function ede-locate-file-in-hash return nomatch when I find the file "test2.h". What is the next thing should I do? Please help me fix this problem, thanks. Yupeng. 在2009-01-26,"Eric M. Ludlam" <er...@si...> 写道: >I'm at a bit of a loss. You're best bet now is to try and debug it. >In ede-files.el, find the method `ede-expand-filename' and >ede-expand-filename-impl'. In those definition, you can type: > >M-x edebug-defun RET > >Then do C-c . f to try and do the find-file from your C file. > >SPC will step through, and you can find out if it goes into >ede-locate-file-in-project. If so, do the same thing in that method >to see what it does. > >Eventually, it should reveal why this feature is being skipped. > >I'm assuming the caching in this function is not involved, as you must >have restarted your Emacs a couple times by now. > >Eric > >>>> yupeng82921 <yup...@16...> seems to think that: >>Hi, Eric. >> >>I tried both "C-u M-x bovinate RET" and "Force Tag Refresh", but test2.h is= >> still can not be found, and also I can not get the completion. Beside, I a= >>lso tried to delete all the semantic cache file, but the problem is still a= >>t here. >> >> >> >>=D4=DA2009-01-25=A3=AC"Eric M. Ludlam" <er...@si...> =D0=B4=B5=C0= >>=A3=BA >>>Hi, >>> >>> If you configured the ede-locate part after your file with test2.h >>>was first parsed by Semantic, it could be that a bad value was cached >>>into the tag. Try using >>> >>>C-u M-x bovinate RET >>> >>>or use the Senator menu, and first menu item "Force Tag Refresh" to >>>clear that. >>> >>>Eric >>> >>>>>> yupeng82921 <yup...@16...> seems to think that: >>>>Hi, Eric. >>>> >>>>According to your answer, I know how to find th"summarize includes", and = >>th=3D >>>>is is the result of summarize includes: >>>>/************************************************************************= >>**=3D >>>>******************/ >>>>Include Summary for File: /home/yupeng/work/emacs/test2/test2.c >>>> >>>>This file contains 4 tags, 3 of which are includes. >>>> Unknown Includes: 2 >>>> Unparsed Includes: 0 >>>> Parsed Includes: 1 >>>> >>>>Include Path Summary: >>>> >>>> This file's project include is handled by the EDE object: >>>> #<ede-cpp-root-target /home/yupeng/work/emacs/test2/> >>>> >>>> This file's system include path is: >>>> /usr/include >>>> >>>>All unknown includes: >>>> test2.h >>>> test1.h >>>> >>>>There are currently no includes found recursively. >>> [ ... ] >>> >>>--=20 >>> Eric Ludlam: er...@si... >>> Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.ne= >>t >> >>------------------------------------------------------------------------------ >>This SF.net email is sponsored by: >>SourcForge Community >>SourceForge wants to tell your story. >>http://p.sf.net/sfu/sf-spreadtheword >>_______________________________________________ >>Cedet-devel mailing list >>Ced...@li... >>https://lists.sourceforge.net/lists/listinfo/cedet-devel >> > > |
From: Eric M. L. <er...@si...> - 2009-02-14 19:10:19
|
>>> yupeng82921 <yup...@16...> seems to think that: >Hi, Eric. > >Sorry for feedback so late. I am too busy to deal with this problem some da= >ys before. > >I debug as you said. And I found the function ede-locate-file-in-hash retur= >n nomatch when I find the file "test2.h". > >What is the next thing should I do? > >Please help me fix this problem, thanks. > [ ... ] I looked back through this thread. I don't think I yet suggested running the command from inside your project. M-x cedet-gnu-global-expand-filename RET This is the underlying GNU Global routine. It ought to provide a reasonably verbose message about what it can do. If that works, then there is something tricky going on that needs some pretty detailed reproduction steps. Good luck Eric -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |
From: yupeng82921 <yup...@16...> - 2009-02-15 09:32:24
|
Hi, Eric. I try the command cedet-gnu-global-expand-filename, and it works very good, it can find any file in my project. Best regards. Yupeng. 在2009-02-15,"Eric M. Ludlam" <er...@si...> 写道: >>>> yupeng82921 <yup...@16...> seems to think that: >>Hi, Eric. >> >>Sorry for feedback so late. I am too busy to deal with this problem some da= >>ys before. >> >>I debug as you said. And I found the function ede-locate-file-in-hash retur= >>n nomatch when I find the file "test2.h". >> >>What is the next thing should I do? >> >>Please help me fix this problem, thanks. >> > [ ... ] > >I looked back through this thread. I don't think I yet suggested >running the command from inside your project. > >M-x cedet-gnu-global-expand-filename RET > >This is the underlying GNU Global routine. It ought to provide a >reasonably verbose message about what it can do. > >If that works, then there is something tricky going on that needs some >pretty detailed reproduction steps. > >Good luck >Eric > >-- > Eric Ludlam: er...@si... > Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |