summaryrefslogtreecommitdiff
path: root/lisp/cpp.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/cpp.el')
-rw-r--r--lisp/cpp.el54
1 files changed, 54 insertions, 0 deletions
diff --git a/lisp/cpp.el b/lisp/cpp.el
new file mode 100644
index 0000000..0fca237
--- /dev/null
+++ b/lisp/cpp.el
@@ -0,0 +1,54 @@
+(defun setup-c()
+ (setq c++-tab-always-indent 0)
+ (setq c-basic-offset 4) ;; Default is 2
+ (setq c-indent-level 4) ;; Default is 2
+ (c-set-offset 'brace-list-open 0)
+
+
+ (setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60))
+ (setq tab-width 4)
+ (electric-indent-mode 0)
+ )
+
+;; == irony-mode ==
+(use-package irony
+ :ensure t
+ :defer t
+ :init
+ (add-hook 'c++-mode-hook 'irony-mode)
+ (add-hook 'c-mode-hook 'irony-mode)
+ (add-hook 'objc-mode-hook 'irony-mode)
+ :config
+ ;; 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)
+ )
+
+;; == company-mode ==
+(use-package company
+ :ensure t
+ :defer t
+ :init (add-hook 'after-init-hook 'global-company-mode)
+ :config
+ (use-package company-irony :ensure t :defer t)
+ (setq company-idle-delay nil
+ company-minimum-prefix-length 2
+ company-show-numbers t
+ company-tooltip-limit 20
+ company-dabbrev-downcase nil
+ company-backends '((company-irony company-gtags))
+ )
+ :bind ("C-;" . company-complete-common)
+ )
+
+;; Flycheck
+(eval-after-load 'flycheck
+ '(add-hook 'flycheck-mode-hook #'flycheck-irony-setup))
+
+(provide 'cpp)