summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2014-02-24 08:38:44 +0100
committerGravatar Tom Willemse2014-02-24 08:39:34 +0100
commitbd033073e0d7e2edb1c5f2f956f944e855e48e3b (patch)
treef0a79d6ed4e7d833a1a44a339e0fb4591a5a658b
parente6caf7a1cf632ff865f01075d2b939a305a04e47 (diff)
downloademacs-bd033073e0d7e2edb1c5f2f956f944e855e48e3b.tar.gz
emacs-bd033073e0d7e2edb1c5f2f956f944e855e48e3b.zip
Add oni:electric-pair-local-mode
Copied/adapted from `electric-indent-local-mode' from `electric.el'.
-rw-r--r--.emacs.d/init.el23
1 files changed, 20 insertions, 3 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el
index b3e42a7..2783b41 100644
--- a/.emacs.d/init.el
+++ b/.emacs.d/init.el
@@ -839,6 +839,21 @@ If no direction is given, don't split."
(error (oni:stumpwm-command
(format "move-focus %s" (ad-get-arg 0))))))
+;;;; Modes
+
+;; Copied from electric.el, modified from `electric-indent-local-mode'.
+(define-minor-mode oni:electric-pair-local-mode
+ "Toggle `electric-pair-mode' only in this buffer."
+ :variable (buffer-local-value 'electric-pair-mode (current-buffer))
+ (cond
+ ((eq electric-pair-mode (default-value 'electric-pair-mode))
+ (kill-local-variable 'electric-pair-mode))
+ ((not (default-value 'electric-pair-mode))
+ ;; Locally enabled, but globally disabled.
+ (electric-pair-mode 1) ; Setup the hooks.
+ (setq-default electric-pair-mode nil) ; But keep it globally disabled.
+ )))
+
;;;; Aliases
(defalias 'yes-or-no-p 'y-or-n-p)
@@ -1247,7 +1262,8 @@ If no direction is given, don't split."
'clojure-mode-hook 'geiser-repl-mode-hook 'sawfish-mode-hook
'scheme-mode-hook)
-(oni:add-hooks 'c-mode-hook #'oni:c-mode-func)
+(oni:add-hooks 'c-mode-hook
+ #'oni:c-mode-func #'oni:electric-pair-local-mode)
(oni:add-hooks 'css-mode-hook
#'oni:css-mode-func #'rainbow-mode)
@@ -1281,7 +1297,8 @@ If no direction is given, don't split."
#'moz-minor-mode #'oni:js-mode-func)
(oni:add-hooks 'js2-mode-hook
- #'tern-mode #'oni:js2-mode-func #'moz-minor-mode)
+ #'tern-mode #'oni:js2-mode-func #'moz-minor-mode
+ #'oni:electric-pair-local-mode)
(oni:add-hooks 'lisp-mode-hook
#'oni:set-emacs-lisp-symbols #'paredit-mode)
@@ -1302,7 +1319,7 @@ If no direction is given, don't split."
(oni:add-hooks 'python-mode-hook
#'oni:set-python-symbols #'flycheck-mode #'whitespace-mode
#'oni:python-mode-func #'oni:set-python-imenu-function
- #'jedi:setup #'subword-mode)
+ #'jedi:setup #'subword-mode #'oni:electric-pair-local-mode)
(oni:add-hooks 'slime-repl-mode-hook
#'paredit-mode #'set-up-slime-ac)