From e4abcfc8b11a4ba37f828c0e9d2be9a50497fd66 Mon Sep 17 00:00:00 2001 From: laurensmiers Date: Thu, 17 Aug 2017 18:16:51 +0200 Subject: [PATCH] Add custom coding setup file --- custom/setup-coding.el | 40 ++++++++++++++++++++++++++++++++++++++++ init.el | 3 +++ 2 files changed, 43 insertions(+) create mode 100644 custom/setup-coding.el diff --git a/custom/setup-coding.el b/custom/setup-coding.el new file mode 100644 index 0000000..ad8d355 --- /dev/null +++ b/custom/setup-coding.el @@ -0,0 +1,40 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Set indentation style depending on number of spaces/tabs in file ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defun infer-indentation-style () + ;; if our source file uses tabs, we use tabs, if spaces spaces, and if + ;; neither, we use the current indent-tabs-mode + (let ((space-count (how-many "^ " (point-min) (point-max))) + (tab-count (how-many "^\t" (point-min) (point-max)))) + (if (> space-count tab-count) (setq indent-tabs-mode nil)) + (if (> tab-count space-count) (setq indent-tabs-mode t)))) + +;; make angry face to get my attention +(setq prog-modes '(c++-mode python-mode erlang-mode java-mode c-mode emacs-lisp-mode scheme-mode prog-mode)) +(make-face 'font-lock-angry-face) +(modify-face 'font-lock-angry-face "Red" "Yellow" nil t nil t nil nil) + +;; Add keywords to recognize to angry face +(mapc (lambda (mode) + (font-lock-add-keywords + mode + '(("\\<\\(FIXME\\)" 1 'font-lock-angry-face t))) + ) + prog-modes) +(mapc (lambda (mode) + (font-lock-add-keywords + mode + '(("\\<\\(TODO\\)" 1 'font-lock-angry-face t))) + ) + prog-modes) + +;; default coding style +(setq c-default-style "linux") + +;; sane indentation offset +(setq c-basic-offset 4) + +;; Tab-space strategy +(add-hook 'c-mode-hook 'infer-indentation-style) + +(provide 'setup-coding) diff --git a/init.el b/init.el index b61212c..c69868b 100644 --- a/init.el +++ b/init.el @@ -65,6 +65,9 @@ ;; install packages if not yet installed (install-packages) +;; setup coding +(require 'setup-coding) + ;; setup gtags (require 'setup-gtags) (require 'setup-editing)