Nico
Nico

Reputation: 3489

Auto-Complete with Emacs 24 doesn't work with Java, C or C++ modes

I installed auto-complete using the marmalade repo. Everything installed correctly and after moving stuff around I managed to start up and run auto-correct without any errors with the following code in my init.el:

;; auto-complete
(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete/dict")
(ac-config-default)

Now I can use auto-complete with no hick-ups with Emacs Lisp but whenever I use any other mode, like, Java, C, or C++ it doesn't work at all.

I have yasnippet installed too (it works perfectly), not sure if that might have anything to do with it. Here's the relevant code in my init.el:

;;yasnippet
(add-to-list 'load-path
              "~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas-global-mode 1)

I am in the process of learning Emacs and currently I'm still a noob. I've been looking all over the documentation and SO but haven't found anything. I'd really appreciate any help whatsoever on this.

Upvotes: 7

Views: 5763

Answers (2)

user2152843
user2152843

Reputation: 1

I have exact same issue as you. Emacs-Lisp works perfect with auto-complete but C, C++ doesn't work. After trying with various combination, I find out that commenting out yasnippet from .emacs solve my issue. Hope this could help you. My auto-complete version is 1.3.1.

Upvotes: 0

Chris Barrett
Chris Barrett

Reputation: 3385

You may need to add completion sources. Here's what's in my config:

(set-default 'ac-sources
             '(ac-source-abbrev
               ac-source-dictionary
               ac-source-yasnippet
               ac-source-words-in-buffer
               ac-source-words-in-same-mode-buffers
               ac-source-semantic))

Update: ac-config-default should cover this, but if autocomplete isn't activating for those modes, try putting the following in your init.el:

(dolist (m '(c-mode c++-mode java-mode))
  (add-to-list 'ac-modes m))

(global-auto-complete-mode t)

Update2: I've posted a gist that adapts your init.el to pull autocomplete using package-install.

I can't tell what version of auto-complete you were referencing, but the latest is working fine for me.

C-mode with working auto-completions

Upvotes: 6

Related Questions