[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/lisp.el
From: |
Juri Linkov |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/lisp.el |
Date: |
Fri, 28 May 2004 18:21:35 -0400 |
Index: emacs/lisp/emacs-lisp/lisp.el
diff -c emacs/lisp/emacs-lisp/lisp.el:1.54 emacs/lisp/emacs-lisp/lisp.el:1.55
*** emacs/lisp/emacs-lisp/lisp.el:1.54 Sat May 22 07:41:55 2004
--- emacs/lisp/emacs-lisp/lisp.el Fri May 28 21:12:25 2004
***************
*** 337,343 ****
(re-search-backward "^\n" (- (point) 1) t)
(narrow-to-region beg end))))
! (defun insert-pair (arg &optional open close)
"Enclose following ARG sexps in a pair of OPEN and CLOSE characters.
Leave point after the first character.
A negative ARG encloses the preceding ARG sexps instead.
--- 337,351 ----
(re-search-backward "^\n" (- (point) 1) t)
(narrow-to-region beg end))))
! (defvar insert-pair-alist
! '((?\( ?\)) (?\[ ?\]) (?\{ ?\}) (?\< ?\>) (?\" ?\") (?\' ?\') (?\` ?\'))
! "Alist of paired characters inserted by `insert-pair'.
! Each element looks like (OPEN-CHAR CLOSE-CHAR) or (COMMAND-CHAR
! OPEN-CHAR CLOSE-CHAR). The characters OPEN-CHAR and CLOSE-CHAR
! of the pair whose key is equal to the last input character with
! or without modifiers, are inserted by `insert-pair'.")
!
! (defun insert-pair (&optional arg open close)
"Enclose following ARG sexps in a pair of OPEN and CLOSE characters.
Leave point after the first character.
A negative ARG encloses the preceding ARG sexps instead.
***************
*** 345,376 ****
and leave point between.
If `parens-require-spaces' is non-nil, this command also inserts a space
before and after, depending on the surrounding characters.
! If region is active, insert enclosing characters at region boundaries."
(interactive "P")
! (if arg (setq arg (prefix-numeric-value arg))
! (setq arg 0))
! (or open (setq open ?\())
! (or close (setq close ?\)))
! (if (and transient-mark-mode mark-active)
! (progn
! (save-excursion (goto-char (region-end)) (insert close))
! (save-excursion (goto-char (region-beginning)) (insert open)))
! (cond ((> arg 0) (skip-chars-forward " \t"))
! ((< arg 0) (forward-sexp arg) (setq arg (- arg))))
! (and parens-require-spaces
! (not (bobp))
! (memq (char-syntax (preceding-char)) (list ?w ?_ (char-syntax
close)))
! (insert " "))
! (insert open)
! (save-excursion
! (or (eq arg 0) (forward-sexp arg))
! (insert close)
! (and parens-require-spaces
! (not (eobp))
! (memq (char-syntax (following-char)) (list ?w ?_ (char-syntax
open)))
! (insert " ")))))
! (defun insert-parentheses (arg)
"Enclose following ARG sexps in parentheses. Leave point after open-paren.
A negative ARG encloses the preceding ARG sexps instead.
No argument is equivalent to zero: just insert `()' and leave point between.
--- 353,399 ----
and leave point between.
If `parens-require-spaces' is non-nil, this command also inserts a space
before and after, depending on the surrounding characters.
! If region is active, insert enclosing characters at region boundaries.
!
! If arguments OPEN and CLOSE are nil, the character pair is found
! from the variable `insert-pair-alist' according to the last input
! character with or without modifiers. If no character pair is
! found in the variable `insert-pair-alist', then the last input
! character is inserted ARG times."
(interactive "P")
! (if (not (and open close))
! (let ((pair (or (assq last-command-char insert-pair-alist)
! (assq (event-basic-type last-command-event)
! insert-pair-alist))))
! (if pair
! (if (nth 2 pair)
! (setq open (nth 1 pair) close (nth 2 pair))
! (setq open (nth 0 pair) close (nth 1 pair))))))
! (if (and open close)
! (if (and transient-mark-mode mark-active)
! (progn
! (save-excursion (goto-char (region-end)) (insert close))
! (save-excursion (goto-char (region-beginning)) (insert open)))
! (if arg (setq arg (prefix-numeric-value arg))
! (setq arg 0))
! (cond ((> arg 0) (skip-chars-forward " \t"))
! ((< arg 0) (forward-sexp arg) (setq arg (- arg))))
! (and parens-require-spaces
! (not (bobp))
! (memq (char-syntax (preceding-char)) (list ?w ?_ (char-syntax
close)))
! (insert " "))
! (insert open)
! (save-excursion
! (or (eq arg 0) (forward-sexp arg))
! (insert close)
! (and parens-require-spaces
! (not (eobp))
! (memq (char-syntax (following-char)) (list ?w ?_ (char-syntax
open)))
! (insert " "))))
! (insert-char (event-basic-type last-command-event)
! (prefix-numeric-value arg))))
! (defun insert-parentheses (&optional arg)
"Enclose following ARG sexps in parentheses. Leave point after open-paren.
A negative ARG encloses the preceding ARG sexps instead.
No argument is equivalent to zero: just insert `()' and leave point between.
***************
*** 379,384 ****
--- 402,425 ----
If region is active, insert enclosing characters at region boundaries."
(interactive "P")
(insert-pair arg ?\( ?\)))
+
+ (defun delete-pair ()
+ "Delete a pair of characters enclosing the sexp that follows point."
+ (interactive)
+ (save-excursion (forward-sexp 1) (delete-char -1))
+ (delete-char 1))
+
+ (defun raise-sexp (&optional arg)
+ "Raise ARG sexps higher up the tree."
+ (interactive "p")
+ (let ((s (if (and transient-mark-mode mark-active)
+ (buffer-substring (region-beginning) (region-end))
+ (buffer-substring
+ (point)
+ (save-excursion (forward-sexp arg) (point))))))
+ (backward-up-list 1)
+ (delete-region (point) (save-excursion (forward-sexp 1) (point)))
+ (save-excursion (insert s))))
(defun move-past-close-and-reindent ()
"Move past next `)', delete indentation before it, then indent after it."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/lisp.el,
Juri Linkov <=