I've been using Ivy Irony Company for some time and it works great on all libraries I included in my C++ program so far, but I've noticed Ivy rarely auto-completes my user defined classes, objects, variables and enumerations.
I've read about company having dabbrev backend for everything user defined in opened buffers. Also I've noticed that after I build my project with make company now displays my user defined enumerations, objects etc..
Is there a way to update dabbrev backend after each save and should I put dabbrev inside grouped backend for it to work?
As far as my init.el configuration, for autocompletion part I'm using config from https://github.com/dfrib/emacs_setup#cmake-idertags I've commented out rtags part:
(use-package irony
:config
(add-hook 'c-mode-hook 'irony-mode)
(add-hook 'c++-mode-hook 'irony-mode)
(add-hook 'objc-mode-hook 'irony-mode)
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
(defun my-irony-mode-hook ()
(define-key irony-mode-map [remap completion-at-point]
'irony-completion-at-point-async)
(define-key irony-mode-map [remap complete-symbol]
'irony-completion-at-point-async))
(add-hook 'irony-mode-hook 'my-irony-mode-hook)
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
)
;; Company mode.
(use-package company
:config (global-company-mode)
)
;; company-irony.
(use-package company-irony
:after company
:config (global-company-mode)
;; (optional) adds CC special commands to `company-begin-commands' in order to
(add-hook 'irony-mode-hook 'company-irony-setup-begin-commands)
)
;; Company-mode backend for C/C++ header files that works with irony-mode.
;; Complementary to company-irony by offering completion suggestions to header files.
(use-package company-irony-c-headers
:after company-irony
:config
;; Load with `irony-mode` as a grouped backend
(eval-after-load 'company
'(add-to-list
'company-backends '(company-irony-c-headers company-irony)))
)
(use-package ivy
:config
(ivy-mode)
(setq ivy-use-virtual-buffers t)
(setq enable-recursive-minibuffers t)
``````````