Mercurial > hg > xemacs-beta
annotate lisp/lisp.el @ 5750:66d2f63df75f
Correct some spelling and formatting in behavior.el.
Mentioned in tracker issue 826, the third thing mentioned there (the file
name at the bottom of the file) had already been fixed.
lisp/ChangeLog addition:
2013-08-05 Aidan Kehoe <kehoea@parhasard.net>
* behavior.el:
(override-behavior):
Correct some spelling and formatting here, thank you Steven
Mitchell in tracker issue 826.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Mon, 05 Aug 2013 10:05:32 +0100 |
parents | 58b38d5b32d0 |
children | 6a6c89b53c5d |
rev | line source |
---|---|
428 | 1 ;;; lisp.el --- Lisp editing commands for XEmacs |
2 | |
3 ;; Copyright (C) 1985, 1986, 1994, 1997 Free Software Foundation, Inc. | |
4 | |
5 ;; Maintainer: FSF | |
6 ;; Keywords: lisp, languages, dumped | |
7 | |
8 ;; This file is part of XEmacs. | |
9 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
10 ;; XEmacs is free software: you can redistribute it and/or modify it |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
11 ;; under the terms of the GNU General Public License as published by the |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
12 ;; Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
13 ;; option) any later version. |
428 | 14 |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
15 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
16 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
17 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
18 ;; for more details. |
428 | 19 |
20 ;; You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4726
diff
changeset
|
21 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
428 | 22 |
23 ;;; Synched up with: Emacs/Mule zeta. | |
24 | |
25 ;;; Commentary: | |
26 | |
27 ;; This file is dumped with XEmacs. | |
28 | |
29 ;; Lisp editing commands to go with Lisp major mode. | |
30 | |
31 ;; 06/11/1997 - Use char-(after|before) instead of | |
32 ;; (following|preceding)-char. -slb | |
33 | |
34 ;;; Code: | |
35 | |
36 ;; Note that this variable is used by non-lisp modes too. | |
37 (defcustom defun-prompt-regexp nil | |
38 "*Non-nil => regexp to ignore, before the character that starts a defun. | |
39 This is only necessary if the opening paren or brace is not in column 0. | |
40 See `beginning-of-defun'." | |
41 :type '(choice (const :tag "none" nil) | |
42 regexp) | |
43 :group 'lisp) | |
44 | |
45 (make-variable-buffer-local 'defun-prompt-regexp) | |
46 | |
47 (defcustom parens-require-spaces t | |
48 "Non-nil => `insert-parentheses' should insert whitespace as needed." | |
49 :type 'boolean | |
50 :group 'editing-basics | |
51 :group 'lisp) | |
52 | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
53 (defun forward-sexp (&optional count) |
428 | 54 "Move forward across one balanced expression (sexp). |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
55 With non-nil COUNT, do it that many times. Negative COUNT means |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
56 move backward across -COUNT balanced expressions." |
428 | 57 ;; XEmacs change (for zmacs regions) |
58 (interactive "_p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
59 (or count (setq count 1)) |
428 | 60 ;; XEmacs: evil hack! The other half of the evil hack below. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
61 (if (and (> count 0) (looking-at "#s(\\|#r[uU]\\{0,1\\}\"")) |
3543 | 62 (goto-char (1+ (- (point) (- (match-end 0) (match-beginning 0)))))) |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
63 (goto-char (or (scan-sexps (point) count) (buffer-end count))) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
64 (when (< count 0) |
3543 | 65 (backward-prefix-chars) |
66 ;; XEmacs: evil hack! Skip back over #[sr] so that structures and raw | |
67 ;; strings are read properly. the current cheesified syntax tables just | |
68 ;; aren't up to this. | |
69 (let* ((diff (- (point) (point-min))) | |
70 (subject (buffer-substring (- (point) (min diff 3)) | |
71 (1+ (point)))) | |
5560
58b38d5b32d0
Implement print-circle, allowing recursive and circular structures to be read.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
72 (matched (string-match "#[0-9]+=\\|#s(\\|#r[uU]\\{0,1\\}\"" |
58b38d5b32d0
Implement print-circle, allowing recursive and circular structures to be read.
Aidan Kehoe <kehoea@parhasard.net>
parents:
5402
diff
changeset
|
73 subject))) |
3543 | 74 (if matched |
75 (goto-char (1+ (- (point) (- (length subject) matched)))))))) | |
428 | 76 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
77 (defun backward-sexp (&optional count) |
428 | 78 "Move backward across one balanced expression (sexp). |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
79 With non-nil COUNT, do it that many times. Negative COUNT means |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
80 move forward across -COUNT balanced expressions." |
428 | 81 ;; XEmacs change (for zmacs regions) |
82 (interactive "_p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
83 (forward-sexp (- (or count 1)))) |
428 | 84 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
85 (defun mark-sexp (&optional count) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
86 "Set mark COUNT sexps from point. |
428 | 87 The place mark goes is the same place \\[forward-sexp] would |
88 move to with the same argument. | |
89 Repeat this command to mark more sexps in the same direction." | |
90 (interactive "p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
91 (mark-something 'mark-sexp 'forward-sexp (or count 1))) |
428 | 92 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
93 (defun forward-list (&optional count) |
428 | 94 "Move forward across one balanced group of parentheses. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
95 With non-nil COUNT, do it that many times. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
96 Negative COUNT means move backward across -COUNT groups of parentheses." |
428 | 97 ;; XEmacs change |
98 (interactive "_p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
99 (goto-char (or (scan-lists (point) (or count 1) 0) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
100 (buffer-end (or count 1))))) |
428 | 101 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
102 (defun backward-list (&optional count) |
428 | 103 "Move backward across one balanced group of parentheses. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
104 With non-nil COUNT, do it that many times. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
105 Negative COUNT means move forward across -COUNT groups of parentheses." |
428 | 106 ;; XEmacs change (for zmacs regions) |
107 (interactive "_p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
108 (forward-list (- (or count 1)))) |
428 | 109 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
110 (defun down-list (&optional count) |
428 | 111 "Move forward down one level of parentheses. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
112 With non-nil COUNT, do this that many times. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
113 A negative COUNT means move backward but still go down a level." |
428 | 114 ;; XEmacs change (for zmacs regions) |
115 (interactive "_p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
116 (or count (setq count 1)) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
117 (let ((inc (if (> count 0) 1 -1))) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
118 (while (/= count 0) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
119 (goto-char (or (scan-lists (point) inc -1) (buffer-end count))) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
120 (setq count (- count inc))))) |
428 | 121 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
122 (defun backward-up-list (&optional count) |
428 | 123 "Move backward out of one level of parentheses. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
124 With COUNT, do this that many times. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
125 A negative COUNT means move forward but still to a less deep spot." |
428 | 126 (interactive "_p") |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
127 (up-list (- (or count 1)))) |
428 | 128 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
129 (defun up-list (&optional count) |
428 | 130 "Move forward out of one level of parentheses. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
131 With non-nil COUNT, do this that many times. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
132 A negative COUNT means move backward but still to a less deep spot. |
428 | 133 In Lisp programs, an argument is required." |
134 ;; XEmacs change (for zmacs regions) | |
135 (interactive "_p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
136 (or count (setq count 1)) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
137 (let ((inc (if (> count 0) 1 -1))) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
138 (while (/= count 0) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
139 (goto-char (or (scan-lists (point) inc 1) (buffer-end count))) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
140 (setq count (- count inc))))) |
428 | 141 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
142 (defun kill-sexp (&optional count) |
428 | 143 "Kill the sexp (balanced expression) following the cursor. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
144 With non-nil COUNT, kill that many sexps after the cursor. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
145 Negative COUNT means kill -COUNT sexps before the cursor." |
428 | 146 (interactive "p") |
147 (let ((opoint (point))) | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
148 (forward-sexp (or count 1)) |
428 | 149 (kill-region opoint (point)))) |
150 | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
151 (defun backward-kill-sexp (&optional count) |
428 | 152 "Kill the sexp (balanced expression) preceding the cursor. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
153 With non-nil COUNT, kill that many sexps before the cursor. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
154 Negative COUNT means kill -COUNT sexps after the cursor." |
428 | 155 (interactive "p") |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
156 (kill-sexp (- (or count 1)))) |
428 | 157 |
4696
ecc468b62551
funcall beginning-of-defun-function arg
andreas.roehler@online.de
parents:
3543
diff
changeset
|
158 |
ecc468b62551
funcall beginning-of-defun-function arg
andreas.roehler@online.de
parents:
3543
diff
changeset
|
159 ;; derived stuff from GNU Emacs |
ecc468b62551
funcall beginning-of-defun-function arg
andreas.roehler@online.de
parents:
3543
diff
changeset
|
160 (defvar beginning-of-defun-function nil |
4724
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
161 "If non-nil, this function will be called by `beginning-of-defun-raw'. |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
162 It will be called with one argument, which is a repetition count. |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
163 It provides an alternative algorithm to find the beginning of the current |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
164 defun instead of using the standard one implemented by `beginning-of-defun'. |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
165 See also `defun-prompt-regexp' for minor tweaks.") |
4712
a46d7513a364
`beginning-of-defun-function', `end-of-defun-function'
Andreas Roehler <andreas.roehler@online.de>
parents:
4705
diff
changeset
|
166 (make-variable-buffer-local 'beginning-of-defun-function) |
4696
ecc468b62551
funcall beginning-of-defun-function arg
andreas.roehler@online.de
parents:
3543
diff
changeset
|
167 |
ecc468b62551
funcall beginning-of-defun-function arg
andreas.roehler@online.de
parents:
3543
diff
changeset
|
168 (defvar end-of-defun-function nil |
4724
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
169 "If non-nil, this function will be called by `end-of-defun'. |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
170 It will be called with no arguments. \(Repetition is implemented in |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
171 `end-of-defun' by calling this function that many times.) |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
172 This function provides an alternative algorithm to find the end |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
173 of the current defun instead of using the standard one implemented by |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
174 `end-of-defun'. |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
175 ") |
4712
a46d7513a364
`beginning-of-defun-function', `end-of-defun-function'
Andreas Roehler <andreas.roehler@online.de>
parents:
4705
diff
changeset
|
176 (make-variable-buffer-local 'end-of-defun-function) |
4696
ecc468b62551
funcall beginning-of-defun-function arg
andreas.roehler@online.de
parents:
3543
diff
changeset
|
177 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
178 (defun beginning-of-defun (&optional count) |
4724
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
179 "Move backward to the beginning of the current defun. |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
180 With COUNT, do it that many times. Negative COUNT |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
181 means move forward to -COUNTth following beginning of defun. |
428 | 182 Returns t unless search stops due to beginning or end of buffer. |
183 | |
4724
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
184 In the default implementation provided by `beginning-of-defun-raw', |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
185 a defun starts at a char with open-parenthesis syntax at the beginning |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
186 of a line. If `defun-prompt-regexp' is non-nil, then a string which |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
187 matches that regexp may precede the open-parenthesis. Alternatively, |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
188 if `beginning-of-defun-function' is non-nil, that function is called, |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
189 and none of the default processing is done. |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
190 |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
191 If the beginning of defun function returns t, point moves to the |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
192 beginning of the line containing the beginning of defun." |
428 | 193 ;; XEmacs change (for zmacs regions) |
194 (interactive "_p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
195 (and (beginning-of-defun-raw count) |
428 | 196 (progn (beginning-of-line) t))) |
197 | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
198 (defun beginning-of-defun-raw (&optional count) |
428 | 199 "Move point to the character that starts a defun. |
200 This is identical to beginning-of-defun, except that point does not move | |
201 to the beginning of the line when `defun-prompt-regexp' is non-nil." | |
202 (interactive "p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
203 (unless count (setq count 1)) |
4705
7b90173970ad
Unbreak `beginning-of-defun'.
Mike Sperber <sperber@deinprogramm.de>
parents:
4696
diff
changeset
|
204 (if beginning-of-defun-function |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
205 (funcall beginning-of-defun-function count) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
206 (and (< count 0) (not (eobp)) (forward-char 1)) |
4705
7b90173970ad
Unbreak `beginning-of-defun'.
Mike Sperber <sperber@deinprogramm.de>
parents:
4696
diff
changeset
|
207 (and |
7b90173970ad
Unbreak `beginning-of-defun'.
Mike Sperber <sperber@deinprogramm.de>
parents:
4696
diff
changeset
|
208 (re-search-backward (if defun-prompt-regexp |
7b90173970ad
Unbreak `beginning-of-defun'.
Mike Sperber <sperber@deinprogramm.de>
parents:
4696
diff
changeset
|
209 (concat "^\\s(\\|" |
7b90173970ad
Unbreak `beginning-of-defun'.
Mike Sperber <sperber@deinprogramm.de>
parents:
4696
diff
changeset
|
210 "\\(" defun-prompt-regexp "\\)\\s(") |
7b90173970ad
Unbreak `beginning-of-defun'.
Mike Sperber <sperber@deinprogramm.de>
parents:
4696
diff
changeset
|
211 "^\\s(") |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
212 nil 'move count) |
4705
7b90173970ad
Unbreak `beginning-of-defun'.
Mike Sperber <sperber@deinprogramm.de>
parents:
4696
diff
changeset
|
213 (progn (goto-char (1- (match-end 0)))) t))) |
428 | 214 |
215 ;; XEmacs change (optional buffer parameter) | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
216 (defun buffer-end (direction &optional buffer) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
217 "Return `point-max' of BUFFER if DIRECTION > 0, else return `point-min'. |
428 | 218 BUFFER defaults to the current buffer if omitted." |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
219 (if (> direction 0) (point-max buffer) (point-min buffer))) |
428 | 220 |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
221 (defun end-of-defun (&optional count) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
222 "Move forward to next end of defun. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
223 Non-nil COUNT means do it that many times (default is 1). |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
224 Negative COUNT means move back to -COUNTth preceding end of defun. |
428 | 225 |
4724
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
226 In the default implementation, the end of a defun is the end of the |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
227 s-expression started at the character identified by `beginning-of-defun'. |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
228 |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
229 If `end-of-defun-function' is non-nil, none of the default processing is |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
230 done. For a repetition count greater than 1, `end-of-defun-function' is |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
231 called that many times. If the repetition count is less than 1, nothing |
7eef89a3d41f
Improve docstrings of defun movement functions.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4712
diff
changeset
|
232 is done. \(This is a bug.)" |
428 | 233 ;; XEmacs change (for zmacs regions) |
234 (interactive "_p") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
235 (if (or (null count) (= count 0)) (setq count 1)) |
4696
ecc468b62551
funcall beginning-of-defun-function arg
andreas.roehler@online.de
parents:
3543
diff
changeset
|
236 (if end-of-defun-function |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
237 (if (> count 0) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
238 (dotimes (i count) |
4696
ecc468b62551
funcall beginning-of-defun-function arg
andreas.roehler@online.de
parents:
3543
diff
changeset
|
239 (funcall end-of-defun-function))) |
428 | 240 (let ((first t)) |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
241 (while (and (> count 0) (< (point) (point-max))) |
428 | 242 (let ((pos (point))) ; XEmacs -- remove unused npos. |
243 (while (progn | |
244 (if (and first | |
245 (progn | |
246 (end-of-line 1) | |
247 (beginning-of-defun-raw 1))) | |
248 nil | |
446 | 249 (or (bobp) (backward-char 1)) |
428 | 250 (beginning-of-defun-raw -1)) |
251 (setq first nil) | |
252 (forward-list 1) | |
253 (skip-chars-forward " \t") | |
254 (if (looking-at "\\s<\\|\n") | |
255 (forward-line 1)) | |
256 (<= (point) pos)))) | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
257 (setq count (1- count))) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
258 (while (< count 0) |
428 | 259 (let ((pos (point))) |
260 (beginning-of-defun-raw 1) | |
261 (forward-sexp 1) | |
262 (forward-line 1) | |
263 (if (>= (point) pos) | |
264 (if (beginning-of-defun-raw 2) | |
265 (progn | |
266 (forward-list 1) | |
267 (skip-chars-forward " \t") | |
268 (if (looking-at "\\s<\\|\n") | |
269 (forward-line 1))) | |
270 (goto-char (point-min))))) | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
271 (setq count (1+ count)))))) |
428 | 272 |
273 (defun mark-defun () | |
274 "Put mark at end of this defun, point at beginning. | |
275 The defun marked is the one that contains point or follows point." | |
276 (interactive) | |
277 (push-mark (point)) | |
278 (end-of-defun) | |
279 (push-mark (point) nil t) | |
280 (beginning-of-defun) | |
281 (re-search-backward "^\n" (- (point) 1) t)) | |
282 | |
283 (defun narrow-to-defun (&optional arg) | |
284 "Make text outside current defun invisible. | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
285 The defun visible is the one that contains point or follows point. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
286 Optional ARG is currently ignored." |
428 | 287 (interactive) |
288 (save-excursion | |
289 (widen) | |
290 (end-of-defun) | |
291 (let ((end (point))) | |
292 (beginning-of-defun) | |
293 (narrow-to-region (point) end)))) | |
294 | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
295 (defun insert-parentheses (count) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
296 "Enclose following COUNT sexps in parentheses. Leave point after open-paren. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
297 A negative COUNT encloses the preceding -COUNT sexps instead. |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
298 COUNT defaults to zero: just insert `()' and leave point between. |
428 | 299 If `parens-require-spaces' is non-nil, this command also inserts a space |
300 before and after, depending on the surrounding characters." | |
301 (interactive "P") | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
302 (if count (setq count (prefix-numeric-value count)) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
303 (setq count 0)) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
304 (cond ((> count 0) (skip-chars-forward " \t")) |
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
305 ((< count 0) (forward-sexp count) (setq count (- count)))) |
428 | 306 (and parens-require-spaces |
307 (not (bobp)) | |
308 (memq (char-syntax (char-before (point))) '(?w ?_ ?\) )) | |
309 (insert " ")) | |
310 (insert ?\() | |
311 (save-excursion | |
4726
4bbda1c11a7b
Improve argument names and update docstrings.
Stephen J. Turnbull <stephen@xemacs.org>
parents:
4724
diff
changeset
|
312 (or (eq count 0) (forward-sexp count)) |
428 | 313 (insert ?\)) |
314 (and parens-require-spaces | |
315 (not (eobp)) | |
316 (memq (char-syntax (char-after (point))) '(?w ?_ ?\( )) | |
317 (insert " ")))) | |
318 | |
319 (defun move-past-close-and-reindent () | |
320 "Move past next `)', delete indentation before it, then indent after it." | |
321 (interactive) | |
322 (up-list 1) | |
446 | 323 (backward-char 1) |
428 | 324 (while (save-excursion ; this is my contribution |
325 (let ((before-paren (point))) | |
326 (back-to-indentation) | |
327 (= (point) before-paren))) | |
328 (delete-indentation)) | |
329 (forward-char 1) | |
330 (newline-and-indent)) | |
331 | |
332 (defun lisp-complete-symbol () | |
333 "Perform completion on Lisp symbol preceding point. | |
334 Compare that symbol against the known Lisp symbols. | |
335 | |
336 The context determines which symbols are considered. | |
337 If the symbol starts just after an open-parenthesis, only symbols | |
338 with function definitions are considered. Otherwise, all symbols with | |
339 function definitions, values or properties are considered." | |
340 (interactive) | |
341 (let* ((end (point)) | |
342 (buffer-syntax (syntax-table)) | |
343 (beg (unwind-protect | |
344 (save-excursion | |
345 ;; XEmacs change | |
346 (if emacs-lisp-mode-syntax-table | |
347 (set-syntax-table emacs-lisp-mode-syntax-table)) | |
348 (backward-sexp 1) | |
349 (while (eq (char-syntax (char-after (point))) ?\') | |
350 (forward-char 1)) | |
351 (point)) | |
352 (set-syntax-table buffer-syntax))) | |
353 (pattern (buffer-substring beg end)) | |
354 (predicate | |
355 (if (eq (char-after (1- beg)) ?\() | |
356 'fboundp | |
357 ;; XEmacs change | |
358 #'(lambda (sym) | |
359 (or (boundp sym) (fboundp sym) | |
360 (symbol-plist sym))))) | |
361 (completion (try-completion pattern obarray predicate))) | |
362 (cond ((eq completion t)) | |
363 ((null completion) | |
364 (message "Can't find completion for \"%s\"" pattern) | |
365 (ding)) | |
366 ((not (string= pattern completion)) | |
367 (delete-region beg end) | |
368 (insert completion)) | |
369 (t | |
370 (message "Making completion list...") | |
371 (let ((list (all-completions pattern obarray predicate)) | |
372 ;FSFmacs crock unnecessary in XEmacs | |
373 ;see minibuf.el | |
374 ;(completion-fixup-function | |
375 ; (function (lambda () (if (save-excursion | |
376 ; (goto-char (max (point-min) | |
377 ; (- (point) 4))) | |
378 ; (looking-at " <f>")) | |
379 ; (forward-char -4)))) | |
380 ) | |
381 (or (eq predicate 'fboundp) | |
382 (let (new) | |
383 (while list | |
384 (setq new (cons (if (fboundp (intern (car list))) | |
385 (list (car list) " <f>") | |
386 (car list)) | |
387 new)) | |
388 (setq list (cdr list))) | |
389 (setq list (nreverse new)))) | |
390 (with-output-to-temp-buffer "*Completions*" | |
391 (display-completion-list list))) | |
392 (message "Making completion list...%s" "done"))))) | |
393 | |
394 ;;; lisp.el ends here |