2

I currently have a very basic setup for CEDET:

(add-to-list 'load-path "~/.emacs.d/popup")
(require 'popup)

(add-to-list 'load-path "~/.emacs.d/auto-complete")
(require 'auto-complete)
(require 'auto-complete-config)
(ac-config-default)
(define-key ac-mode-map (kbd "C-SPC") 'auto-complete)

(semantic-mode 1)
(defun my:add-semantic-to-autocomplete() 
  (add-to-list 'ac-sources 'ac-source-semantic)
)
(add-hook 'c-mode-common-hook 'my:add-semantic-to-autocomplete)
(global-ede-mode 1)

It's working but the output for C++ is far less than desired. For example, take the following class:

class Rectangle {
   int width;
   int height;
public:
   void set_values (int,int);
   int area (void);
};

The output from the auto-completion popup is:

set_values m
width      m
area       m
height     m

If I wait a second over each entry it will provide the method signature or property type. But I want to know this information immediately.

The following will display something more useful but it doesn't appear in a popup: semantic-ia-show-variants. The format is also difficult to read for large classes when glancing at auto-completion.

What I would like is an Eclipse-esque popup with nicely formatted variants. I found a screenshot of CEDET providing this kind of behavior here: http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html

Example: enter image description here

But I can't figure out how to make it do this.

How can I configure CEDET to give me some real meaty completions?

UPDATE:

From what I understand from the following links: http://sourceforge.net/p/cedet/mailman/message/30023381 https://stackoverflow.com/questions/12957786/autocompletion-from-the-keyboard-in-emacs-cedet-semantic?answertab=active#tab-top

It seems as though there is a discrepancy between the available information and the current release. Another possibility that I'm considering is that there is a discrepancy between the latest development HEAD and the version bundled with Emacs.

I believe that older versions had an auto-completion popup built-in as something called "senator" which is where the "-menu" functions came from; this would also explain why the popup screenshots I've found are both old and have a distinctly different visual style. The old menu functionality from what I can tell has been removed and that the recommended method is to combine CEDET with auto-complete, which is what I'm doing.

The information is provided by semantic-ia-complete-symbol (thanks djangoliv) but semantic-ia-complete-symbol-menu, part of senator, is no more. So the question now is how to get this information linked in with auto-complete.

1

The completion used in the screenshot is provide by semantic-ia-complete-symbol-menu function, but I doesn't know how to replace the default completion method.

BTW you can map the method on C-TAB for example.

(global-set-key (kbd "C-<tab>") 'semantic-ia-complete-symbol-menu)

Hope this Help

  • I've updated my question. semantic-ia-complete-symbol-menu is not available and seems to be part of senator whose functionality has been replaced by auto-complete. I don't know how to link the two bits together to get the detailed output though. – Zhro Aug 7 '15 at 0:08
  • Also of note is that completion seems to be borked with semantic-ia-complete-symbol. For example, I perform a completion for rect. of type Rectangle and select int area (void). CEDET then completes it literally with: rect.int area (void)? – Zhro Aug 7 '15 at 0:19
  • I think the function semantic-ia-complete-symbol-menu is still available (sourceforge.net/p/cedet/git/ci/master/tree/lisp/cedet/semantic/…). Maybe you need to add (require 'semantic/ia) in your configuration – djangoliv Aug 7 '15 at 8:26
  • My Emacs does come with an ia.elc in the semantic directory and imports 'semantic/ia just fine. But there is still no semantic-ia-complete-symbol-menu. I'm going to try pulling the latest CEDET from the repo and see if that's any different. – Zhro Aug 7 '15 at 9:25
  • That was it. semantic-ia-complete-symbol-menu isn't included with Emacs and requires CEDET to be pulled from the repo. Thanks. :) – Zhro Aug 7 '15 at 9:29
0

Check out the moo-complete command from function-args package. It should do exactly what you ask (and it uses CEDET, so zero extra setup):

demo.png

  • djangoliv has pointed out that semantic-ia-complete-symbol does this already. Thanks though. – Zhro Aug 7 '15 at 0:07
  • I'm aware of what semantic-ia-complete-symbol does. function-args is an improvement on that command. – abo-abo Aug 7 '15 at 6:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.