X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=stage5%2Fmisc%2Femacs%2Femacsrc;h=913dcabf11876801f6b8783b9ffc9a30ed5bf891;hb=084138d08f9c85bbb7ba547e5e335cb478c4b11c;hp=9db7a0eb64e5c9d71da156366b917bf471076117;hpb=f920c7ef750f2163b9e407cc453b192ede2c185a;p=hvlinux.git diff --git a/stage5/misc/emacs/emacsrc b/stage5/misc/emacs/emacsrc index 9db7a0e..913dcab 100644 --- a/stage5/misc/emacs/emacsrc +++ b/stage5/misc/emacs/emacsrc @@ -7,10 +7,13 @@ ;; Do not display a splash screen on startup (setq inhibit-splash-screen t) +;; Do not open a scratch buffer +(kill-buffer "*scratch*") + ;; Emacs Load Path (setq load-path (cons "/usr/local/share/emacs/site-lisp" load-path)) -;; Affichage du numéro de colonne +;; Affichage du numéro de colonne (setq column-number-mode t) ;; Always end a file with a newline @@ -22,6 +25,9 @@ ;; Replaces tabs in files with spaces (setq-default indent-tabs-mode nil) +;; Display trailing whitespace +(setq-default show-trailing-whitespace t) + ;; Makes the compilation buffer always scrolls to follow ;; output as it comes in. (setq compilation-scroll-output t) @@ -29,6 +35,9 @@ ;; Pour avoir les accents (set-keyboard-coding-system 'utf-8) +;; Pour que la touche backspace fonctionne aussi en mode console: +(normal-erase-is-backspace-mode 0) + ;; Set up the keyboard so the delete key on both the regular keyboard ;; and the keypad delete the character under the cursor and to the right ;; under X, instead of the default, backspace behavior. @@ -60,20 +69,41 @@ (compile "make clean")) (defun compile-make () - (interactive) + (interactive) (compile "make")) (defun checkpatch() (interactive) (compile (concat "checkpatch.pl --no-tree --emacs --strict --file " (buffer-file-name)))) -;; buffer-cycle.el +(setq my-skippable-buffers '("*Messages*" "*scratch*" "*Help*" "*Completions*")) + +(defun my-change-buffer (change-buffer) + "Call CHANGE-BUFFER until current buffer is not in `my-skippable-buffers'." + (let ((initial (current-buffer))) + (funcall change-buffer) + (let ((first-change (current-buffer))) + (catch 'loop + (while (member (buffer-name) my-skippable-buffers) + (funcall change-buffer) + (when (eq (current-buffer) first-change) + (switch-to-buffer initial) + (throw 'loop t))))))) + +(defun my-next-buffer () + "`next-buffer' that skips `my-skippable-buffers'." + (interactive) + (my-change-buffer 'next-buffer)) + +(defun my-previous-buffer () + "`previous-buffer' that skips `my-skippable-buffers'." + (interactive) + (my-change-buffer 'previous-buffer)) + ;; F1: Switch to previous buffers -(autoload 'cycle-buffer-prev "buffer-cycle" t) -(global-set-key [f1] 'cycle-buffer-prev) +(global-set-key [f1] 'my-previous-buffer) ;; F2: Switch to next buffers -(autoload 'cycle-buffer-next "buffer-cycle" t) -(global-set-key [f2] 'cycle-buffer-next) +(global-set-key [f2] 'my-next-buffer) ;; F4: make clean (global-set-key [f4] 'compile-make-clean) @@ -97,6 +127,9 @@ ;; Modes ;;================================================== +;; Remove all source control hooks: +(setq vc-handled-backends ()) + (defun linux-c-mode () "C mode with adjusted defaults for use with the Linux kernel." (interactive) @@ -112,9 +145,19 @@ (setq indent-tabs-mode t) ) -;; Default for .h and .d files -> linux mode. +(defun company-c-mode () + "C mode with adjusted defaults for use with my company source code." + (interactive) + (c-mode) + (c-set-style "K&R") + (setq c-basic-offset 4)) + +;; Default for .h and .c files -> linux mode. (add-to-list 'auto-mode-alist '("\.[ch]$" . linux-c-mode)) +;; Default for company .h and .c files -> linux mode. +(add-to-list 'auto-mode-alist '(".*/company.*" . company-c-mode)) + ;; Verilog mode (autoload 'verilog-mode "verilog-mode" "Verilog mode" t) (add-to-list 'auto-mode-alist '("\\.v\\'" . verilog-mode)) @@ -140,6 +183,28 @@ (autoload 'muttrc-mode "muttrc-mode" "Major mode to edit muttrc files" t) (add-to-list 'auto-mode-alist '("muttrc\\'" . muttrc-mode)) +;; Default for Altium Delphi scripts (.pas) files -> linux mode. +(add-to-list 'auto-mode-alist '("\\.pas$" . delphi-mode)) + +;; Default for bitbake configuration files +(add-to-list 'auto-mode-alist '("\\.bb$" . conf-mode)) + +;; Add the .mak suffix to the auto-mode-alist: +(setq auto-mode-alist (cons '("\\.mak$" . makefile-mode) auto-mode-alist)) + +;; Add the Makefile prefix to the auto-mode-alist: +(add-to-list 'auto-mode-alist '("Makefile" . makefile-mode)) + +;; Autoconf mode +(add-to-list 'auto-mode-alist + '("/configure\\.\\(ac\\|in\\)\\'" . autoconf-mode)) +(add-to-list 'auto-mode-alist + '("/ac\\(include\\|local\\)\\.m4\\'" . autoconf-mode)) + +;; Default for XSL and XML files. +(add-to-list 'auto-mode-alist '("\\.xsl$" . sgml-mode)) +(add-to-list 'auto-mode-alist '("\\.xml$" . sgml-mode)) + ;; When an Emacs init file gets large or has a lot of function definitions, you ;; should consider compiling it: it will load faster when Emacs starts, and its ;; functions will execute faster. @@ -157,6 +222,33 @@ (add-hook 'after-save-hook 'byte-compile-user-init-file t t))) (add-hook 'emacs-lisp-mode-hook 'my-emacs-lisp-mode-hook) +;; To highlight function calls in CC mode. +(defface font-lock-function-call-face + '((t (:foreground "mediumpurple"))) + "Font Lock mode face used to highlight function calls." + :group 'font-lock-highlighting-faces) +(defvar font-lock-function-call-face 'font-lock-function-call-face) +(add-hook 'c-mode-hook + (lambda () + (font-lock-add-keywords + nil + '(("\\<\\(\\sw+\\) ?(" 1 font-lock-function-call-face)) t))) + +;; Pour colorer TRUE et FALSE +(defconst bm-additional-constant-keywords + (cons + (regexp-opt + (list + "TRUE" "FALSE" + ) 'words) + font-lock-constant-face + )) +(font-lock-add-keywords + 'c-mode + (list + bm-additional-constant-keywords + )) + (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful.