* Mode-line
** clean mode line
-
clean mode line, Refer to [[https://www.masteringemacs.org/article/hiding-replacing-modeline-strings][Marstering Emacs]]
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(defvar mode-line-cleaner-alist
`((auto-complete-mode . " α")
(org-indent-mode . "")
;; default is Fly
(flyspell-mode . "")
+ (irony-mode . "I")
;; Major modes
(lisp-interaction-mode . "λ")
(hi-lock-mode . "")
#+END_SRC
** Powerline mode
-
Install powerline mode [[https://github.com/milkypostman/powerline][powerline]]
-
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package powerline
:ensure t
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package ido
:ensure t
- :init (setq ido-enable-flex-matching t
+ :init (setq ido-enable-flex-matching nil
ido-ignore-extensions t
ido-use-virtual-buffers t
ido-everywhere t)
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package flx-ido
:ensure t
- :init (setq ido-enable-flex-matching t
+ :init (setq ido-enable-flex-matching nil
ido-use-faces nil)
- :config (flx-ido-mode 1))
+ :config (flx-ido-mode nil))
#+END_SRC
** IDO-vertically
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(use-package exec-path-from-shell
:ensure t
+ :init
+ (setq exec-path-from-shell-check-startup-files nil)
:config
(exec-path-from-shell-initialize))
#+END_SRC
#+END_SRC
** C & C++
+*** c/c++ style
#+BEGIN_SRC emacs-lisp :tangle yes :results silent
(setq c-default-style "stroustrup"
c-basic-offset 4)
#+END_SRC
+*** flycheck
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package flycheck
+ :ensure t)
+#+END_SRC
+
+*** irony
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package irony
+ :ensure t
+ :config
+ (add-hook 'c++-mode-hook 'irony-mode)
+ (add-hook 'c-mode-hook 'irony-mode)
+ (add-hook 'objc-mode-hook 'irony-mode))
+#+END_SRC
+
+Install clang, on mac, it has =libclang.dylib=, but no develop headers. Install by =brew=
+#+BEGIN_SRC sh
+ brew install llvm --with-clang
+#+END_SRC
+
+then install irony searver, and =LIBCLANG_LIBRARY= and =LIBCLANG_INCLUDE_DIR= accordingly
+#+BEGIN_SRC emacs-lisp :tangle no :results silent
+ (irony-install-server)
+#+END_SRC
+
+#+BEGIN_SRC sh
+ cmake -DLIBCLANG_LIBRARY\=/usr/local/Cellar/llvm/3.6.2/lib/libclang.dylib \
+ -DLIBCLANG_INCLUDE_DIR=/usr/local/Cellar/llvm/3.6.2/include \
+ -DCMAKE_INSTALL_PREFIX\=/Users/peli3/.emacs.d/irony/ \
+ /Users/peli3/.emacs.d/elpa/irony-20160713.1245/server && cmake --build . --use-stderr --config Release --target install
+#+END_SRC
+
+irony-mode-hook, copied from [[https://github.com/Sarcasm/irony-mode][irony-mode]] github
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ ;; 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)
+#+END_SRC
+
+irony-company
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package company-irony
+ :ensure t)
+
+ (eval-after-load 'company
+ '(add-to-list 'company-backends 'company-irony))
+
+ (use-package flycheck-irony
+ :ensure t)
+
+ (eval-after-load 'flycheck
+ '(add-hook 'flycheck-mode-hook #'flycheck-irony-setup))
+#+END_SRC
+
+*** yasnippet
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+ (use-package yasnippet
+ :ensure t)
+#+END_SRC
+
* Compile
Set the environments vairables in compilation mode
#+BEGIN_SRC emacs-lisp :tangle yes :results silent