diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/lisp.el | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 854afdddbf0..57e397df663 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -30,6 +30,9 @@ (defvar defun-prompt-regexp nil "Non-nil => regexp to ignore, before the `(' that starts a defun.") +(defvar parens-dont-require-spaces nil + "Non-nil => `insert-parentheses' should not insert whitespace.") + (defun forward-sexp (&optional arg) "Move forward across one balanced expression (sexp). With argument, do it that many times. Negative arg -N means @@ -195,18 +198,22 @@ The defun marked is the one that contains point or follows point." (defun insert-parentheses (arg) "Put parentheses around next ARG sexps. Leave point after open-paren. -No argument is equivalent to zero: just insert () and leave point between." +No argument is equivalent to zero: just insert `()' and leave point between. +This command also sometimes inserts a space before and after, +depending on the surrounding characters." (interactive "P") (if arg (setq arg (prefix-numeric-value arg)) (setq arg 0)) (or (eq arg 0) (skip-chars-forward " \t")) - (and (memq (char-syntax (preceding-char)) '(?w ?_ ?\) )) + (and (not parens-dont-require-spaces) + (memq (char-syntax (preceding-char)) '(?w ?_ ?\) )) (insert " ")) (insert ?\() (save-excursion (or (eq arg 0) (forward-sexp arg)) (insert ?\)) - (and (memq (char-syntax (following-char)) '(?w ?_ ?\( )) + (and (not parens-dont-require-spaces) + (memq (char-syntax (following-char)) '(?w ?_ ?\( )) (insert " ")))) (defun move-past-close-and-reindent () |