Mercurial > emacs
annotate lisp/textmodes/text-mode.el @ 71710:dbbc0b93cfeb
(Forcing Redisplay, Displaying Messages, Temporary Displays, Font Selection,
Auto Faces, Font Lookup, Fringe Indicators, Display Margins, Image Descriptors,
Showing Images, Image Cache, Button Types, Making Buttons, Manipulating
Buttons, Button Buffer Commands, Display Table Format, Glyphs): Remove
@tindex.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 08 Jul 2006 18:11:49 +0000 |
parents | 83b8d9f95633 |
children | f7702c5f335d a8190f7e546e |
rev | line source |
---|---|
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
28108
diff
changeset
|
1 ;;; text-mode.el --- text mode, and its idiosyncratic commands |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
283
diff
changeset
|
2 |
64751
5b1a238fcbb4
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64084
diff
changeset
|
3 ;; Copyright (C) 1985, 1992, 1994, 2002, 2003, 2004, |
68648
067115a6e738
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64751
diff
changeset
|
4 ;; 2005, 2006 Free Software Foundation, Inc. |
841 | 5 |
775
1ca26ccad38e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
727
diff
changeset
|
6 ;; Maintainer: FSF |
38697
a19197c6442f
Keyword added and FSF specified as Maintainer.
Pavel Janík <Pavel@Janik.cz>
parents:
38412
diff
changeset
|
7 ;; Keywords: wp |
36 | 8 |
9 ;; This file is part of GNU Emacs. | |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; it under the terms of the GNU General Public License as published by | |
727 | 13 ;; the Free Software Foundation; either version 2, or (at your option) |
36 | 14 ;; any later version. |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
14169 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64084 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
2315
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1576
diff
changeset
|
25 |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1576
diff
changeset
|
26 ;;; Commentary: |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1576
diff
changeset
|
27 |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1576
diff
changeset
|
28 ;; This package provides the fundamental text mode documented in the |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1576
diff
changeset
|
29 ;; Emacs user's manual. |
9e7ec92a4fdf
Added or corrected Commentary headers
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1576
diff
changeset
|
30 |
775
1ca26ccad38e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
727
diff
changeset
|
31 ;;; Code: |
36 | 32 |
26598 | 33 (defcustom text-mode-hook nil |
34 "Normal hook run when entering Text mode and many related modes." | |
35 :type 'hook | |
71100
83b8d9f95633
* textmodes/flyspell.el (turn-on-flyspell, turn-off-flyspell): New
Reiner Steib <Reiner.Steib@gmx.de>
parents:
68648
diff
changeset
|
36 :options '(turn-on-auto-fill turn-on-flyspell) |
26598 | 37 :group 'data) |
19589
8c19d570a391
(text-mode-hook): New defvar.
Richard M. Stallman <rms@gnu.org>
parents:
18256
diff
changeset
|
38 |
19590
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
39 (defvar text-mode-variant nil |
40484
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
40 "Non-nil if this buffer's major mode is a variant of Text mode. |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
41 Use (derived-mode-p 'text-mode) instead.") |
36 | 42 |
40484
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
43 (defvar text-mode-syntax-table |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
44 (let ((st (make-syntax-table))) |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
45 (modify-syntax-entry ?\" ". " st) |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
46 (modify-syntax-entry ?\\ ". " st) |
47966
85dbcc2c6739
(text-mode-syntax-table): Make ' a prefix.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47213
diff
changeset
|
47 ;; We add `p' so that M-c on 'hello' leads to 'Hello' rather than 'hello'. |
85dbcc2c6739
(text-mode-syntax-table): Make ' a prefix.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47213
diff
changeset
|
48 (modify-syntax-entry ?' "w p" st) |
40484
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
49 st) |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
50 "Syntax table used while in `text-mode'.") |
36 | 51 |
40484
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
52 (defvar text-mode-map |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
53 (let ((map (make-sparse-keymap))) |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
54 (define-key map "\e\t" 'ispell-complete-word) |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
55 (define-key map "\es" 'center-line) |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
56 (define-key map "\eS" 'center-paragraph) |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
57 map) |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
58 "Keymap for `text-mode'. |
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
59 Many other modes, such as `mail-mode', `outline-mode' and `indented-text-mode', |
36 | 60 inherit all the commands defined in this map.") |
61 | |
62 | |
40360
04be247dd745
(text-mode): Use define-derived-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38697
diff
changeset
|
63 (define-derived-mode text-mode nil "Text" |
18132
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
64 "Major mode for editing text written for humans to read. |
18256
27f2dfb2c1de
(text-mode): Let all-white lines separate paragraphs.
Richard M. Stallman <rms@gnu.org>
parents:
18222
diff
changeset
|
65 In this mode, paragraphs are delimited only by blank or white lines. |
18132
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
66 You can thus get the full benefit of adaptive filling |
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
67 (see the variable `adaptive-fill-mode'). |
6323 | 68 \\{text-mode-map} |
18132
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
69 Turning on Text mode runs the normal hook `text-mode-hook'." |
43122
2630388260f5
(text-mode-hook-identify): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
40484
diff
changeset
|
70 (make-local-variable 'text-mode-variant) |
2630388260f5
(text-mode-hook-identify): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
40484
diff
changeset
|
71 (setq text-mode-variant t) |
59255
bf01ac46d369
(text-mode): Use mode-require-final-newline.
Richard M. Stallman <rms@gnu.org>
parents:
52640
diff
changeset
|
72 (set (make-local-variable 'require-final-newline) |
bf01ac46d369
(text-mode): Use mode-require-final-newline.
Richard M. Stallman <rms@gnu.org>
parents:
52640
diff
changeset
|
73 mode-require-final-newline) |
40484
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
74 (set (make-local-variable 'indent-line-function) 'indent-relative)) |
18132
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
75 |
40481
7b44c3509111
(paragraph-indent-minor-mode): Don't set paragraph-separate.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40360
diff
changeset
|
76 (define-derived-mode paragraph-indent-text-mode text-mode "Parindent" |
18132
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
77 "Major mode for editing text, with leading spaces starting a paragraph. |
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
78 In this mode, you do not need blank lines between paragraphs |
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
79 when the first line of the following paragraph starts with whitespace. |
27202
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
80 `paragraph-indent-minor-mode' provides a similar facility as a minor mode. |
18132
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
81 Special commands: |
95f6ac42b352
(spaced-text-mode): Renamed from text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
82 \\{text-mode-map} |
18222
b7ad635feeb8
(paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
18132
diff
changeset
|
83 Turning on Paragraph-Indent Text mode runs the normal hooks |
b7ad635feeb8
(paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
18132
diff
changeset
|
84 `text-mode-hook' and `paragraph-indent-text-mode-hook'." |
47966
85dbcc2c6739
(text-mode-syntax-table): Make ' a prefix.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47213
diff
changeset
|
85 :abbrev-table nil :syntax-table nil |
40484
2e6c799155b3
(text-mode-map): Remove the \t binding.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40481
diff
changeset
|
86 (paragraph-indent-minor-mode)) |
27202
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
87 |
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
88 (defun paragraph-indent-minor-mode () |
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
89 "Minor mode for editing text, with leading spaces starting a paragraph. |
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
90 In this mode, you do not need blank lines between paragraphs when the |
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
91 first line of the following paragraph starts with whitespace, as with |
52640
2e9f5698c9db
(paragraph-indent-minor-mode): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
52401
diff
changeset
|
92 `paragraph-indent-text-mode'. |
27202
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
93 Turning on Paragraph-Indent minor mode runs the normal hook |
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
94 `paragraph-indent-text-mode-hook'." |
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
95 (interactive) |
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
96 (set (make-local-variable 'paragraph-start) |
40481
7b44c3509111
(paragraph-indent-minor-mode): Don't set paragraph-separate.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40360
diff
changeset
|
97 (concat "[ \t\n\f]\\|" paragraph-start)) |
7b44c3509111
(paragraph-indent-minor-mode): Don't set paragraph-separate.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40360
diff
changeset
|
98 (set (make-local-variable 'indent-line-function) 'indent-to-left-margin) |
27202
6047ac0aaa7c
(text-mode): Remove page-delimiter's `^' from paragraph-start.
Dave Love <fx@gnu.org>
parents:
26598
diff
changeset
|
99 (run-hooks 'paragraph-indent-text-mode-hook)) |
49599
5ade352e8d1c
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
47966
diff
changeset
|
100 |
18222
b7ad635feeb8
(paragraph-indent-text-mode): Renamed from spaced-text-mode.
Richard M. Stallman <rms@gnu.org>
parents:
18132
diff
changeset
|
101 (defalias 'indented-text-mode 'text-mode) |
36 | 102 |
43287
431e14e1690f
(text-mode-hook-identify): Restore previous definition.
Richard M. Stallman <rms@gnu.org>
parents:
43190
diff
changeset
|
103 ;; This can be made a no-op once all modes that use text-mode-hook |
431e14e1690f
(text-mode-hook-identify): Restore previous definition.
Richard M. Stallman <rms@gnu.org>
parents:
43190
diff
changeset
|
104 ;; are "derived" from text-mode. |
431e14e1690f
(text-mode-hook-identify): Restore previous definition.
Richard M. Stallman <rms@gnu.org>
parents:
43190
diff
changeset
|
105 (defun text-mode-hook-identify () |
431e14e1690f
(text-mode-hook-identify): Restore previous definition.
Richard M. Stallman <rms@gnu.org>
parents:
43190
diff
changeset
|
106 "Mark that this mode has run `text-mode-hook'. |
431e14e1690f
(text-mode-hook-identify): Restore previous definition.
Richard M. Stallman <rms@gnu.org>
parents:
43190
diff
changeset
|
107 This is how `toggle-text-mode-auto-fill' knows which buffers to operate on." |
431e14e1690f
(text-mode-hook-identify): Restore previous definition.
Richard M. Stallman <rms@gnu.org>
parents:
43190
diff
changeset
|
108 (set (make-local-variable 'text-mode-variant) t)) |
431e14e1690f
(text-mode-hook-identify): Restore previous definition.
Richard M. Stallman <rms@gnu.org>
parents:
43190
diff
changeset
|
109 |
431e14e1690f
(text-mode-hook-identify): Restore previous definition.
Richard M. Stallman <rms@gnu.org>
parents:
43190
diff
changeset
|
110 (add-hook 'text-mode-hook 'text-mode-hook-identify) |
43190
dde60cf0dc4a
(text-mode-hook-identify): Define as no-op.
Richard M. Stallman <rms@gnu.org>
parents:
43122
diff
changeset
|
111 |
19590
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
112 (defun toggle-text-mode-auto-fill () |
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
113 "Toggle whether to use Auto Fill in Text mode and related modes. |
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
114 This command affects all buffers that use modes related to Text mode, |
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
115 both existing buffers and buffers that you subsequently create." |
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
116 (interactive) |
40360
04be247dd745
(text-mode): Use define-derived-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38697
diff
changeset
|
117 (let ((enable-mode (not (memq 'turn-on-auto-fill text-mode-hook)))) |
19590
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
118 (if enable-mode |
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
119 (add-hook 'text-mode-hook 'turn-on-auto-fill) |
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
120 (remove-hook 'text-mode-hook 'turn-on-auto-fill)) |
40360
04be247dd745
(text-mode): Use define-derived-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38697
diff
changeset
|
121 (dolist (buffer (buffer-list)) |
04be247dd745
(text-mode): Use define-derived-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38697
diff
changeset
|
122 (with-current-buffer buffer |
04be247dd745
(text-mode): Use define-derived-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38697
diff
changeset
|
123 (if (or (derived-mode-p 'text-mode) text-mode-variant) |
04be247dd745
(text-mode): Use define-derived-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38697
diff
changeset
|
124 (auto-fill-mode (if enable-mode 1 0))))) |
19590
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
125 (message "Auto Fill %s in Text modes" |
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
126 (if enable-mode "enabled" "disabled")))) |
167f4700890a
(text-mode-variant): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
19589
diff
changeset
|
127 |
36 | 128 (defun center-paragraph () |
129 "Center each nonblank line in the paragraph at or after point. | |
1576 | 130 See `center-line' for more info." |
36 | 131 (interactive) |
132 (save-excursion | |
133 (forward-paragraph) | |
134 (or (bolp) (newline 1)) | |
135 (let ((end (point))) | |
136 (backward-paragraph) | |
137 (center-region (point) end)))) | |
138 | |
139 (defun center-region (from to) | |
140 "Center each nonblank line starting in the region. | |
1576 | 141 See `center-line' for more info." |
36 | 142 (interactive "r") |
143 (if (> from to) | |
144 (let ((tem to)) | |
145 (setq to from from tem))) | |
146 (save-excursion | |
147 (save-restriction | |
148 (narrow-to-region from to) | |
149 (goto-char from) | |
150 (while (not (eobp)) | |
151 (or (save-excursion (skip-chars-forward " \t") (eolp)) | |
152 (center-line)) | |
153 (forward-line 1))))) | |
154 | |
13023
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
155 (defun center-line (&optional nlines) |
36 | 156 "Center the line point is on, within the width specified by `fill-column'. |
157 This means adjusting the indentation so that it equals | |
13023
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
158 the distance between the end of the text and `fill-column'. |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
159 The argument NLINES says how many lines to center." |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
160 (interactive "P") |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
161 (if nlines (setq nlines (prefix-numeric-value nlines))) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
162 (while (not (eq nlines 0)) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
163 (save-excursion |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
164 (let ((lm (current-left-margin)) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
165 line-length) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
166 (beginning-of-line) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
167 (delete-horizontal-space) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
168 (end-of-line) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
169 (delete-horizontal-space) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
170 (setq line-length (current-column)) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
171 (if (> (- fill-column lm line-length) 0) |
28108
0d9cac36402a
(text-mode-hook): Add flyspell-mode to
Dave Love <fx@gnu.org>
parents:
27202
diff
changeset
|
172 (indent-line-to |
13023
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
173 (+ lm (/ (- fill-column lm line-length) 2)))))) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
174 (cond ((null nlines) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
175 (setq nlines 0)) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
176 ((> nlines 0) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
177 (setq nlines (1- nlines)) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
178 (forward-line 1)) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
179 ((< nlines 0) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
180 (setq nlines (1+ nlines)) |
78f30dd2c8fd
(center-line): New arg NLINES.
Richard M. Stallman <rms@gnu.org>
parents:
10899
diff
changeset
|
181 (forward-line -1))))) |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
283
diff
changeset
|
182 |
52401 | 183 ;;; arch-tag: a07ccaad-da13-4d7b-9c61-cd04f5926aab |
657
fec3f9a1e3e5
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
283
diff
changeset
|
184 ;;; text-mode.el ends here |