| | |
| | | #+BEGIN_SRC emacs-lisp
|
| | | (setq c-default-style '((java-mode . "java")
|
| | | (awk-mode . "awk")
|
| | | (other . "linux")))
|
| | | (other . "k&r")))
|
| | | #+END_SRC
|
| | |
|
| | | ** Coding system
|
| | |
| | | (set-keyboard-coding-system 'utf-8)
|
| | | (set-language-environment "UTF-8")
|
| | | (prefer-coding-system 'utf-8)
|
| | | (setq-default indent-tabs-mode t
|
| | | tab-width 8
|
| | | (setq-default indent-tabs-mode nil
|
| | | tab-width 4
|
| | | c-basic-offset tab-width
|
| | | cperl-indent-level tab-width)
|
| | | (c-set-offset 'inline-open '0)
|
| | | (delete-selection-mode)
|
| | | (global-set-key (kbd "RET") 'newline-and-indent)
|
| | | #+END_SRC
|
| | | *** Smart tabs
|
| | | Tabs for indentation, spaces for alignment
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package smart-tabs-mode
|
| | | :ensure t
|
| | | :config
|
| | | (smart-tabs-insinuate 'c 'c++ 'java 'javascript 'cperl 'python 'ruby
|
| | | 'nxml))
|
| | | #+END_SRC
|
| | |
|
| | | ** Move to beginning of line ignoring whitespace
|
| | |
| | | ;; (setq tramp-default-method "ssh")
|
| | | (when (eq system-type 'windows-nt)
|
| | | (setq tramp-default-method "pscp"))
|
| | | (setq password-cache-expiry nil))
|
| | | (setq password-cache-expiry nil)
|
| | | (add-to-list 'tramp-remote-path 'tramp-own-remote-path))
|
| | | #+END_SRC
|
| | |
|
| | | ** COMMENT Y or N instead of yes or no
|
| | |
| | |
|
| | | ** Language specific configs
|
| | | *** C/C++
|
| | | **** Flycheck clang
|
| | | **** Flycheck
|
| | | ***** Flycheck clang
|
| | | Add the clang backend for linting.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package flycheck-clang-analyzer
|
| | |
| | | (require 'flycheck-clang-analyzer)
|
| | | (flycheck-clang-analyzer-setup)))
|
| | | #+END_SRC
|
| | | ***** Flycheck project root
|
| | | Flycheck tends to fail finding the project root, giving errors about missing files.
|
| | | This should remove them.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (defun setup-flycheck-project-path ()
|
| | | (let ((root (ignore-errors (projectile-project-root))))
|
| | | (when root
|
| | | (add-to-list
|
| | | (make-variable-buffer-local 'flycheck-clang-include-path)
|
| | | root)
|
| | | (add-to-list
|
| | | (make-variable-buffer-local 'flycheck-gcc-include-path)
|
| | | root))))
|
| | |
|
| | | **** Company
|
| | | (add-hook 'c-mode-hook 'setup-flycheck-project-path)
|
| | | (add-hook 'c++-mode-hook 'setup-flycheck-project-path)
|
| | | #+END_SRC
|
| | |
|
| | | **** COMMENT Company
|
| | | Add header completion as well as Irony, which uses clang for suggestions.
|
| | | #+BEGIN_SRC emacs-lisp
|
| | | (use-package company-c-headers
|