-(require 'irony)
-(add-hook 'c++-mode-hook 'irony-mode)
-(add-hook 'c-mode-hook 'irony-mode)
-(add-hook 'objc-mode-hook 'irony-mode)
+;; cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
-;; replace the `completion-at-point' and `complete-symbol' bindings in
-;; irony-mode's buffers by irony-mode's function
-(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)
+(if (locate-library "irony")
+ (progn
+ (require 'irony)
+ (add-hook 'c++-mode-hook 'irony-mode)
+ (add-hook 'c-mode-hook 'irony-mode)
+ (add-hook 'objc-mode-hook 'irony-mode)
+
+ (add-hook 'c++-mode-hook 'company-mode)
+ (add-hook 'c-mode-hook 'company-mode)
+ (add-hook 'objc-mode-hook 'company-mode)
+
+ (eval-after-load 'company
+ '(add-to-list 'company-backends 'company-irony))
+ (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)))