Thread: [cedet-semantic] 2 questions and 1 suggestion
Brought to you by:
zappo
From: M J. F. <ja...@hp...> - 2005-10-05 05:33:37
|
I've started using Semantic and I have a couple questions and a suggestion. semantic-version is "2.0pre3", Debian package 1:1.0pre3-1 (Unstable) 1. I like using Semantic's completion for C and C++ code (thanks for all the customization in *how* to show completions!), but it acts much worse than the existing completions for Emacs Lisp and Lisp code. I'd like to disable Semantic for these two modes. I've added (remove-hook 'elisp-mode-hook 'semantic-default-elisp-setup) (remove-hook 'lisp-mode-hook 'semantic-default-elisp-setup) to my init file, but I still get Semantic modes at startup. How can I make sure that the global Semantic modes do not get initialized at startup of these modes? 2. Is there any way to use Semantic for a context sensitive find-tag? I've installed this patch in my init file. It makes semantic-show-parser-state-mode's information in the mode line clickable: > (setf (get 'semantic-show-parser-state-string 'risky-local-variable) t) > (defun semantic-show-parser-state-marker (&rest ignore) > "Set `semantic-show-parser-state-string' to indicate parser state. > This marker is one of the following: > `-' -> The cache is up to date. > `!' -> The cache requires a full update. > `~' -> The cache needs to be incrementally parsed. > `%' -> The cache is not currently parseable. > `@' -> Auto-parse in progress (not set here.) > Arguments IGNORE are ignored, and accepted so this can be used as a hook > in many situations." > (labels ((make-state-string (string &optional (help-echo "") func) > (if func > (let ((map (make-sparse-keymap))) > (setf (lookup-key map (kbd "<mode-line> <mouse-1>")) func) > (propertize string > 'help-echo help-echo > 'mouse-face 'mode-line-highlight > 'local-map map)) > (propertize string 'help-echo help-echo)))) > (setf semantic-show-parser-state-string > (cond ((semantic-parse-tree-needs-rebuild-p) > (make-state-string "!" "Needs a full parse: mouse-1 reparses" > (lambda () (interactive) (semantic-refresh-tags-safe) nil))) > ((semantic-parse-tree-needs-update-p) > (make-state-string "^" "Needs an incremental parse: mouse-1 reparses" > (lambda () (interactive) (semantic-refresh-tags-safe) nil))) > ((semantic-parse-tree-unparseable-p) > (make-state-string "%" "Buffer Unparsable: mouse-1 reparses" > (lambda () (interactive) (semantic-refresh-tags-safe) nil))) > (t > (make-state-string "-" "Semantic is up to date"))) > )) > ;;(message "Setup mode line indicator to [%s]" semantic-show-parser-state-string) > (semantic-mode-line-update)) Thanks for creating such wonderful tools! -- MJF |
From: Eric M. L. <er...@si...> - 2005-10-05 19:18:47
|
>>> M Jared Finder <ja...@hp...> seems to think that: >I've started using Semantic and I have a couple questions and a >suggestion. semantic-version is "2.0pre3", Debian package 1:1.0pre3-1 >(Unstable) > >1. I like using Semantic's completion for C and C++ code (thanks for all >the customization in *how* to show completions!), but it acts much worse >than the existing completions for Emacs Lisp and Lisp code. I'd like to >disable Semantic for these two modes. I've added >(remove-hook 'elisp-mode-hook 'semantic-default-elisp-setup) >(remove-hook 'lisp-mode-hook 'semantic-default-elisp-setup) >to my init file, but I still get Semantic modes at startup. How can I >make sure that the global Semantic modes do not get initialized at >startup of these modes? For this, you are probably better off just disabling the completion mode. The mode is semantic-idle-completions-mode and you could disable it in the emacs-lisp-mode-hook. >2. Is there any way to use Semantic for a context sensitive find-tag? The senator mode has two jump bindings. `semantic-complete-jump' might be close. Alternately, you could use the speedbar or ECB analyzer mode which has push-buttons which are context sensitive matches against a local context. >I've installed this patch in my init file. It makes >semantic-show-parser-state-mode's information in the mode line clickable: [ ... ] Thanks, I will investigate at more length later and let you know what happens. 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: M J. F. <ja...@hp...> - 2005-10-06 04:51:27
|
Eric M. Ludlam wrote: >>>>M Jared Finder <ja...@hp...> seems to think that: >> >>I've started using Semantic and I have a couple questions and a >>suggestion. semantic-version is "2.0pre3", Debian package 1:1.0pre3-1 >>(Unstable) >> >>1. I like using Semantic's completion for C and C++ code (thanks for all >>the customization in *how* to show completions!), but it acts much worse >>than the existing completions for Emacs Lisp and Lisp code. I'd like to >>disable Semantic for these two modes. I've added >>(remove-hook 'elisp-mode-hook 'semantic-default-elisp-setup) >>(remove-hook 'lisp-mode-hook 'semantic-default-elisp-setup) >>to my init file, but I still get Semantic modes at startup. How can I >>make sure that the global Semantic modes do not get initialized at >>startup of these modes? > > > For this, you are probably better off just disabling the completion > mode. The mode is semantic-idle-completions-mode and you could > disable it in the emacs-lisp-mode-hook. Done. Thanks for your help. >>2. Is there any way to use Semantic for a context sensitive find-tag? > > > The senator mode has two jump bindings. `semantic-complete-jump' > might be close. Alternately, you could use the speedbar or ECB > analyzer mode which has push-buttons which are context sensitive > matches against a local context. Wow, that's almost exactly what I want. Thank you! The biggest problem is that it doesn't look at tags in other directories until I open a file in that directory. Is it possible to tell semantic to load all semantic.cache files in this directory and any sub directory? Yes, it might take time, but I'm going to do that at most once a day. (It'd be nice if it understood C++ namespaces as well, but that's easy enough to work around.) -- MJF |