reimplement whitespace mode toggling (bound to \C-c ' SPC)
[emacs-init.git] / setup / bindings.el
1 (global-set-key "\M-/" 'hippie-expand)
2 (global-set-key "\C-c'w" 'which-func-mode)
3 (global-set-key "\C-c'h" 'highlight-changes-mode)
4 (global-set-key "\C-c'f" 'auto-fill-mode)
5 (global-set-key "\C-c'v" 'visual-line-mode)
6 (global-set-key "\C-c't" 'toggle-truncate-lines)
7 (global-set-key "\C-c'd" 'toggle-debug-on-error)
8 (global-set-key "\C-c'g" 'toggle-debug-on-quit)
9 (global-set-key "\C-c'c" 'toggle-case-fold-search)
10 (global-set-key "\C-c's" 'flyspell-mode)
11 (global-set-key "\C-c'a" 'global-auto-revert-mode)
12
13 ;(require 'develock)
14 ;(require 'develock-py)
15
16 (defun toggle-whitespace-mode (&optional mode)
17   (interactive)
18   ;; toggle whitespace mode between:
19   ;; * everything as globaly configured
20   ;; * as above but disable lines-tail
21   ;; * nothing
22   (if (null mode)
23       (if (local-variable-p 'whitespace-style)
24           (if (null whitespace-style)
25               (setq mode 'default)
26             (setq mode 'none))
27         (setq mode 'longlines)))
28   (cond ((eq mode 'default)
29          (kill-local-variable 'whitespace-style))
30         ((eq mode 'longlines)
31          (setq-local whitespace-style (remove 'lines-tail (default-value 'whitespace-style))))
32         ((eq mode 'none)
33          (setq-local whitespace-style nil)))
34   (whitespace-mode -1)
35   (sit-for 0)
36   (whitespace-mode 1)
37   (message "whitespace: %s" mode))
38
39 (global-set-key "\C-c' " 'toggle-whitespace-mode)