diff options
Diffstat (limited to '.emacs.d/init.el')
-rw-r--r-- | .emacs.d/init.el | 23 |
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) |