comparison lisp/emacs-lisp/lisp.el @ 3733:c1c105ffdd0c

(parens-dont-require-spaces): New variable. (insert-parentheses): Obey that variable.
author Richard M. Stallman <rms@gnu.org>
date Mon, 14 Jun 1993 22:58:54 +0000
parents 507f64624555
children e212a0863773
comparison
equal deleted inserted replaced
3732:60292a8697bc 3733:c1c105ffdd0c
27 27
28 ;;; Code: 28 ;;; Code:
29 29
30 (defvar defun-prompt-regexp nil 30 (defvar defun-prompt-regexp nil
31 "Non-nil => regexp to ignore, before the `(' that starts a defun.") 31 "Non-nil => regexp to ignore, before the `(' that starts a defun.")
32
33 (defvar parens-dont-require-spaces nil
34 "Non-nil => `insert-parentheses' should not insert whitespace.")
32 35
33 (defun forward-sexp (&optional arg) 36 (defun forward-sexp (&optional arg)
34 "Move forward across one balanced expression (sexp). 37 "Move forward across one balanced expression (sexp).
35 With argument, do it that many times. Negative arg -N means 38 With argument, do it that many times. Negative arg -N means
36 move backward across N balanced expressions." 39 move backward across N balanced expressions."
193 (beginning-of-defun) 196 (beginning-of-defun)
194 (re-search-backward "^\n" (- (point) 1) t)) 197 (re-search-backward "^\n" (- (point) 1) t))
195 198
196 (defun insert-parentheses (arg) 199 (defun insert-parentheses (arg)
197 "Put parentheses around next ARG sexps. Leave point after open-paren. 200 "Put parentheses around next ARG sexps. Leave point after open-paren.
198 No argument is equivalent to zero: just insert () and leave point between." 201 No argument is equivalent to zero: just insert `()' and leave point between.
202 This command also sometimes inserts a space before and after,
203 depending on the surrounding characters."
199 (interactive "P") 204 (interactive "P")
200 (if arg (setq arg (prefix-numeric-value arg)) 205 (if arg (setq arg (prefix-numeric-value arg))
201 (setq arg 0)) 206 (setq arg 0))
202 (or (eq arg 0) (skip-chars-forward " \t")) 207 (or (eq arg 0) (skip-chars-forward " \t"))
203 (and (memq (char-syntax (preceding-char)) '(?w ?_ ?\) )) 208 (and (not parens-dont-require-spaces)
209 (memq (char-syntax (preceding-char)) '(?w ?_ ?\) ))
204 (insert " ")) 210 (insert " "))
205 (insert ?\() 211 (insert ?\()
206 (save-excursion 212 (save-excursion
207 (or (eq arg 0) (forward-sexp arg)) 213 (or (eq arg 0) (forward-sexp arg))
208 (insert ?\)) 214 (insert ?\))
209 (and (memq (char-syntax (following-char)) '(?w ?_ ?\( )) 215 (and (not parens-dont-require-spaces)
216 (memq (char-syntax (following-char)) '(?w ?_ ?\( ))
210 (insert " ")))) 217 (insert " "))))
211 218
212 (defun move-past-close-and-reindent () 219 (defun move-past-close-and-reindent ()
213 "Move past next `)', delete indentation before it, then indent after it." 220 "Move past next `)', delete indentation before it, then indent after it."
214 (interactive) 221 (interactive)