From 848bdb4bd07d95ead4fcededd2ab5e441cb87a12 Mon Sep 17 00:00:00 2001 From: Peng Li Date: Fri, 29 May 2015 23:22:52 +0800 Subject: [PATCH] emacs: c/c++ auto-complete yansippet https://www.youtube.com/watch?v=HTUE03LnaXA&list=PL-mFLc7R_MJet8ItKipCtYc7PWoS5KTfM --- emacs.d/config/my-packages.el | 3 +++ emacs.d/init.el | 49 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/emacs.d/config/my-packages.el b/emacs.d/config/my-packages.el index 1ac60c8..96a7251 100644 --- a/emacs.d/config/my-packages.el +++ b/emacs.d/config/my-packages.el @@ -41,6 +41,9 @@ projectile-speedbar ecb ggtags + irony + yasnippet + auto-complete-c-headers ) "a list of packages to ensure are installed at launch.") (require 'cl) diff --git a/emacs.d/init.el b/emacs.d/init.el index 332d13c..2869f69 100644 --- a/emacs.d/init.el +++ b/emacs.d/init.el @@ -153,3 +153,52 @@ (setq scroll-conservatively 10000) (show-paren-mode t) +;;; next, cedet & ecb for c++ development +(require 'cc-mode) +(require 'semantic) + +(global-semanticdb-minor-mode 1) +(global-semantic-idle-scheduler-mode 1) + +(semantic-mode 1) + + +(add-hook 'c++-mode-hook 'irony-mode) +(add-hook 'c-mode-hook 'irony-mode) +(add-hook 'objc-mode-hook 'irony-mode) + + +;;--------------------------------------------------------------------------------------- +;; irony-mode +;; +;; 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) +(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options) + + + + +;; c/c++ auto-complete, yasnippet, auto-complet-c-headers +;;https://www.youtube.com/watch?v=HTUE03LnaXA&list=PL-mFLc7R_MJet8ItKipCtYc7PWoS5KTfM +(require 'auto-complete) +(require 'auto-complete-config) +(ac-config-default) +;; input TAB to +(require 'yasnippet) +(yas-global-mode 1) + +;; auto-complete-c-headers +(defun my:ac-c-header-init () + (require 'auto-complete-c-headers) + (add-to-list 'ac-sources 'ac-source-c-headers) + (add-to-list 'achead:include-directories "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include") +) +;; call this function from c/c++ hooks +(add-hook 'c++-mode-hook 'my:ac-c-header-init) +(add-hook 'c-mode-hook 'my:ac-c-header-init) -- 2.11.0