62 lines
2 KiB
EmacsLisp
62 lines
2 KiB
EmacsLisp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; 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)
|
|
|
|
;; Enable subword mode for handling CamelCase format
|
|
;; TODO: not recognized
|
|
(subword-mode 1)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Python ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
(require 'py-autopep8)
|
|
(elpy-enable)
|
|
|
|
(setq elpy-modules (delq 'elpy-module-flycheck elpy-modules))
|
|
(add-hook 'elpy-mode-hook 'flycheck-mode)
|
|
(add-hook 'elpy-mode-hook 'py-autopep8-enable-on-save)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Magit (git) ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;TODO: define prefix key C-c m for Magit
|
|
(global-set-key (kbd "C-c m s") 'magit-status)
|
|
|
|
|
|
|
|
(provide 'setup-coding)
|